Struct ECP

Struct Documentation

struct ECP

Stores the details of an ECP expanded in terms of Gaussians and spherical harmonics.

Unnamed Group

inline GaussianECP &getGaussian(int i)
Parameters

i – - the index of GaussianECP required

Returns

a reference to the ith GaussianECP

inline const GaussianECP &getGaussian(int i) const

Public Functions

ECP()

Constructs an empty ECP (N = 0, L=-1, center_ = {0, 0, 0})

ECP(const double *_center)

Constructs an ECP at the given position

Parameters

_center – - xyz coordinates of the ECP

ECP(const ECP &other)

Copy constructor.

void addPrimitive(const int n, const int l, const double a, const double d, const bool needSort = true)

Adds a new GaussianECP to the ECP

Parameters
  • n – - power of r

  • l – - angular momentum

  • a – - exponent

  • d – - coefficient

  • needSort – - true = the GaussianECPs are sorted (if done once at the end, speeds up evaluation)

inline const double *center() const
Returns

the xyz coordinates of the ECP

void setPos(const double x, const double y, const double z)
void sort()

Sort primitives according to angular momentum.

inline int getN() const
Returns

the number of primitives in ECP

bool noType1() const
Returns

true if the highest angular momentum functions have zero coefficients (e.g. Stuttgart-Dresden ECPs)

double evaluate(const double r, const int l) const

Evaluates the ECP at a given distance for a given angular momentum shell.

Parameters
  • r – - the radius at which to evaluate

  • l – - the angular momentum shell to evaluate over

Returns

the value of the l-th angular momentum shell of the ECP at radius r

inline int getL() const
Returns

the maximum angular momentum in the ECP

Public Members

std::vector<GaussianECP> gaussians

All the primitives in the ECP expansion.

int N

Number of Gaussians.

int L

Maximum angular momentum.

int atom_id

Internal id of the atom the ECP is on.

double min_exp

minimum exponent in the ECP

double min_exp_l[LIBECPINT_MAX_L + 1]

minimum exponent in each l-shell

int l_starts[LIBECPINT_MAX_L + 2]

starting index of each l-shell

std::array<double, 3> center_

xyz coordinates of the atom on which the ECP is located