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
NDDOElectronicEnergyCalculator.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_NDDO_ELECTRONICENERGYCALCULATOR_H
9 #define SPARROW_NDDO_ELECTRONICENERGYCALCULATOR_H
10 
12 #include <memory>
13 #include <vector>
14 
15 namespace Scine {
16 
17 namespace Utils {
18 class DensityMatrix;
19 class AdditiveElectronicContribution;
20 } // namespace Utils
21 
22 namespace Sparrow {
23 
24 namespace nddo {
25 class FockMatrix;
26 class OneElectronMatrix;
27 class TwoElectronMatrix;
28 
30  public:
31  NDDOElectronicEnergyCalculator(const Utils::DensityMatrix& densityMatrix, const FockMatrix& fockCalculator,
32  const bool& unrestrictedCalculationRunning);
33 
34  double calculateElectronicEnergy() override;
35 
36  private:
37  double restrictedEnergy();
38  double unrestrictedEnergy();
39 
40  const Utils::DensityMatrix& densityMatrix_;
41  const OneElectronMatrix& oneElectronMatrix_;
42  const TwoElectronMatrix& twoElectronMatrix_;
43  const bool& unrestrictedCalculationRunning_;
44  const std::vector<std::shared_ptr<Utils::AdditiveElectronicContribution>>& densityIndependentContributions_;
45  const std::vector<std::shared_ptr<Utils::AdditiveElectronicContribution>>& densityDependentContributions_;
46 };
47 
48 } // namespace nddo
49 } // namespace Sparrow
50 } // namespace Scine
51 #endif // SPARROW_NDDO_ELECTRONICENERGYCALCULATOR_H
Definition: FockMatrix.h:32
This class generates the one-electron matrix H for semi-empirical methods.
Definition: OneElectronMatrix.h:32
Class to generate the two-electron matrix G for semi-empirical methods. This class is parallelized wi...
Definition: TwoElectronMatrix.h:42
Definition: NDDOElectronicEnergyCalculator.h:29