Class Scine::Sparrow::NDDODipoleMomentCalculator

template<class NDDOMethod>
class NDDODipoleMomentCalculator : public Scine::Sparrow::DipoleMomentCalculator

Class resposible for the calculation of the dipole in the NDDO methods.

It must be able to calculate the dipole both with the NDDO approximation and with the use 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.

Public Functions

Eigen::RowVector3d calculate() const

Calculates the molecular electrical dipole moment.

Return

An Eigen::Vector3d containing the dipole moment components in atomic units.

void useNDDOApproximation(bool useNDDOApprox)

Sets wether to use the NDDO dipole approximation or calculate the dipole from the dipole matrix.

Parameters
  • useNDDOApprox: The flag present in the method wrapper settings.

Public Static Functions

static std::unique_ptr<NDDODipoleMomentCalculator<NDDOMethod>> create(NDDOMethod &method, DipoleMatrixCalculator &dipoleMatrixCalculator)

Factory method for the NDDODipoleMomentCalculator class.

Return

An unique pointer to an instance of NDDODipoleMomentCalculator<NDDOMethod>

Parameters
  • method: An NDDO method, i.e. PM6Method, MNDOMethod, AM1Method,…

  • dipoleMatrixCalculator: An instance to the class calculating the dipole matrix.