Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod > Class Template Referencefinal

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. More...

#include <DFTBDipoleMatrixCalculator.h>

Inheritance diagram for Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod >:
Inheritance graph
Collaboration diagram for Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod >:
Collaboration graph

Public Member Functions

 ~DFTBDipoleMatrixCalculator () final
 Virtual destructor.
 
 DFTBDipoleMatrixCalculator (DFTBDipoleMatrixCalculator &&)=default
 
const Utils::DipoleMatrixgetAODipoleMatrix () const final
 Getter for the AO dipole matrix. Throws an exception. More...
 
Utils::DipoleMatrix getMODipoleMatrix () const final
 Getter for the MO dipole matrix. Returns an rvalue.
 
void setAODipoleMatrix (Utils::DipoleMatrix dipoleMatrix) final
 Setter for the AO dipole matrix. Here it throws an exception. More...
 
void fillDipoleMatrix (const Eigen::RowVector3d &dipoleEvaluationCoordinate) final
 Calculates the MO dipole matrix for the DFTB methods.
 
void initialize () final
 Initialize the underlying dipole matrix.
 
void setIntegralMethod (const IntegralMethod &IntegralMethod) final
 This does nothing in DFTB as there is just one method currently to calculate Dipole Matrix.
 
void invalidate () final
 Invalidates the underlying dipole matrices and forces a new calculation.
 
bool isValid () const final
 Checks the validity of the underlying dipole matrix.
 

Static Public Member Functions

static std::unique_ptr
< DFTBDipoleMatrixCalculator
< DFTBMethod > > 
create (DFTBMethod &method)
 Factory method for the DFTBDipoleMatrixCalculator. This returns a unique pointer to a DFTBDipoleMatrixCalculator class.
 

Detailed Description

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

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.

Member Function Documentation

template<class DFTBMethod >
const Utils::DipoleMatrix & Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod >::getAODipoleMatrix ( ) const
finalvirtual

Getter for the AO dipole matrix. Throws an exception.

Exceptions
DipoleMatrixTypeNotAvailableExceptionNo AO dipole matrix is currently implemented. TODO: it is just D_{AO} = C * D_{MO} * C^T

Implements Scine::Sparrow::DipoleMatrixCalculator.

template<class DFTBMethod >
void Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod >::setAODipoleMatrix ( Utils::DipoleMatrix  dipoleMatrix)
finalvirtual

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

Exceptions
DipoleMatrixTypeNotAvailableExceptionNo AO dipole matrix is currently implemented. TODO: it is just D_{AO} = C * D_{MO} * C^T

Implements Scine::Sparrow::DipoleMatrixCalculator.


The documentation for this class was generated from the following files: