File SinglePointMethod.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.
This header contains alias definitions defining which classes to use for the different degrees of derivatives.
-
namespace
Utils -
class
SinglePointMethod - #include <SinglePointMethod.h>
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
-
SinglePointMethod(Utils::derivOrder maximalOrder)¶
-
virtual
~SinglePointMethod()¶
-
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
setAtomCollection(const Utils::AtomCollection &structure)¶
-
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.
-
void
setBondOrderCollection(const Utils::BondOrderCollection &B)¶
-
int
getNumberAtoms() const¶
-
double
getEnergy() const Function returning the energy in Hartree.
-
void
setEnergy(double energy) Set the energy in Hartree.
-
const std::vector<double> &
getAtomicCharges() const¶
-
double
getAtomicCharge(int index) const¶
-
void
setAtomicCharges(const std::vector<double> &charges)¶
Protected Functions
-
void
resizeRealTimeMethodMembers() Resets the size of gradients_, positions_, bondOrderMatrix_ and atomicCharges_. To be called during initialization of the specific method.
Protected Attributes
-
Utils::BondOrderCollection
bondOrders_¶
-
Utils::ElementTypeCollection
elementTypes_¶
-
Utils::PositionCollection
positions_¶
-
const Utils::derivOrder
maximalCalculableDerivativeOrder_¶
-
Utils::GradientCollection
gradients_¶
-
Utils::AtomicSecondDerivativeCollection
secondDerivatives_¶
-
Utils::FullSecondDerivativeCollection
fullSecondDerivatives_¶
-
std::vector<double>
atomicCharges_¶
-
double
energy_¶
-
-
class
-
namespace