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)¶
-
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.
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