File OverlapMatrix.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 OverlapMatrix : public OverlapCalculator
#include <OverlapMatrix.h>

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.

Public Functions

OverlapMatrix(const Utils::ElementTypeCollection &elements, const Utils::PositionCollection &positions, const Utils::AtomsOrbitalsIndexes &aoIndexes, const ElementParameters &elementParameters)

Constructor.

void calculateOverlap(Utils::derivOrder highestRequiredOrder)

Function calculating the overlap between the AO basis functions up to the desired derivative order.

const Utils::MatrixWithDerivatives &getOverlap() const

Getter for the overlap matrix with its derivatives.

void reset()

(Re)-initializes the overlap matrix with its derivatives.

Private Members

Utils::MatrixWithDerivatives S_
const Utils::ElementTypeCollection &elementTypes_
const Utils::PositionCollection &positions_
const Utils::AtomsOrbitalsIndexes &aoIndexes_
const ElementParameters &elementParameters_
AtomPairOverlap<Utils::derivOrder::one> pairOverlapFirstOrder_
AtomPairOverlap<Utils::derivOrder::zero> pairOverlapZeroOrder_
AtomPairOverlap<Utils::derivOrder::two> pairOverlapSecondOrder_
int nAOs_ = 0
int nAtoms_ = 0