Class Scine::Sparrow::DipoleMatrixCalculator

class DipoleMatrixCalculator

Interface for the calculation of the dipole matrix in semiempirical methods.

Subclassed by Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod >, Scine::Sparrow::NDDODipoleMatrixCalculator< NDDOMethod >

Public Functions

virtual const Utils::DipoleMatrix &getAODipoleMatrix() const = 0

Getter for the dipole matrix in atomic orbitals (AO) basis.

Return

The dipole matrix in AO basis.

virtual Utils::DipoleMatrix getMODipoleMatrix() const = 0

Getter for the dipole matrix in moleculat orbital (MO) basis.

Return

The dipole matrix in MO basis.

virtual void setAODipoleMatrix(Utils::DipoleMatrix dipoleMatrix) = 0

Setter for the dipole matrix in AO basis.

virtual void fillDipoleMatrix(const Eigen::RowVector3d &dipoleEvaluationCoordinate) = 0

Calculates the dipole matrix in AO or MO basis.

The method implementation decides if the dipole matrix is calculated in AO or MO basis: while the dipole integral over atomic orbitals is available for NDDO methods, the same does not hold for DFTB methods. For the latter the dipole matrix is calculated directly in MO basis.

virtual void initialize() = 0

Initialized the dipole matrix calculator and invalidates the current dipole matrix.

virtual void setIntegralMethod(const IntegralMethod &IntegralMethod) = 0

Setter for the desired dipole matrix integrals calculation method.

This is right now only used by the NDDO method.

virtual bool isValid() const = 0

Getter for the validity status of the dipole matrix.

virtual void invalidate() = 0

Invalidates the underlying dipole matrices and forces a new calculation.