Class Scine::Sparrow::DFTBDipoleMatrixCalculator

template<class DFTBMethod>
class DFTBDipoleMatrixCalculator : public Scine::Sparrow::DipoleMatrixCalculator

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

It works with the DFTBO0, DFTB2 and DFTB3 methods in restricted and unrestricted formalism.

Public Functions

~DFTBDipoleMatrixCalculator()

Virtual destructor.

const Utils::DipoleMatrix &getAODipoleMatrix() const

Getter for the AO dipole matrix. Throws an exception.

Utils::DipoleMatrix getMODipoleMatrix() const

Getter for the MO dipole matrix. Returns an rvalue.

void setAODipoleMatrix(Utils::DipoleMatrix dipoleMatrix)

Setter for the AO dipole matrix. Here it throws an exception.

void fillDipoleMatrix(const Eigen::RowVector3d &dipoleEvaluationCoordinate)

Calculates the MO dipole matrix for the DFTB methods.

void initialize()

Initialize the underlying dipole matrix.

void setIntegralMethod(const IntegralMethod &IntegralMethod)

This does nothing in DFTB.

void invalidate()

Invalidates the underlying dipole matrices and forces a new calculation.

bool isValid() const

Checks the validity of the underlying dipole matrix.