Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
OverlapMatrix.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_OVERLAPMATRIX_H
9 #define SPARROW_OVERLAPMATRIX_H
10 
11 #include "AtomPairOverlap.h"
14 #include <Utils/Typenames.h>
15 
16 namespace Scine {
17 
18 namespace Utils {
19 class AtomsOrbitalsIndexes;
20 } // namespace Utils
21 
22 namespace Sparrow {
23 namespace nddo {
24 class ElementParameters;
25 
34  public:
37  const Utils::AtomsOrbitalsIndexes& aoIndexes, const ElementParameters& elementParameters);
39  void calculateOverlap(Utils::DerivativeOrder highestRequiredOrder) override;
41  const Utils::MatrixWithDerivatives& getOverlap() const override;
43  void reset() override;
44 
45  private:
47  const Utils::ElementTypeCollection& elementTypes_;
48  const Utils::PositionCollection& positions_;
49  const Utils::AtomsOrbitalsIndexes& aoIndexes_;
50  const ElementParameters& elementParameters_;
51  AtomPairOverlap<Utils::DerivativeOrder::One> pairOverlapFirstOrder_;
53  AtomPairOverlap<Utils::DerivativeOrder::Two> pairOverlapSecondOrder_;
54  int nAOs_ = 0;
55  int nAtoms_ = 0;
56 };
57 
58 } // namespace nddo
59 
60 } // namespace Sparrow
61 } // namespace Scine
62 #endif // SPARROW_OVERLAPMATRIX_H
void calculateOverlap(Utils::DerivativeOrder highestRequiredOrder) override
Function calculating the overlap between the AO basis functions up to the desired derivative order...
Definition: OverlapMatrix.cpp:32
Definition: ElementParameters.h:26
const Utils::MatrixWithDerivatives & getOverlap() const override
Getter for the overlap matrix with its derivatives.
Definition: OverlapMatrix.cpp:66
This class computes the whole overlap matrix and returns it in lower diagonal form. The basis function overlap, as well as its first and second order derivatives with respect to the nuclear cartesian coordinates is calculated. It inherits from OverlapCalculator in order to make this class compatible with its polymorphic useage.
Definition: OverlapMatrix.h:33
void reset() override
(Re)-initializes the overlap matrix with its derivatives.
Definition: OverlapMatrix.cpp:23
OverlapMatrix(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const Utils::AtomsOrbitalsIndexes &aoIndexes, const ElementParameters &elementParameters)
Constructor.
Definition: OverlapMatrix.cpp:18