Class Scine::Core::Calculator¶
-
class
Calculator
: public Scine::Core::StateHandableObject, public Scine::Core::ObjectWithStructure¶ The interface for all classes running electronic structure calculations.
Public Functions
-
Calculator
()¶ Default constructor.
-
virtual
~Calculator
()¶ Default destructor.
-
virtual void
setRequiredProperties
(const Utils::PropertyList &requiredProperties) = 0¶ Sets the properties to calculate.
- Parameters
requiredProperties
: A Utils::PropertyList, a sequence of bits that represent the properties that must be calculated.
-
virtual Utils::PropertyList
getRequiredProperties
() const = 0¶ Gets the current properties to calculate.
-
virtual Utils::PropertyList
possibleProperties
() const = 0¶ Returns the list of the possible properties to calculate analytically.
By some method analytical hessian calculation is not possible. In this case the hessian calculation is done seminumerically.
-
virtual const Utils::Results &
calculate
(std::string description = "") = 0¶ The main function running calculations.
- Return
Utils::Result Return the result of the calculation. The object contains the properties that were given as requirement by the Calculator::setRequiredProperties function.
- Parameters
description
: The calculation description.
-
virtual std::string
name
() const = 0¶ Getter for the name of the Calculator.
- Return
Returns the name of the Calculator.
-
std::unique_ptr<Core::Calculator>
clone
() const¶ Method allowing to clone the derived class into a Core::Calculator The derived, leaf class needs to inherit from Utils::CloneInterface and, if needed, implement a custom copy constructor.
This reduces boilerplate code.
-
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 Utils::Results &
results
() = 0¶ Accessor for the saved instance of Utils::Results.
- Return
Utils::Results& The results of the previous calculation.
-
virtual const Utils::Results &
results
() const = 0¶ Constant accessor for the Utils::Results.
- Return
const Utils::Results& The results of the previous calculation.
-
virtual bool
supportsMethodFamily
(const std::string &methodFamily) const = 0¶ Whether the calculator supports a method family.
- Return
whether the calculator supports a method family
- Parameters
methodFamily
: identifier for the method family
Public Static Functions
-
static auto
supports
(const std::string &methodFamily)¶ Predicate-generator for ModuleManager’s get<Interface, UnaryPredicate> function.
- Return
A lambda capturing the method family that checks passed interface pointer objects for method family support
- Parameters
methodFamily
: The method family to check support for
-