7 #ifndef SPARROW_NDDODIPOLEMOMENTCALCULATOR_H
8 #define SPARROW_NDDODIPOLEMOMENTCALCULATOR_H
18 class DipoleMatrixCalculator;
25 template<
class NDDOMethod>
34 static std::unique_ptr<NDDODipoleMomentCalculator<NDDOMethod>>
create(NDDOMethod& method,
42 Eigen::RowVector3d
calculate()
const final;
54 std::vector<int> nrAOs, std::vector<double> chargeSeparationSP,
55 std::vector<double> chargeSeparationPD)
const;
58 Eigen::MatrixXd overlapMatrix,
59 Eigen::RowVector3d dipoleEvaluationCoordinate)
const;
66 bool useNDDOApproximation_{
true};
72 #endif // SPARROW_NDDODIPOLEMOMENTCALCULATOR_H
static std::unique_ptr< NDDODipoleMomentCalculator< NDDOMethod > > create(NDDOMethod &method, DipoleMatrixCalculator &dipoleMatrixCalculator)
Factory method for the NDDODipoleMomentCalculator class.
Definition: NDDODipoleMomentCalculator.cpp:32
void useNDDOApproximation(bool useNDDOApprox)
Sets wether to use the NDDO dipole approximation or calculate the dipole from the dipole matrix...
Definition: NDDODipoleMomentCalculator.cpp:140
Interface for the calculation of the electrical dipole moment in a semiempirical method.
Definition: DipoleMomentCalculator.h:20
Interface for the calculation of the dipole matrix in semiempirical methods.
Definition: DipoleMatrixCalculator.h:34
Eigen::RowVector3d calculate() const final
Calculates the molecular electrical dipole moment.
Definition: NDDODipoleMomentCalculator.cpp:38
Class resposible for the calculation of the dipole in the NDDO methods. It must be able to calculate ...
Definition: NDDODipoleMomentCalculator.h:26