ergo
aos.h File Reference

Blocked version of orbtial evaluation routines. More...

#include "realtype.h"
#include "basisinfo.h"

Go to the source code of this file.

Defines

#define DFT_MAX_BLLEN   192
 Limit for the number of grid point batch length.

Functions

void dft_get_orbs (int nvclen, ergo_real *gao, const ergo_real(*coor)[3], int nblcnt, int(*iblcks)[2], int nder, const BasisInfoStruct &bis)
 Computes values of basis functions at specified points in space.

Detailed Description

Blocked version of orbtial evaluation routines.


Define Documentation

#define DFT_MAX_BLLEN   192

Limit for the number of grid point batch length.

Should not be too short because the loop overhead will grow too large, nor too long because we run out of cache then.

Referenced by get_bf_vals(), get_bf_vals_derivs(), dft_get_orbs(), compute_grid_thread_func(), dft_integrate(), dft_lin_respao(), dft_get_xc(), dft_get_uxc(), and XCEvaluatorRestricted::getXC().


Function Documentation

void dft_get_orbs ( int  nvclen,
ergo_real gao,
const ergo_real(*)  coor[3],
int  nblcnt,
int(*)  iblcks[2],
int  nder,
const BasisInfoStruct bis 
)

Computes values of basis functions at specified points in space.

Only b.fs specified by iblcks[nblcnt] are computed.

Parameters:
nvclennumber of points to consider. IT must be smaller than DFT_MAX_BLLEN.
gaomatrix of computed b.f, values. Dimension is in C convention: [nderivatives][nvclen], where nderivatives is 1 for nder==0, 4 for nder==1.
coorpoint coordinates.
nblcntso many continous blocks of basis functions will be computed.
iblcksstart and end indices of the b.fs shells. Computed shells are [iblcks[0], iblcks[1]).
nderwhether orbital derivatives are to be computed as well. Allowed values are 0 (no derivatives) and 1 (values and first order derivatives).
bisstructure describing the basis functions to be evaluated.

References DFT_MAX_BLLEN, get_bf_vals(), get_bf_vals_derivs(), ShellSpecStruct_::centerCoords, and ShellSpecStruct_::startIndexInMatrix.

Referenced by integrate_density_and_energy(), dft_integrate(), and computeFermiContact().