votca 2024-dev
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
votca::xtp::DFTEngine Class Reference

Electronic ground-state via Density-Functional Theory. More...

#include <dftengine.h>

Collaboration diagram for votca::xtp::DFTEngine:
Collaboration graph
[legend]

Public Member Functions

void Initialize (tools::Property &options)
 
void setLogger (Logger *pLog)
 
void setExternalcharges (std::vector< std::unique_ptr< StaticSite > > *externalsites)
 
bool Evaluate (Orbitals &orb)
 
bool EvaluateActiveRegion (Orbitals &orb)
 
bool EvaluateTruncatedActiveRegion (Orbitals &trunc_orb)
 
std::string getDFTBasisName () const
 

Private Member Functions

void Prepare (Orbitals &orb, Index numofelectrons=-1)
 
Vxc_Potential< Vxc_GridSetupVxc (const QMMolecule &mol)
 
Eigen::MatrixXd OrthogonalizeGuess (const Eigen::MatrixXd &GuessMOs) const
 
void PrintMOs (const Eigen::VectorXd &MOEnergies, Log::Level level)
 
void CalcElDipole (const Orbitals &orb) const
 
std::array< Eigen::MatrixXd, 2 > CalcERIs_EXX (const Eigen::MatrixXd &MOCoeff, const Eigen::MatrixXd &Dmat, double error) const
 
Eigen::MatrixXd CalcERIs (const Eigen::MatrixXd &Dmat, double error) const
 
void ConfigOrbfile (Orbitals &orb)
 
void SetupInvariantMatrices ()
 
Eigen::MatrixXd McWeenyPurification (Eigen::MatrixXd &Dmat_in, AOOverlap &overlap)
 
Mat_p_Energy SetupH0 (const QMMolecule &mol) const
 
Mat_p_Energy IntegrateExternalMultipoles (const QMMolecule &mol, const std::vector< std::unique_ptr< StaticSite > > &multipoles) const
 
Mat_p_Energy IntegrateExternalDensity (const QMMolecule &mol, const Orbitals &extdensity) const
 
Eigen::MatrixXd IntegrateExternalField (const QMMolecule &mol) const
 
tools::EigenSystem IndependentElectronGuess (const Mat_p_Energy &H0) const
 
tools::EigenSystem ModelPotentialGuess (const Mat_p_Energy &H0, const QMMolecule &mol, const Vxc_Potential< Vxc_Grid > &vxcpotential) const
 
Eigen::MatrixXd AtomicGuess (const QMMolecule &mol) const
 
Eigen::MatrixXd RunAtomicDFT_unrestricted (const QMAtom &uniqueAtom) const
 
double NuclearRepulsion (const QMMolecule &mol) const
 
double ExternalRepulsion (const QMMolecule &mol, const std::vector< std::unique_ptr< StaticSite > > &multipoles) const
 
Eigen::MatrixXd SphericalAverageShells (const Eigen::MatrixXd &dmat, const AOBasis &dftbasis) const
 
void TruncateBasis (Orbitals &orb, std::vector< Index > &activeatoms, Mat_p_Energy &H0, Eigen::MatrixXd InitialActiveDensityMatrix, Eigen::MatrixXd v_embedding, Eigen::MatrixXd InitialInactiveMOs)
 
void TruncMOsFullBasis (Orbitals &orb, std::vector< Index > activeatoms, std::vector< Index > numfuncpatom)
 
Eigen::MatrixXd InsertZeroCols (Eigen::MatrixXd MOsMatrix, Index startidx, Index numofzerocols)
 
Eigen::MatrixXd InsertZeroRows (Eigen::MatrixXd MOsMatrix, Index startidx, Index numofzerorows)
 

Private Attributes

LoggerpLog_
 
std::string auxbasis_name_
 
std::string dftbasis_name_
 
std::string ecp_name_
 
AOBasis dftbasis_
 
AOBasis auxbasis_
 
ECPAOBasis ecp_
 
Index fock_matrix_reset_
 
double screening_eps_
 
std::string grid_name_
 
AOOverlap dftAOoverlap_
 
std::string initial_guess_
 
Index numofelectrons_ = 0
 
Index max_iter_
 
ConvergenceAcc::options conv_opt_
 
ConvergenceAcc conv_accelerator_
 
ERIs ERIs_
 
std::vector< std::unique_ptr< StaticSite > > * externalsites_ = nullptr
 
double ScaHFX_
 
std::string xc_functional_name_
 
bool integrate_ext_density_ = false
 
std::string orbfilename_
 
std::string gridquality_
 
std::string state_
 
QMMolecule activemol_
 
Eigen::Vector3d extfield_ = Eigen::Vector3d::Zero()
 
