ergo
basisinfo.cc File Reference

Code for setting up basis functions starting from shells. More...

#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <errno.h>
#include <memory.h>
#include <time.h>
#include <stdarg.h>
#include <string.h>
#include "basisinfo.h"
#include "basisset.h"
#include "memorymanag.h"
#include "pi.h"
#include "output.h"
#include "utilities.h"
#include "boysfunction.h"
#include "integral_info.h"
#include "integrals_general.h"
#include "machine_epsilon.h"

Functions

int output_basisinfo (const BasisInfoStruct &basisInfo)
 
static void define_basis_func_poly (BasisFuncStruct *basisFunc, int polyIndex, const IntegralInfo &b)
 
static void define_basis_func_poly_special_6dfuncs (BasisFuncStruct *basisFunc, const IntegralInfo &b)
 
static int get_simple_primitives (BasisFuncStruct *currBasisFunc, DistributionSpecStruct *list, int nInput, int nListMax, const IntegralInfo &b, int use_6_d_funcs)
 
static int sort_shells (ShellSpecStruct *list, ShellSpecStruct *listTemp, int n)
 
static int find_range_index (int atomIndex, int noOfRanges, const basis_set_range_struct *rangeList)
 
static const basisset_infoselect_basis_set (int atomIndex, int noOfRanges, const basis_set_range_struct *rangeList, const basisset_info *basissetDefault)
 
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. More...
 
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)
 
ergo_real getSafeMaxDistance (const BasisInfoStruct &basisInfo)
 Compute safe upper limit for largest possible distance between any two basis functions in given basis set. More...
 

Detailed Description

Code for setting up basis functions starting from shells.

Author
: Elias Rudberg responsible.

Function Documentation

◆ define_basis_func_poly()

◆ define_basis_func_poly_special_6dfuncs()

◆ find_range_index()

static int find_range_index ( int  atomIndex,
int  noOfRanges,
const basis_set_range_struct rangeList 
)
static

Referenced by select_basis_set().

◆ get_simple_primitives()

◆ getSafeMaxDistance()

ergo_real getSafeMaxDistance ( const BasisInfoStruct basisInfo)

Compute safe upper limit for largest possible distance between any two basis functions in given basis set.

References BasisInfoStruct::basisFuncList, BasisFuncStruct::centerCoords, BasisInfoStruct::noOfBasisFuncs, and template_blas_sqrt().

◆ output_basisinfo()

◆ select_basis_set()

static const basisset_info* select_basis_set ( int  atomIndex,
int  noOfRanges,
const basis_set_range_struct rangeList,
const basisset_info basissetDefault 
)
static

◆ setup_shells_multi_basis()

◆ setup_shells_multi_basis_getcount()

static int setup_shells_multi_basis_getcount ( const Atom atomList,
int  noOfAtoms,
const basisset_info basissetDefault,
int  noOfRanges,
const basis_set_range_struct rangeList 
)
static

Returns number of shells needed to describe the electronic density for given molecule and basis set.

Parameters
atomListlist of atoms
noOfAtomsthe length of atomList
basissetDefaultthe basis set to be used for all atoms but those specified by rangeList.
noOfRangesthe length of rangeList.
rangeListA list of atoms that should get some other, specified basis set.
Returns
the number of basis set shells.

References basisset_info::atoms, charge, do_output(), LOG_AREA_INTEGRALS, LOG_CAT_ERROR, LOG_CAT_INFO, and select_basis_set().

Referenced by BasisInfoStruct::addBasisfuncsForAtomList().

◆ sort_shells()

static int sort_shells ( ShellSpecStruct list,
ShellSpecStruct listTemp,
int  n 
)
static