Class IterGB4

Class Documentation

class IterGB4

Iterates over 4 basis functions in order. Used for 2-electron integrals.

Public Functions

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

Increment the shell counters (oprims, ishells) Takes into account 8-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.

Public Members

long shell_type0

shell types

long shell_type1
long shell_type2
long shell_type3
double con_coeff

Contraction coefficient.

double alpha0

Exponents.

double alpha1
double alpha2
double alpha3
const double *r0

current gaussian centers

const double *r1
const double *r2
const double *r3
const double *scales0

normalization constants

const double *scales1
const double *scales2
const double *scales3
long ibasis0

basis function counters

long ibasis1
long ibasis2
long ibasis3
long ishell0

shell counters

long ishell1
long ishell2
long ishell3
long ishell3_max
long nprim0

number of primitives

long nprim1
long nprim2
long nprim3
long iprim0

primitive counters

long iprim1
long iprim2
long iprim3
long oprim0

primitive offsets

long oprim1
long oprim2
long oprim3