bool integrate_ext_field_ = false
 
std::string active_atoms_as_string_
 
double active_threshold_
 
double levelshift_
 
Eigen::MatrixXd H0_trunc_
 
Eigen::MatrixXd InitialActiveDmat_trunc_
 
Eigen::MatrixXd v_embedding_trunc_
 
bool truncate_
 
Index active_electrons_
 
double Total_E_full_
 
double E_nuc_
 
double truncation_threshold_
 
std::vector< Indexactive_and_border_atoms_
 
std::vector< Indexnumfuncpatom_
 

Detailed Description

Electronic ground-state via Density-Functional Theory.

Evaluates electronic ground state in molecular systems based on density functional theory with Gaussian Orbitals.

Definition at line 48 of file dftengine.h.

Member Function Documentation

◆ AtomicGuess()

Eigen::MatrixXd votca::xtp::DFTEngine::AtomicGuess ( const QMMolecule mol) const
private

Definition at line 697 of file dftengine.cc.

◆ CalcElDipole()

void votca::xtp::DFTEngine::CalcElDipole ( const Orbitals orb) const
private

Definition at line 150 of file dftengine.cc.

◆ CalcERIs()

Eigen::MatrixXd votca::xtp::DFTEngine::CalcERIs ( const Eigen::MatrixXd &  Dmat,
double  error 
) const
private

Definition at line 174 of file dftengine.cc.

◆ CalcERIs_EXX()

std::array< Eigen::MatrixXd, 2 > votca::xtp::DFTEngine::CalcERIs_EXX ( const Eigen::MatrixXd &  MOCoeff,
const Eigen::MatrixXd &  Dmat,
double  error 
) const
private

Definition at line 159 of file dftengine.cc.

◆ ConfigOrbfile()

void votca::xtp::DFTEngine::ConfigOrbfile ( Orbitals orb)
private

Definition at line 738 of file dftengine.cc.

◆ Evaluate()

bool votca::xtp::DFTEngine::Evaluate ( Orbitals orb)

Definition at line 209 of file dftengine.cc.

◆ EvaluateActiveRegion()

bool votca::xtp::DFTEngine::EvaluateActiveRegion ( Orbitals orb)

Definition at line 63 of file embeddingengine.cc.

◆ EvaluateTruncatedActiveRegion()

bool votca::xtp::DFTEngine::EvaluateTruncatedActiveRegion ( Orbitals trunc_orb)

Definition at line 353 of file embeddingengine.cc.

◆ ExternalRepulsion()

double votca::xtp::DFTEngine::ExternalRepulsion ( const QMMolecule mol,
const std::vector< std::unique_ptr< StaticSite > > &  multipoles 
) const
private

Definition at line 949 of file dftengine.cc.

◆ getDFTBasisName()

std::string votca::xtp::DFTEngine::getDFTBasisName ( ) const
inline

Definition at line 64 of file dftengine.h.

◆ IndependentElectronGuess()

tools::EigenSystem votca::xtp::DFTEngine::IndependentElectronGuess ( const Mat_p_Energy H0) const
private

Definition at line 183 of file dftengine.cc.

◆ Initialize()

void votca::xtp::DFTEngine::Initialize ( tools::Property options)

Definition at line 46 of file dftengine.cc.

◆ InsertZeroCols()

Eigen::MatrixXd votca::xtp::DFTEngine::InsertZeroCols ( Eigen::MatrixXd  MOsMatrix,
Index  startidx,
Index  numofzerocols 
)
private

◆ InsertZeroRows()

Eigen::MatrixXd votca::xtp::DFTEngine::InsertZeroRows ( Eigen::MatrixXd  MOsMatrix,
Index  startidx,
Index  numofzerorows 
)
private

Definition at line 687 of file embeddingengine.cc.

◆ IntegrateExternalDensity()

Mat_p_Energy votca::xtp::DFTEngine::IntegrateExternalDensity ( const QMMolecule mol,
const Orbitals extdensity 
) const
private

Definition at line 1005 of file dftengine.cc.

◆ IntegrateExternalField()

Eigen::MatrixXd votca::xtp::DFTEngine::IntegrateExternalField ( const QMMolecule mol) const
private

Definition at line 975 of file dftengine.cc.

◆ IntegrateExternalMultipoles()

Mat_p_Energy votca::xtp::DFTEngine::IntegrateExternalMultipoles ( const QMMolecule mol,
const std::vector< std::unique_ptr< StaticSite > > &  multipoles 
) const
private

Definition at line 988 of file dftengine.cc.

◆ McWeenyPurification()

Eigen::MatrixXd votca::xtp::DFTEngine::McWeenyPurification ( Eigen::MatrixXd &  Dmat_in,
AOOverlap overlap 
)
private

