File ScfFock.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
namespace dftb
class ScfFock : public ElectronicContributionCalculator
#include <ScfFock.h>

Implementation of FockMatrixCalculator for SCF-type DFTB methods.

Subclassed by Scine::Sparrow::dftb::SecondOrderFock, Scine::Sparrow::dftb::ThirdOrderFock

Public 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()
void calculateDensityDependentPart(Utils::derivOrder order)
void calculateDensityIndependentPart(Utils::derivOrder order)
Utils::SpinAdaptedMatrix getMatrix() const
void finalize(Utils::derivOrder order)

Protected Functions

int getNumberAtoms() const
void populationAnalysis()

Protected Attributes

ZeroOrderMatricesCalculator &zeroOrderMatricesCalculator_
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_
SDFTB spinDFTB
Eigen::MatrixXd HXoverS_
Eigen::MatrixXd H0_
Eigen::MatrixXd correctionToFock

Private Functions

virtual void completeH() = 0
virtual void constructG(Utils::derivOrder order) = 0