Scine::Sparrow
5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
|
Class responsible for the calculation of the dipole matrix. More...
#include <NDDODipoleMatrixCalculator.h>
Public Member Functions | |
const Utils::DipoleMatrix & | getAODipoleMatrix () const final |
Getter for the dipole matrix in AO. | |
Utils::DipoleMatrix | getMODipoleMatrix () const final |
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. More... | |
void | setAODipoleMatrix (Utils::DipoleMatrix dipoleMatrix) final |
Setter for the dipole matrix in AO basis. | |
void | fillDipoleMatrix (const Eigen::RowVector3d &dipoleEvaluationCoordinate) final |
Calculates the dipole matrix in AO basis. More... | |
void | initialize () final |
Initializes the matrices and invalidates the current dipole matrix. | |
void | setIntegralMethod (const IntegralMethod &IntegralMethod) final |
Sets the dipole integral calculation method. More... | |
bool | isValid () const final |
Return the validity status of the dipole matrix. | |
void | invalidate () final |
Invalidates the underlying dipole matrices and forces a new calculation. | |
Static Public Member Functions | |
static std::unique_ptr < NDDODipoleMatrixCalculator < NDDOMethod > > | create (NDDOMethod &method) |
Class responsible for the calculation of the dipole matrix.
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. |
|
finalvirtual |
Calculates the dipole matrix in AO basis.
dipoleEvaluationCoordinate | The coordinates to consider as the origin for the dipole calculation. |
Implements Scine::Sparrow::DipoleMatrixCalculator.
|
finalvirtual |
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.
Implements Scine::Sparrow::DipoleMatrixCalculator.
|
finalvirtual |
Sets the dipole integral calculation method.
IntegralMethod | Either calculates is from the evaluation of a closed form formula, or with the Obara-Saika recursive algorithm. |
Implements Scine::Sparrow::DipoleMatrixCalculator.