Scine::Sparrow  5.1.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Scine::Sparrow::dftb::ScfFock Class Referenceabstract

#include <ScfFock.h>

Inheritance diagram for Scine::Sparrow::dftb::ScfFock:
Inheritance graph
Collaboration diagram for Scine::Sparrow::dftb::ScfFock:
Collaboration graph

Public Member Functions

 ScfFock (ZeroOrderMatricesCalculator &matricesCalculator, const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const DFTBCommon::AtomicParameterContainer &atomicPar, const DFTBCommon::DiatomicParameterContainer &diatomicPar, const Utils::DensityMatrix &densityMatrix, const Eigen::MatrixXd &energyWeightedDensityMatrix, std::vector< double > &atomicCharges, const std::vector< double > &coreCharges, const Utils::AtomsOrbitalsIndexes &aoIndexes, const Eigen::MatrixXd &overlapMatrix, const bool &unrestrictedCalculationRunning)
 
void initialize () override
 
void calculateDensityDependentPart (Utils::DerivativeOrder order) override
 
void calculateDensityIndependentPart (Utils::DerivativeOrder order) override
 
Utils::SpinAdaptedMatrix getMatrix () const override
 
void finalize (Utils::DerivativeOrder order) override
 
void addDensityDependentElectronicContribution (std::shared_ptr< Utils::AdditiveElectronicContribution > contribution) final
 
void addDensityIndependentElectronicContribution (std::shared_ptr< Utils::AdditiveElectronicContribution > contribution) final
 
- Public Member Functions inherited from Scine::Utils::ElectronicContributionCalculator
virtual void addDensityDependentElectronicContribution (std::shared_ptr< AdditiveElectronicContribution > contribution)=0
 
virtual void addDensityIndependentElectronicContribution (std::shared_ptr< AdditiveElectronicContribution > contribution)=0
 

Protected Member Functions

int getNumberAtoms () const
 
void populationAnalysis ()
 
void addDerivatives (Utils::AutomaticDifferentiation::DerivativeContainerType< Utils::Derivative::First > &derivatives) const override
 adds the derivatives for the first, second atomic and second full types.
 
void addDerivatives (Utils::AutomaticDifferentiation::DerivativeContainerType< Utils::Derivative::SecondAtomic > &derivatives) const override
 
void addDerivatives (Utils::AutomaticDifferentiation::DerivativeContainerType< Utils::Derivative::SecondFull > &derivatives) const override
 

Protected Attributes

ZeroOrderMatricesCalculatorzeroOrderMatricesCalculator_
 
const
Utils::ElementTypeCollection
elements_
 
const Utils::PositionCollectionpositions_
 
const
DFTBCommon::AtomicParameterContainer & 
atomicPar_
 
const
DFTBCommon::DiatomicParameterContainer & 
diatomicPar_
 
const Utils::DensityMatrixdensityMatrix_
 
const Eigen::MatrixXd & energyWeightedDensityMatrix_
 
std::vector< double > & atomicCharges_
 
const std::vector< double > & coreCharges_
 
const Utils::AtomsOrbitalsIndexesaoIndexes_
 
const Eigen::MatrixXd & overlapMatrix_
 
const bool & unrestrictedCalculationRunning_
 
SDFTB spinDFTB
 
Eigen::MatrixXd HXoverS_
 
Eigen::MatrixXd H0_
 
Eigen::MatrixXd correctionToFock
 
std::vector< std::shared_ptr
< Utils::AdditiveElectronicContribution > > 
densityDependentContributions_
 
std::vector< std::shared_ptr
< Utils::AdditiveElectronicContribution > > 
densityIndependentContributions_
 

Detailed Description

Implementation of FockMatrixCalculator for SCF-type DFTB methods.

Member Function Documentation

void Scine::Sparrow::dftb::ScfFock::addDensityDependentElectronicContribution ( std::shared_ptr< Utils::AdditiveElectronicContribution contribution)
final

This function adds an additive electronic contribution to the Hamiltonian that will be evaluated each SCF iteration.

void Scine::Sparrow::dftb::ScfFock::addDensityIndependentElectronicContribution ( std::shared_ptr< Utils::AdditiveElectronicContribution contribution)
final

This function adds an additive electronic contribution to the Hamiltonian that will be evaluated once per single-point calculation.


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