8 #ifndef SPARROW_NDDO_FOCKMATRIX_H
9 #define SPARROW_NDDO_FOCKMATRIX_H
21 class AtomsOrbitalsIndexes;
23 class OverlapCalculator;
24 class ElectronicEnergyCalculator;
25 class AdditiveElectronicContribution;
40 void initialize()
override;
41 void calculateDensityIndependentPart(Utils::DerivativeOrder order)
override;
42 void calculateDensityDependentPart(Utils::DerivativeOrder order)
override;
43 void finalize(Utils::DerivativeOrder order)
override;
45 double calculateElectronicEnergy()
const override;
46 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::First>& derivatives)
const override;
47 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::SecondAtomic>& derivatives)
const override;
48 void addDerivatives(Utils::AutomaticDifferentiation::DerivativeContainerType<Utils::Derivative::SecondFull>& derivatives)
const override;
52 const std::vector<std::shared_ptr<Utils::AdditiveElectronicContribution>>& getDensityDependentContributions()
const;
53 const std::vector<std::shared_ptr<Utils::AdditiveElectronicContribution>>& getDensityIndependentContributions()
const;
65 void clearElectronicContributions();
66 void eraseElectronicContribution(std::shared_ptr<Utils::AdditiveElectronicContribution> contribution);
69 template<Utils::Derivative O>
70 void addDerivativesImpl(Utils::AutomaticDifferentiation::DerivativeContainerType<O>& derivatives)
const;
76 const bool& unrestrictedCalculationRunning_;
77 std::unique_ptr<Utils::ElectronicEnergyCalculator> electronicEnergyCalculator_;
78 std::vector<std::shared_ptr<Utils::AdditiveElectronicContribution>> densityDependentContributions_,
79 densityIndependentContributions_;
86 #endif // SPARROW_NDDO_FOCKMATRIX_H
Definition: ElementParameters.h:26
Definition: FockMatrix.h:32
void addDensityDependentElectronicContribution(std::shared_ptr< Utils::AdditiveElectronicContribution > contribution) final
Definition: FockMatrix.cpp:156
This class generates the one-electron matrix H for semi-empirical methods.
Definition: OneElectronMatrix.h:32
Definition: oneCenterIntegralContainer.h:32
Class to generate the two-electron matrix G for semi-empirical methods. This class is parallelized wi...
Definition: TwoElectronMatrix.h:42
void addDensityIndependentElectronicContribution(std::shared_ptr< Utils::AdditiveElectronicContribution > contribution) final
Definition: FockMatrix.cpp:152
This class contains smart pointers to two-center two-electron matrices for different atoms...
Definition: TwoCenterIntegralContainer.h:33