8 #ifndef SPARROW_DFTBDIPOLEMATRIXCALCULATOR_H
9 #define SPARROW_DFTBDIPOLEMATRIXCALCULATOR_H
20 class MolecularOrbitals;
21 class AtomsOrbitalsIndexes;
37 template<
class DFTBMethod>
44 static std::unique_ptr<DFTBDipoleMatrixCalculator<DFTBMethod>>
create(DFTBMethod& method);
65 void fillDipoleMatrix(
const Eigen::RowVector3d& dipoleEvaluationCoordinate)
final;
80 const DFTBMethod& method_;
84 const Eigen::MatrixXd& overlapMatrix_;
91 #endif // SPARROW_DFTBDIPOLEMATRIXCALCULATOR_H
void fillDipoleMatrix(const Eigen::RowVector3d &dipoleEvaluationCoordinate) final
Calculates the MO dipole matrix for the DFTB methods.
Definition: DFTBDipoleMatrixCalculator.cpp:56
static std::unique_ptr< DFTBDipoleMatrixCalculator< DFTBMethod > > create(DFTBMethod &method)
Factory method for the DFTBDipoleMatrixCalculator. This returns a unique pointer to a DFTBDipoleMatri...
Definition: DFTBDipoleMatrixCalculator.cpp:30
Class responsible for the calculation of the dipole matrix in MO basis for DFTB methods. This class calculates the dipole matrix in MO basis according to R. Rüger, E. van Lenthe, T. Heine and L. Visscher, Tight-Binding Approximations to Time-Dependent Density Functional Theory.
Definition: DFTBDipoleMatrixCalculator.h:38
void initialize() final
Initialize the underlying dipole matrix.
Definition: DFTBDipoleMatrixCalculator.cpp:83
void setIntegralMethod(const IntegralMethod &IntegralMethod) final
This does nothing in DFTB as there is just one method currently to calculate Dipole Matrix...
Definition: DFTBDipoleMatrixCalculator.cpp:51
Interface for the calculation of the dipole matrix in semiempirical methods.
Definition: DipoleMatrixCalculator.h:34
const Utils::DipoleMatrix & getAODipoleMatrix() const final
Getter for the AO dipole matrix. Throws an exception.
Definition: DFTBDipoleMatrixCalculator.cpp:36
~DFTBDipoleMatrixCalculator() final
Virtual destructor.
void invalidate() final
Invalidates the underlying dipole matrices and forces a new calculation.
Definition: DFTBDipoleMatrixCalculator.cpp:90
bool isValid() const final
Checks the validity of the underlying dipole matrix.
Definition: DFTBDipoleMatrixCalculator.cpp:95
Utils::DipoleMatrix getMODipoleMatrix() const final
Getter for the MO dipole matrix. Returns an rvalue.
Definition: DFTBDipoleMatrixCalculator.cpp:41
void setAODipoleMatrix(Utils::DipoleMatrix dipoleMatrix) final
Setter for the AO dipole matrix. Here it throws an exception.
Definition: DFTBDipoleMatrixCalculator.cpp:46