Class IterGB2

Class Documentation

class IterGB2

A 2-basis function iterator. Used for 1-electron integrals.

Public Functions

IterGB2(GBasis *gbasis)
IterGB2(const IterGB2 &other)
int inc_shell()

Increment the shell counters (oprims, ishells) Takes into account 2-fold symmetry.

void update_shell()

Update fields that depend on primitive counters (centres, shells types, nprim) from the gbasis instance.

int inc_prim()

Increment the primitive counters (iprims)

void update_prim()

Update fields that depend on primitive counters (alphas, contraction coeffs, and scaling factors) from gbasis.

void store(const double *work, double *output)

Write the current shell, stored in work, into the output array.

Only works for dense storage at the moment.

Parameters
  • work: array of pure basis functions for the current shell.
  • output: array storing the entire integral.

double dot(const double *work, const double *dm)

Dot product of the current shell, stored in work, with dm.

Return
the dot product of the current shell with the array dm.
Parameters
  • work: array of pure basis functions for the current shell.
  • dm: array which will be dotted with the current shell.

Public Members

long shell_type0

Shell types.

long shell_type1
double con_coeff

Contraction coefficient.

double alpha0

Exponents.

double alpha1
const double *r0

Current gaussian centers.

const double *r1
const double *scales0

Normalization constants.

const double *scales1
long ibasis0

Basis function counters.

long ibasis1
long ishell0

Shell counters.

long ishell1
long nprim0

Primitive counters.

long nprim1
long iprim0
long iprim1
long oprim0
long oprim1