Class Scine::Sparrow::nddo::OneElectronMatrix¶
-
class
OneElectronMatrix
¶ 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.
-