Go to the documentation of this file.
37 #ifndef BASISINFO_HEADER
38 #define BASISINFO_HEADER
69 #define MAX_NO_OF_CONTR_GAUSSIANS 20
140 int do_normalization,
141 int skip_sort_shells);
150 int do_normalization,
151 int skip_sort_shells);
154 const char* basisset_filename_default,
159 int do_normalization,
160 int skip_sort_shells);
177 void write_to_buffer (
char * dataBuffer,
size_t const bufferSize )
const;
207 ergo_real exponent,
int shellType,
int use_6_d_funcs);
213 #ifdef ERGO_ENABLE_DEPRECATED
217 const char* basisset_filename_default,
219 const char* ghost_molecule_basisset_filename,
224 int do_normalization,
225 int skip_sort_shells,
226 int skip_standard_basis);
227 struct AtomInfoStruct_{
231 typedef struct AtomInfoStruct_ AtomInfoStruct;
236 int do_normalization);
Treal template_blas_pow(Treal x, Treal y)
~SquareFuncIntegrator()
Definition: basisinfo.h:198
int noOfSimplePrimitives
Definition: basisinfo.h:93
Definition: integral_info.h:70
Treal template_blas_sqrt(Treal x)
Provides temporary storage for compute_integral_of_square_of_basis_func.
Definition: basisinfo.h:189
ergo_real coeffList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:72
int functionNumber
Definition: basisinfo.h:92
Code for representing basis set information for Gaussian basis sets, and for parsing a text file spec...
A representation of Vector or point in cartesian space.
Definition: molecule.h:60
static int find_range_index(int atomIndex, int noOfRanges, const basis_set_range_struct *rangeList)
Definition: basisinfo.cc:299
void addBasisfuncsForPoint(ergo_real x, ergo_real y, ergo_real z, int shellType, ergo_real exponent, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells)
Definition: basisinfo.cc:429
int output_basisinfo(const BasisInfoStruct &basisInfo)
Definition: basisinfo.cc:61
Definition of the main floating-point datatype used; the ergo_real type.
int noOfBasisFuncs
Definition: basisinfo.h:120
Constants for the number pi and some related numbers like sqrt(pi).
void write_to_buffer(char *dataBuffer, size_t const bufferSize) const
Function needed for Chunks&Tasks usage.
Definition: basisinfo.cc:897
Definition: basisinfo.h:50
int monomialID
Definition: integral_info.h:66
int shellType
Definition: basisinfo.h:91
int noOfBasisFuncs
Definition: basisinfo.h:80
ergo_real coeffList[MAX_NO_OF_CONTR]
Definition: basisset.h:66
int basisFuncIndex_1
Definition: basisinfo.h:59
int noOfTerms
Definition: integral_info.h:71
Memory allocation/deallocation routines.
ergo_real padding
Definition: basisinfo.h:75
int pairIndex
Definition: basisinfo.h:61
#define LOG_CAT_ERROR
Definition: output.h:47
ergo_real centerCoords[3]
x0, y0, z0
Definition: basisinfo.h:54
double ergo_real
Definition: realtype.h:69
int startAtomIndex
Definition: basisinfo.h:107
Code for Boys function evaluation.
int normalizeShells(const IntegralInfo &integralInfo)
Normalizes shells so that the overlap of each basis function with itself will be 1.
Definition: basisinfo.cc:715
int shellType
Definition: basisinfo.h:78
BasisInfoStruct * permuteShells(const int *shellMap, const IntegralInfo &ii) const
a factory method generating new BasisInfo struct with permuted shells and basis functions.
Definition: basisinfo.cc:683
Definition: basisinfo.h:71
DistributionSpecStruct * list
Definition: basisinfo.h:191
ShellSpecStruct * shellList
Definition: basisinfo.h:119
ergo_real centerCoords[3]
Definition: basisinfo.h:76
#define MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY
Definition: integral_info.h:53
BasisInfoStruct(int use_6_d_funcs_=0)
Initializes all the fields to sane values.
Definition: basisinfo.cc:869
General functionality related to computation of integrals involving Gaussian basis functions.
Definition: basisinfo.h:112
int getNoOfAtoms() const
Definition: molecule.h:114
ergo_real exponentList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:88
Simple atom representation by its charge and cartesian coordinates.
Definition: molecule.h:51
ergo_real exponentList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:73
Definition: basisset.h:75
char monomialInts[4]
Definition: integral_info.h:65
int getSimplePrimitivesAll(const IntegralInfo &integralInfo)
Definition: basisinfo.cc:831
ergo_real computeIntegralOfSquareOfBasisFunc(const IntegralInfo &integralInfo, BasisFuncStruct *basisFunc, int use_6_d_funcs)
Definition: basisinfo.cc:239
Treal template_blas_fabs(Treal x)
size_t get_size() const
Function needed for Chunks&Tasks usage.
Definition: basisinfo.cc:924
int charge
Definition: grid_test.cc:51
int basisFuncIndex_2
Definition: basisinfo.h:60
int startAtomIndex
Definition: basisinfo.h:101
#define MAX_NO_OF_SHELLS_PER_ATOM
Definition: basisset.h:53
Definition: basisset.h:61
monomial_info_struct monomial_info
Definition: integral_info.h:105
Definition: integral_info.h:63
int get_simple_primitives_all(BasisInfoStruct *basisInfo, const IntegralInfo *integralInfo)
int contrCount
Definition: basisset.h:63
char * basisSetFileName
Definition: basisinfo.h:109
#define pi
Definition: pi.h:57
static int setup_shells_multi_basis(const IntegralInfo &integralInfo, const Atom *atomList, int noOfAtoms, const basisset_info *basissetDefault, ShellSpecStruct *shell_list, int noOfShells, int noOfRanges, const basis_set_range_struct *rangeList, int use_6_d_funcs)
Definition: basisinfo.cc:364
int noOfTermsInPolynomial
Definition: basisinfo.h:95
ergo_real exponentList[MAX_NO_OF_CONTR]
Definition: basisset.h:65
static int get_simple_primitives(BasisFuncStruct *currBasisFunc, DistributionSpecStruct *list, int nInput, int nListMax, const IntegralInfo &b, int use_6_d_funcs)
Definition: basisinfo.cc:141
void assign_from_buffer(char const *dataBuffer, size_t const bufferSize)
Function needed for Chunks&Tasks usage.
Definition: basisinfo.cc:932
#define MAX_NO_OF_CONTR_GAUSSIANS
Definition: basisinfo.h:69
int monomial_index_list[MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1][MONOMIAL_N_MAX+1]
Definition: monomial_info.h:62
static int sort_shells(ShellSpecStruct *list, ShellSpecStruct *listTemp, int n)
Definition: basisinfo.cc:183
int shell_ID
Definition: basisset.h:64
static int getNoOfBasisFuncsForAtomType(const basisset_info &basisset, const IntegralInfo &integralInfo, int atomCharge, int use_6_d_funcs)
Definition: basisinfo.cc:655
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
int read_basisset_file(basisset_info &result, const char *fileName, int dirc, const char *dirv[], int print_raw)
Definition: basisset.cc:115
int noOfShells
Definition: basisinfo.h:118
int groupID
Definition: basisinfo.h:62
ergo_real coeffList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:87
Definition: basisinfo.h:58
DistributionSpecStruct * simplePrimitiveList
Definition: basisinfo.h:123
int simplePrimitiveIndex
Definition: basisinfo.h:94
int dummy
Definition: basisinfo.h:82
~BasisInfoStruct()
Definition: basisinfo.cc:963
int addBasisfuncsForMolecule(const Molecule &molecule, const char *basisset_filename_default, int noOfRanges, const BasissetNameRange *rangeList, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells)
Fills in BasisInfoStruct for given molecule and basisset_filename.
Definition: basisinfo.cc:579
int noOfContr
Definition: basisinfo.h:77
basisset_info * basisset
Definition: basisinfo.h:103
#define ERGO_SPREFIX
Definition: config.h:8
int get_product_simple_prims(const DistributionSpecStruct &primA_in, const DistributionSpecStruct &primB_in, DistributionSpecStruct resultList[], int maxCount, ergo_real threshold)
Definition: integrals_general.cc:91
static int setup_shells_multi_basis_getcount(const Atom *atomList, int noOfAtoms, const basisset_info *basissetDefault, int noOfRanges, const basis_set_range_struct *rangeList)
Returns number of shells needed to describe the electronic density for given molecule and basis set.
Definition: basisinfo.cc:340
ergo_real coeff
Definition: integral_info.h:64
int noOfContr
Definition: basisinfo.h:86
int get_basis_funcs()
creates list of 'basis functions', and set startIndexInMatrix for each shell.
Definition: basisinfo.cc:792
Defines IntegralInfo object, providing the coefficients needed for integral evaluation.
Basic OS access utilities.
int get_basis_funcs(BasisInfoStruct *basisInfo, const IntegralInfo *integralInfo, int do_normalization)
#define LOG_CAT_INFO
Definition: output.h:49
Definition: basisinfo.h:85
SquareFuncIntegrator()
Definition: basisinfo.h:193
#define ERGO_DATA_PREFIX
Definition: config.h:5
Code for setting up basis functions starting from shells.
BasisFuncStruct * basisFuncList
Definition: basisinfo.h:121
ergo_real getSafeMaxDistance(const BasisInfoStruct &basisInfo)
Compute safe upper limit for largest possible distance between any two basis functions in given basis...
Definition: basisinfo.cc:974
Vector3D centerCoords
Definition: basisinfo.h:90
int shell_ID
Definition: basisinfo.h:79
int no_of_basis_func_polys
Definition: integral_info.h:104
static const basisset_info * select_basis_set(int atomIndex, int noOfRanges, const basis_set_range_struct *rangeList, const basisset_info *basissetDefault)
Definition: basisinfo.cc:310
#define LOG_AREA_INTEGRALS
Definition: output.h:60
Definition: basisinfo.h:106
int use_6_d_funcs
Whether to use 6 d-type basis functions instead of the usual 5 functions.
Definition: basisinfo.h:113
char monomialInts[4]
nx, ny, nz
Definition: basisinfo.h:55
ergo_real sizeList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:74
ergo_real charge
Definition: molecule.h:52
int startIndexInMatrix
Definition: basisinfo.h:81
ergo_real compute_integral_of_simple_prim(const DistributionSpecStruct &distr)
Definition: integrals_general.cc:318
Class representing a molecule as a set of atoms with assiciated coordinates and charges of the atomic...
ergo_real coeff
Coefficient A.
Definition: basisinfo.h:51
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
int noOfSimplePrimitives
Definition: basisinfo.h:122
ergo_real getSafeMaxDistance(const BasisInfoStruct &basisInfo)
Compute safe upper limit for largest possible distance between any two basis functions in given basis...
Definition: basisinfo.cc:974
ergo_real extent
Definition: basisinfo.h:89
const Atom * getAtomListPtr() const
Definition: molecule.h:112
int type
Definition: basisset.h:62
Functionality for determining an approximate value of the "machine epsilon" – the smallest number tha...
int count
Definition: basisinfo.h:108
const int MAX_NO_OF_PRIMS
Definition: basisinfo.h:190
int output_basisinfo(const BasisInfoStruct &basisInfo)
Definition: basisinfo.cc:61
ergo_real getShellFactor(const IntegralInfo &integralInfo, ergo_real exponent, int shellType, int use_6_d_funcs)
Definition: basisinfo.cc:277
basis_func_poly_struct basis_func_poly_list[MAX_NO_OF_BASIS_FUNC_POLYS]
Definition: integral_info.h:103
DistributionSpecStruct distr
Definition: basisinfo.h:65
ergo_real get_machine_epsilon()
return machine epsilon.
Definition: machine_epsilon.cc:50
ergo_real coords[3]
Definition: molecule.h:53
static void define_basis_func_poly(BasisFuncStruct *basisFunc, int polyIndex, const IntegralInfo &b)
Definition: basisinfo.cc:102
basis_func_term_struct poly[MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY]
Definition: basisinfo.h:96
std::vector< basisset_atom_struct > atoms
Definition: basisset.h:76
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
basis_func_term_struct termList[MAX_NO_OF_TERMS_IN_BASIS_FUNC_POLY]
Definition: integral_info.h:72
static void define_basis_func_poly_special_6dfuncs(BasisFuncStruct *basisFunc, const IntegralInfo &b)
Definition: basisinfo.cc:114
int count
Definition: basisinfo.h:102
ergo_real exponent
exponent alfa
Definition: basisinfo.h:52
ergo_real extent
Definition: basisinfo.h:53
Definition: basisinfo.h:100
ergo_real limitingFactor
Definition: basisinfo.h:63
ergo_real dmatElement
Definition: basisinfo.h:64
Functionality for writing output messages to a text file.
DistributionSpecStruct * productlist
Definition: basisinfo.h:192
void addBasisfuncsForAtomList(const Atom *atomList, int noOfAtoms, const basisset_info &basissetDefault, int noOfRanges, const basis_set_range_struct *rangeList, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells)
Definition: basisinfo.cc:474