File TwoCenterIntegralContainer.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
nddo -
class
TwoCenterIntegralContainer - #include <TwoCenterIntegralContainer.h>
This class contains smart pointers to two-center two-electron matrices for different atoms.
This class stores for each atom pair a shared pointer to a Global2c2eMatrix, containing the ERIs between the two centers.
Public Types
-
using
integralMatrix_t= std::shared_ptr<multipole::Global2c2eMatrix>¶
-
using
Container= std::vector<std::vector<integralMatrix_t>>¶
Public Functions
-
TwoCenterIntegralContainer(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const ElementParameters &ep) constructor, give a reference to the positions, to the elements and to the element paramters, where the atomic orbital composition is.
- Parameters
elements: vector specifying the elements of the molecule.positions: vector of the position in cartesian coordinates of the nuclei.ep: parameters of the elements. Contain, for istance, the AO composition of each element.
-
void
initialize() Initializes the Global2c2eMatrix for each atom pair.
Their size depend on the element pair in question.
-
void
update(Utils::derivOrder order) Updated the Global2c2eMatrix for each atom pair.
- Parameters
order: specify up to which derivative the integral has to be calculated.
-
void
set(unsigned int a, unsigned int b, integralMatrix_t mat) sets a Global2c2eMatrix to correspond to a certain atom pair.
- Parameters
a: index of the first atom.b: index of the second atom.mat: std::shared_ptr<multipole::Global2c2eMatrix> containing the ERIs corresponding to the atom pair.
-
integralMatrix_t
get(unsigned int a, unsigned int b) const Getter for the ERIs corresponding to an atom pair.
- Return
a std::shared_ptr<Global2c2eMatrix> containing the ERIs corresponding to the atom pair.
- Parameters
a: index of the first atom. Must be smaller than b.b: index of the second atom. Must be bigger than a.
Private Functions
-
void
initializePair(unsigned int i, unsigned int j)¶
-
void
updatePair(unsigned int i, unsigned int j, Utils::derivOrder order)¶
Private Members
-
multipole::Global2c2eTerms
terms_¶
-
const ElementParameters &
elementParameters_¶
-
unsigned int
nAtoms_¶
-
const Utils::ElementTypeCollection &
elementTypes_¶
-
const Utils::PositionCollection &
positions_¶
-
using
-
class
-
namespace
-
namespace