File DipoleMatrixCalculator.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

Enums

enum IntegralMethod

List of the available calculation methods for calculating the density matrix elements.

Values:

ObaraSaika
ClosedForm
class DipoleMatrixTypeNotAvailableException : public exception

Public Functions

const char *what() const
class DipoleMatrixCalculator
#include <DipoleMatrixCalculator.h>

Interface for the calculation of the dipole matrix in semiempirical methods.

Subclassed by Scine::Sparrow::DFTBDipoleMatrixCalculator< DFTBMethod >, Scine::Sparrow::NDDODipoleMatrixCalculator< NDDOMethod >

Public Functions

virtual ~DipoleMatrixCalculator()
virtual const Utils::DipoleMatrix &getAODipoleMatrix() const = 0

Getter for the dipole matrix in atomic orbitals (AO) basis.

Return

The dipole matrix in AO basis.

virtual Utils::DipoleMatrix getMODipoleMatrix() const = 0

Getter for the dipole matrix in moleculat orbital (MO) basis.

Return

The dipole matrix in MO basis.

virtual void setAODipoleMatrix(Utils::DipoleMatrix dipoleMatrix) = 0

Setter for the dipole matrix in AO basis.

virtual void fillDipoleMatrix(const Eigen::RowVector3d &dipoleEvaluationCoordinate) = 0

Calculates the dipole matrix in AO or MO basis.

The method implementation decides if the dipole matrix is calculated in AO or MO basis: while the dipole integral over atomic orbitals is available for NDDO methods, the same does not hold for DFTB methods. For the latter the dipole matrix is calculated directly in MO basis.

virtual void initialize() = 0

Initialized the dipole matrix calculator and invalidates the current dipole matrix.

virtual void setIntegralMethod(const IntegralMethod &IntegralMethod) = 0

Setter for the desired dipole matrix integrals calculation method.

This is right now only used by the NDDO method.

virtual bool isValid() const = 0

Getter for the validity status of the dipole matrix.

virtual void invalidate() = 0

Invalidates the underlying dipole matrices and forces a new calculation.