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