Class Scine::Sparrow::GenericMethodWrapper

class GenericMethodWrapper : public Utils::CloneInterface<Utils::Abstract<GenericMethodWrapper>, Core::Calculator>, public WavefunctionOutputGenerator

A MethodWrapper running Generic calculations.

Public Functions

GenericMethodWrapper()

Default Constructor.

~GenericMethodWrapper()

Default Destructor.

void setStructure(const Utils::AtomCollection &structure)

Sets new structure and initializes the underlying method with the parameter given in the settings.

Parameters
  • structure: The structure to be assigned.

std::unique_ptr<Utils::AtomCollection> getStructure() const

Getter for the underlying element types and positions.

void modifyPositions(Utils::PositionCollection newPositions)

Allows to modify the positions of the underlying Utils::AtomCollection.

Parameters
  • newPositions: the new positions to be assigned to the underlying Utils::AtomCollection

const Utils::PositionCollection &getPositions() const

Getter for the coordinates of the underlying Utils::AtomCollection.

void setRequiredProperties(const Utils::PropertyList &requiredProperties)

Sets the properties to calculate.

Parameters
  • requiredProperties: a Utils::PropertyList object, contains an enum class that work as a bitset, switching on and off the bits representing a property.

Utils::PropertyList getRequiredProperties() const

Gets the properties to calculate.

Return

requiredProperties a Utils::PropertyList object, contains an enum class that work as a bitset, switching on and off the bits representing a property.

const Utils::Results &calculate(std::string description)

The main function running calculations (dummy).

Return

double Return the result of the calculation.

Parameters
  • dummy: A dummy parameter.

virtual Utils::DensityMatrix getDensityMatrixGuess() const = 0

Getter for the initial density matrix guess.

Return

The initial density matrix guess.

Utils::Settings &settings()

Accessor for the Settings used in this method wrapper.

Return

Utils::Settings& The Settings.

const Utils::Settings &settings() const

Const accessor for the Settings used in this method wrapper.

Return

const Utils::Settings& The Settings.

Utils::Results &results()

Accessor for the Results stored in this method wrapper.

Return

Utils::Results& The results of the previous calculation.

const Utils::Results &results() const

Const accessor for the Results used in this method wrapper.

Return

const Utils::Results& The results of the previous calculation.

bool supportsMethodFamily(const std::string &methodFamily) const

Whether the calculator supports a method family In this library, every calculator supports just one “method family”: itself.

Return

whether the calculator supports a method family

Parameters
  • methodFamily: identifier for the method family

virtual Utils::LcaoMethod &getLcaoMethod() = 0

Get the underlying LcaoMethod.

std::string getStoNGExpansionPath() const

Returns a Sto-6G expansion.

Protected Functions

virtual void initialize() = 0

Initializes a method with the parameter file present in the settings.

Utils::derivativeType highestDerivativeRequired() const

Determines the highest derivative type needed based on the property needed for calculation.

virtual void applySettings()

Function to apply the settings to the actual calculation method.

This method is needed in every calculator as the modification of the settings object does not cause a direct propagation to the underlying calculation method. It is not part of the public interface as an external user should not have to decide when/where to use this. In the implementation of a calculator care must be taken that at calculation time the settings have correctly been propagated to the underlying calculator method.

virtual void calculateImpl(Utils::derivativeType requiredDerivative) = 0

Method-dependent implementation of the calculate member function.