Class Scine::Sparrow::NDDODipoleMatrixCalculator¶
-
template<class
NDDOMethod
>
classNDDODipoleMatrixCalculator
: public Scine::Sparrow::DipoleMatrixCalculator¶ Class responsible for the calculation of the dipole matrix.
- Template Parameters
NDDOMethod
: An NDDO method, must derive from Utils::SCFMethod and must have the method getInitializer(). getInitializer must return a valid NDDOInitializer instance. This class is responsible for the calculation of the dipole matrix in both atomic and molecular orbital basis. The dipole matrix in atomic orbital basis is calculated by explicitly integrating in closed form or using the highly efficient Obara-Saika scheme the dipole integral <|r|>. The dipole matrix in atomic orbital basis is then transformed in molecular orbital basis by D_{MO} = C^T * D_{AO} * C in restricted formalism, D_{MO} = C_^T * D_{AO} * C_ + C_^T * D_{AO} * C_ in unrestricted formalism.
Public Functions
-
const Utils::DipoleMatrix &
getAODipoleMatrix
() const¶ Getter for the dipole matrix in AO.
-
Utils::DipoleMatrix
getMODipoleMatrix
() const¶ Getter for the dipole matrix in MO.
The dipole matrix in MO basis is transformed from the one in AO basis with every call to this function.
- Return
The dipole matrix in MO basis.
-
void
setAODipoleMatrix
(Utils::DipoleMatrix dipoleMatrix)¶ Setter for the dipole matrix in AO basis.
-
void
fillDipoleMatrix
(const Eigen::RowVector3d &dipoleEvaluationCoordinate)¶ Calculates the dipole matrix in AO basis.
- Parameters
dipoleEvaluationCoordinate
: The coordinates to consider as the origin for the dipole calculation.
-
void
initialize
()¶ Initializes the matrices and invalidates the current dipole matrix.
-
void
setIntegralMethod
(const IntegralMethod &IntegralMethod)¶ Sets the dipole integral calculation method.
- Parameters
IntegralMethod
: Either calculates is from the evaluation of a closed form formula, or with the Obara-Saika recursive algorithm.
-
bool
isValid
() const¶ Return the validity status of the dipole matrix.
-
void
invalidate
()¶ Invalidates the underlying dipole matrices and forces a new calculation.