File DFTBDipoleMatrixCalculator.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine
-
namespace
Sparrow
-
template<class
DFTBMethod
>
classDFTBDipoleMatrixCalculator
: public Scine::Sparrow::DipoleMatrixCalculator - #include <DFTBDipoleMatrixCalculator.h>
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
a fast approach for the calculation of electronically excited states, J. Chem. Phys. 144, 184103, 2016, https://doi.org/10.1063/1.4948647
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.
Public Static Functions
-
static std::unique_ptr<DFTBDipoleMatrixCalculator<DFTBMethod>>
create
(DFTBMethod &method)¶
Private Functions
-
DFTBDipoleMatrixCalculator
(DFTBMethod &method)¶
-
void
calculateRestrictedTransitionChargeMatrices
(const Utils::PositionCollection &positions)¶
-
void
calculateUnrestrictedTransitionChargeMatrices
(const Utils::PositionCollection &positions)¶
Private Members
-
bool
valid_
= {false}¶
-
Utils::DipoleMatrix
dipoleMatrixMO_
¶
-
const DFTBMethod &
method_
¶
-
const Utils::PositionCollection
positions_
¶
-
const Utils::MolecularOrbitals &
coefficientMatrix_
¶
-
const Eigen::MatrixXd &
overlapMatrix_
¶
-
const Utils::AtomsOrbitalsIndexes &
aoIndex_
¶
-
std::vector<Eigen::MatrixXd>
transitionChargeMatrices_
¶
-
template<class
-
namespace