7 #ifndef SPARROW_DIPOLEMATRIXCALCULATOR_H
8 #define SPARROW_DIPOLEMATRIXCALCULATOR_H
21 const char* what()
const noexcept
final {
22 return "Matrix type not available";
29 enum class IntegralMethod { ObaraSaika, ClosedForm };
57 virtual void fillDipoleMatrix(
const Eigen::RowVector3d& dipoleEvaluationCoordinate) = 0;
71 virtual bool isValid()
const = 0;
81 #endif // SPARROW_DIPOLEMATRIXCALCULATOR_H
virtual const Utils::DipoleMatrix & getAODipoleMatrix() const =0
Getter for the dipole matrix in atomic orbitals (AO) 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 matri...
Definition: DipoleMatrixCalculator.h:19
virtual void setIntegralMethod(const IntegralMethod &IntegralMethod)=0
Setter for the desired dipole matrix integrals calculation method. This is right now only used by the...
Interface for the calculation of the dipole matrix in semiempirical methods.
Definition: DipoleMatrixCalculator.h:34
virtual void initialize()=0
Initialized the dipole matrix calculator and invalidates the current dipole matrix.
virtual Utils::DipoleMatrix getMODipoleMatrix() const =0
Getter for the dipole matrix in moleculat orbital (MO) basis.
virtual void invalidate()=0
Invalidates the underlying dipole matrices and forces a new calculation.
virtual bool isValid() const =0
Getter for the validity status of the dipole matrix.