Class Scine::Utils::SinglePointMethod

class SinglePointMethod

This class is the base class of any method to be used in Real-time quantum chemistry. It contain declarations for variables methods concerning energy and gradients.

Subclassed by Scine::Utils::LCAOMethod

Public Functions

virtual void calculate(Utils::derivativeType d) = 0

Performs one single-point calculation of the energy.

Parameters
  • derivativesOrder: which derivative to calculate up to, if possible.

void initializeStructure(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions)

Set up the structure from the positions and element types.

Parameters
  • positions: Vector of positions, in bohr.

void initializeStructure(const Utils::ElementTypeCollection &elements)

Set up the structure from the element types.

void setPositions(Utils::PositionCollection positions)

Update the positions. Do not use to initialize the structure!.

const Utils::PositionCollection &getPositions() const

Get the positions (bohr).

const Utils::GradientCollection &getGradients() const

Get the gradients (Hartree / bohr).

const Utils::AtomicSecondDerivativeCollection &getAtomicSecondDerivatives() const

Get the second derivatives with respect to the single atomic nuclei (Hartree / bohr^2).

const Utils::FullSecondDerivativeCollection &getFullSecondDerivatives() const

Get the full second derivatives containers.

const Utils::ElementTypeCollection &getElementTypes() const

Get the elements.

bool canCalculateSecondDerivatives() const

Returns true if the method is able to calculate second derivatives.

const Utils::BondOrderCollection &getBondOrderCollection() const

Returns the lower-triangular bond-order matrix.

double getEnergy() const

Function returning the energy in Hartree.

void setEnergy(double energy)

Set the energy in Hartree.

void startLogger(const std::string &loggerSeverity) const

starts the Utils::Logger so that the static function can in fact be operated from outside of the module boundaries.

Protected Functions

void resizeRealTimeMethodMembers()

Resets the size of gradients_, positions_, bondOrderMatrix_ and atomicCharges_. To be called during initialization of the specific method.