File CalculatorWithReference.h

namespace Scine
namespace Core
class CalculatorWithReference
#include <CalculatorWithReference.h>

The interface for all classes running calculations on top of a reference calculation.

This can be, for example, excited states calculation (CIS, TD-DFT,..), post-HF, but also thermodynamics calculations and the CISE approach.

Public Functions

CalculatorWithReference()

Default constructor.

virtual ~CalculatorWithReference()

Virtual destructor.

virtual void setReferenceCalculator(std::shared_ptr<Calculator> referenceCalculator) = 0

Sets the calculator to be used to perform the reference calculation.

In the derived classes care must be taken that the case where a method does not accept some calculator types (i.e CIS with DFT, or TDDFT with HF) is checked and handled.

virtual void referenceCalculation() = 0

Performs a reference calculation.

virtual Core::Calculator &getReferenceCalculator() = 0

Accessor for the reference calculator.

Return

Core::Calculator& The reference calculator.

virtual const Core::Calculator &getReferenceCalculator() const = 0

Constant accessor for the reference calculator.

Return

const Core::Calculator& The reference calculator.

virtual Core::Calculator &getCalculator() = 0

Accessor for the calculator, if present.

Return

Core::Calculator& The calculator.

virtual const Core::Calculator &getCalculator() const = 0

Constant accessor for the calculator, if present.

Return

const Core::Calculator& The calculator.

virtual Utils::Results calculate() = 0

The main function running the calculation.

Return

ReturnType Since different methods can give different return types, a templetized return type has been chosen. The derived class must derive from the right version of the CalculatorWithReference<ReturnType> class.

virtual std::string name() const = 0

Getter for the name of the calculator with reference.

Return

Returns the name of the calculator with reference.

virtual Utils::Settings &settings() = 0

Accessor for the settings.

Return

Utils::Settings& The settings.

virtual const Utils::Settings &settings() const = 0

Constant accessor for the settings.

Return

const Utils::Settings& The settings.

virtual void applySettings() = 0

Method to apply the settings stored in the settings data structure.

Public Static Attributes

constexpr const char *interface = "calculatorWithReference"