Definition at line 649 of file embeddingengine.cc.

◆ ModelPotentialGuess()

tools::EigenSystem votca::xtp::DFTEngine::ModelPotentialGuess ( const Mat_p_Energy H0,
const QMMolecule mol,
const Vxc_Potential< Vxc_Grid > &  vxcpotential 
) const
private

Definition at line 188 of file dftengine.cc.

◆ NuclearRepulsion()

double votca::xtp::DFTEngine::NuclearRepulsion ( const QMMolecule mol) const
private

Definition at line 902 of file dftengine.cc.

◆ OrthogonalizeGuess()

Eigen::MatrixXd votca::xtp::DFTEngine::OrthogonalizeGuess ( const Eigen::MatrixXd &  GuessMOs) const
private

Definition at line 1043 of file dftengine.cc.

◆ Prepare()

void votca::xtp::DFTEngine::Prepare ( Orbitals orb,
Index  numofelectrons = -1 
)
private

Definition at line 801 of file dftengine.cc.

◆ PrintMOs()

void votca::xtp::DFTEngine::PrintMOs ( const Eigen::VectorXd &  MOEnergies,
Log::Level  level 
)
private

Definition at line 134 of file dftengine.cc.

◆ RunAtomicDFT_unrestricted()

Eigen::MatrixXd votca::xtp::DFTEngine::RunAtomicDFT_unrestricted ( const QMAtom uniqueAtom) const
private

Definition at line 509 of file dftengine.cc.

◆ setExternalcharges()

void votca::xtp::DFTEngine::setExternalcharges ( std::vector< std::unique_ptr< StaticSite > > *  externalsites)
inline

Definition at line 54 of file dftengine.h.

◆ setLogger()

void votca::xtp::DFTEngine::setLogger ( Logger pLog)
inline

Definition at line 52 of file dftengine.h.

◆ SetupH0()

Mat_p_Energy votca::xtp::DFTEngine::SetupH0 ( const QMMolecule mol) const
private

Definition at line 369 of file dftengine.cc.

◆ SetupInvariantMatrices()

void votca::xtp::DFTEngine::SetupInvariantMatrices ( )
private

Definition at line 476 of file dftengine.cc.

◆ SetupVxc()

Vxc_Potential< Vxc_Grid > votca::xtp::DFTEngine::SetupVxc ( const QMMolecule mol)
private

Definition at line 881 of file dftengine.cc.

◆ SphericalAverageShells()

Eigen::MatrixXd votca::xtp::DFTEngine::SphericalAverageShells ( const Eigen::MatrixXd &  dmat,
const AOBasis dftbasis 
) const
private

Definition at line 918 of file dftengine.cc.

◆ TruncateBasis()

void votca::xtp::DFTEngine::TruncateBasis ( Orbitals orb,
std::vector< Index > &  activeatoms,
Mat_p_Energy H0,
Eigen::MatrixXd  InitialActiveDensityMatrix,
Eigen::MatrixXd  v_embedding,
Eigen::MatrixXd  InitialInactiveMOs 
)
private

Definition at line 496 of file embeddingengine.cc.

◆ TruncMOsFullBasis()

void votca::xtp::DFTEngine::TruncMOsFullBasis ( Orbitals orb,
std::vector< Index activeatoms,
std::vector< Index numfuncpatom 
)
private

Definition at line 670 of file embeddingengine.cc.

Member Data Documentation

◆ active_and_border_atoms_

std::vector<Index> votca::xtp::DFTEngine::active_and_border_atoms_
private

Definition at line 186 of file dftengine.h.

◆ active_atoms_as_string_

std::string votca::xtp::DFTEngine::active_atoms_as_string_
private

Definition at line 173 of file dftengine.h.

◆ active_electrons_

Index votca::xtp::DFTEngine::active_electrons_
private

Definition at line 182 of file dftengine.h.

◆ active_threshold_

double votca::xtp::DFTEngine::active_threshold_
private

Definition at line 174 of file dftengine.h.

◆ activemol_

QMMolecule votca::xtp::DFTEngine::activemol_
private
Initial value:
=
QMMolecule("molecule made of atoms participating in Active region", 1)

Definition at line 167 of file dftengine.h.

◆ auxbasis_

AOBasis votca::xtp::DFTEngine::auxbasis_
private

Definition at line 130 of file dftengine.h.

◆ auxbasis_name_

std::string votca::xtp::DFTEngine::auxbasis_name_
private

Definition at line 126 of file dftengine.h.

◆ conv_accelerator_

ConvergenceAcc votca::xtp::DFTEngine::conv_accelerator_
private

Definition at line 150 of file dftengine.h.

