File Local2c2eMatrix.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
namespace multipole
template<Utils::derivOrder O>
class Local2c2eMatrix
#include <Local2c2eMatrix.h>

This class creates the local two-center two-electron matrix for an atom pair.

Public Functions

Local2c2eMatrix(int l1, int l2, const ChargeSeparationParameter &D1, const ChargeSeparationParameter &D2, const KlopmanParameter &r1, const KlopmanParameter &r2)
void setSymmetric(bool sym)
void calculate(double R)
void calculateSym(double R)

Calculates the two-center two-electron matrix for two identical elements.

void calculateAsym(double R)

Calculates the two-center two-electron matrix for two different elements.

const Utils::AutomaticDifferentiation::Value1DType<O> &operator()(unsigned int i, unsigned int j) const

Private Functions

void buildSSMatrix(double R)
void buildSPMatrix(double R)
void buildPSMatrix(double R)
void buildPPMatrix(double R)
void buildSDMatrix(double R)
void buildDSMatrix(double R)
void buildPDMatrix(double R)
void buildDPMatrix(double R)
void buildDDMatrix(double R)
void buildPPMatrixSym(double R)
void buildDDMatrixSym(double R)
void buildPSMatrixSym(double R)
void buildDSMatrixSym(double R)
void buildDPMatrixSym(double R)

Private Members

const int l1_
const int l2_
bool sameElement_
const ChargeSeparationParameter &dist1
const ChargeSeparationParameter &dist2
const KlopmanParameter &rho1
const KlopmanParameter &rho2
Local2c2eIntegralCalculator calculator_
Eigen::Matrix<Utils::AutomaticDifferentiation::Value1DType<O>, Eigen::Dynamic, Eigen::Dynamic> mat