File OneElectronMatrix.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 -
namespace
Sparrow -
namespace
nddo -
class
OneElectronMatrix - #include <OneElectronMatrix.h>
This class generates the one-electron matrix H for semi-empirical methods.
Public Functions
-
OneElectronMatrix(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const Eigen::MatrixXd &densityMatrix, const TwoCenterIntegralContainer &twoCIntegrals, const ElementParameters &elementPar, const Utils::AtomsOrbitalsIndexes &aoIndexes) Constructor.
-
void
initialize() Initializes one-electron matrix H and the used data structures.
-
void
calculate(const Utils::MatrixWithDerivatives &S) Fills the one-electron matrix H by reading and calculating the required integrals.
-
void
calculateSameAtomBlocks() Calculates all the blocks on the same atoms.
-
void
calculateSameAtomBlock(int a, int startIndex, int nAOs) Calculates a specific block on an atom.
-
void
calculateDifferentAtomsBlocks(const Utils::MatrixWithDerivatives &S) Calculates all the blocks on different atom pairs.
-
void
calculateDifferentAtomsBlock(int startRow, int startCol, const AtomicParameters &pA, const AtomicParameters &pB, const Utils::MatrixWithDerivatives &S) Calculates a block between a specific atom pair.
-
template<Utils::derivativeType
O>
voidaddDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivativeContainer, const Utils::MatrixWithDerivatives &S) const Calculates the derivative contribution up to the order.
- Template Parameters
O.:
-
const Eigen::MatrixXd &
operator()() const Getter for the one-electron matrix H.
-
const Eigen::MatrixXd &
getMatrix() const¶
Private Functions
-
template<Utils::derivativeType
O>
voidaddDerivativesContribution1(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivativeContainer, int a, int startIndex, int nAOs) const¶
-
template<Utils::derivativeType
O>
voidaddDerivativesContribution2(Utils::AutomaticDifferentiation::DerivativeContainerType<O> &derivativeContainer, int a, int b, int indexA, int indexB, int nAOsA, int nAOsB, const Utils::MatrixWithDerivatives &S) const¶
Private Members
-
const Eigen::MatrixXd &
P¶
-
const TwoCenterIntegralContainer &
twoCenterIntegrals¶
-
const ElementParameters &
elementParameters¶
-
const Utils::AtomsOrbitalsIndexes &
aoIndexes_¶
-
int
nAOs_= 0¶
-
int
nAtoms_= 0¶
-
Eigen::MatrixXd
H_¶
-
const Utils::ElementTypeCollection &
elementTypes_¶
-
const Utils::PositionCollection &
positions_¶
-
-
class
-
namespace
-
namespace