◆ conv_opt_

ConvergenceAcc::options votca::xtp::DFTEngine::conv_opt_
private

Definition at line 148 of file dftengine.h.

◆ dftAOoverlap_

AOOverlap votca::xtp::DFTEngine::dftAOoverlap_
private

Definition at line 141 of file dftengine.h.

◆ dftbasis_

AOBasis votca::xtp::DFTEngine::dftbasis_
private

Definition at line 129 of file dftengine.h.

◆ dftbasis_name_

std::string votca::xtp::DFTEngine::dftbasis_name_
private

Definition at line 127 of file dftengine.h.

◆ E_nuc_

double votca::xtp::DFTEngine::E_nuc_
private

Definition at line 184 of file dftengine.h.

◆ ecp_

ECPAOBasis votca::xtp::DFTEngine::ecp_
private

Definition at line 131 of file dftengine.h.

◆ ecp_name_

std::string votca::xtp::DFTEngine::ecp_name_
private

Definition at line 128 of file dftengine.h.

◆ ERIs_

ERIs votca::xtp::DFTEngine::ERIs_
private

Definition at line 152 of file dftengine.h.

◆ externalsites_

std::vector<std::unique_ptr<StaticSite> >* votca::xtp::DFTEngine::externalsites_ = nullptr
private

Definition at line 155 of file dftengine.h.

◆ extfield_

Eigen::Vector3d votca::xtp::DFTEngine::extfield_ = Eigen::Vector3d::Zero()
private

Definition at line 170 of file dftengine.h.

◆ fock_matrix_reset_

Index votca::xtp::DFTEngine::fock_matrix_reset_
private

Definition at line 133 of file dftengine.h.

◆ grid_name_

std::string votca::xtp::DFTEngine::grid_name_
private

Definition at line 138 of file dftengine.h.

◆ gridquality_

std::string votca::xtp::DFTEngine::gridquality_
private

Definition at line 164 of file dftengine.h.

◆ H0_trunc_

Eigen::MatrixXd votca::xtp::DFTEngine::H0_trunc_
private

Definition at line 178 of file dftengine.h.

◆ initial_guess_

std::string votca::xtp::DFTEngine::initial_guess_
private

Definition at line 143 of file dftengine.h.

◆ InitialActiveDmat_trunc_

Eigen::MatrixXd votca::xtp::DFTEngine::InitialActiveDmat_trunc_
private

Definition at line 179 of file dftengine.h.

◆ integrate_ext_density_

bool votca::xtp::DFTEngine::integrate_ext_density_ = false
private

Definition at line 161 of file dftengine.h.

◆ integrate_ext_field_

bool votca::xtp::DFTEngine::integrate_ext_field_ = false
private

Definition at line 171 of file dftengine.h.

◆ levelshift_

double votca::xtp::DFTEngine::levelshift_
private

Definition at line 175 of file dftengine.h.

◆ max_iter_

Index votca::xtp::DFTEngine::max_iter_
private

Definition at line 147 of file dftengine.h.

◆ numfuncpatom_

std::vector<Index> votca::xtp::DFTEngine::numfuncpatom_
private

Definition at line 187 of file dftengine.h.

◆ numofelectrons_

Index votca::xtp::DFTEngine::numofelectrons_ = 0
private

Definition at line 146 of file dftengine.h.

◆ orbfilename_

std::string votca::xtp::DFTEngine::orbfilename_
private

Definition at line 163 of file dftengine.h.

◆ pLog_

Logger* votca::xtp::DFTEngine::pLog_
private

Definition at line 123 of file dftengine.h.

◆ ScaHFX_

double votca::xtp::DFTEngine::ScaHFX_
private

Definition at line 158 of file dftengine.h.

◆ screening_eps_

double votca::xtp::DFTEngine::screening_eps_
private

Definition at line 135 of file dftengine.h.

◆ state_

std::string votca::xtp::DFTEngine::state_
private

Definition at line 165 of file dftengine.h.

◆ Total_E_full_

double votca::xtp::DFTEngine::Total_E_full_
private

Definition at line 183 of file dftengine.h.

◆ truncate_

bool votca::xtp::DFTEngine::truncate_
private

Definition at line 181 of file dftengine.h.

◆ truncation_threshold_

double votca::xtp::DFTEngine::truncation_threshold_
private

Definition at line 185 of file dftengine.h.

◆ v_embedding_trunc_

Eigen::MatrixXd votca::xtp::DFTEngine::v_embedding_trunc_
private

Definition at line 180 of file dftengine.h.

◆ xc_functional_name_

std::string votca::xtp::DFTEngine::xc_functional_name_
private

Definition at line 159 of file dftengine.h.


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