ergo
grid_hicu.h
Go to the documentation of this file.
1 /* Ergo, version 3.8, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2019 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4  * and Anastasia Kruchinina.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Primary academic reference:
20  * Ergo: An open-source program for linear-scaling electronic structure
21  * calculations,
22  * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23  * Kruchinina,
24  * SoftwareX 7, 107 (2018),
25  * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26  *
27  * For further information about Ergo, see <http://www.ergoscf.org>.
28  */
29 
37 #ifndef _GRID_HICU_H_
38 #define _GRID_HICU_H_ 1
39 
40 #include "grid_matrix.h"
41 #include "sparse_matrix.h"
42 
43 int hicu_grid_generate(const char* grid_file_name,
44  const BasisInfoStruct& bis,
45  ergo_real maxError,
46  ergo_real boxSize,
47  ergo_real startBoxSizeDebug,
48  int use_error_per_volume,
49  int do_double_checking,
50  int compare_to_refined,
51  int use_energy_criterion,
52  int use_energy_criterion_only,
53  int do_variation_checking,
54  const Dft::Matrix* dmat,
55  Dft::SparsePattern* pattern,
56  int nThreads,
57  bool generateSparsePatternOnly);
58 
60  ergo_real maxError,
61  ergo_real boxSize,
62  ergo_real startBoxSizeDebug,
63  Dft::SparsePattern& pattern);
64 
65 #endif /* _GRID_HICU_H_ */
coor3DPtr
real coor3DPtr[3]
Definition: grid_hicu.cc:1581
compute_grid_for_box_params_struct::gridGenerationParams
GridGenerationParamsStruct gridGenerationParams
Definition: grid_hicu.cc:198
compute_1d_gaussian_integral
static real compute_1d_gaussian_integral(real a, real b, int n, real alpha)
Definition: grid_hicu.cc:641
BasisFuncStruct::noOfSimplePrimitives
int noOfSimplePrimitives
Definition: basisinfo.h:93
compute_grid_thread_func_struct::bis
const BasisInfoStruct & bis
Definition: grid_hicu.cc:226
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
get_density
static int get_density(const BasisInfoStruct &bis, DistributionSpecStruct *rho, int maxCountRho, real targetRhoError, int nbast, const Dft::Matrix &dmat, BasisFuncStruct *basisFuncList)
Definition: grid_hicu.cc:2488
ShellSpecStruct::coeffList
ergo_real coeffList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:72
DftIntegratorBl_::bas_bl_cnt
int bas_bl_cnt[8]
Definition: integrator.h:58
getSubBox
static void getSubBox(const BoxStruct &startBox, BoxStruct &subBox, int Nx, int Ny, int Nz, int ix, int iy, int iz)
Definition: grid_hicu.cc:1570
FunDensProp_
Definition: functionals.h:375
DftIntegratorBl_::shlblocks
int(* shlblocks)[2]
Definition: integrator.h:59
GridGenerationParamsStruct::maxerrorPerBox
real maxerrorPerBox
Definition: grid_hicu.cc:169
sparse_matrix.h
compute_grid_for_box_params_struct
Definition: grid_hicu.cc:190
global_main_hicu_mutex
pthread_mutex_t global_main_hicu_mutex
Definition: grid_hicu.cc:114
grid_hicu.h
Hierarchical Cubature (HiCu) grid generation.
BasisInfoStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:120
pi.h
Constants for the number pi and some related numbers like sqrt(pi).
solid_harmonic_p_0
#define solid_harmonic_p_0(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:265
solid_harmonic_s_0
#define solid_harmonic_s_0(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:261
CUBATURE_RULE_2
static const int CUBATURE_RULE_2
Definition: grid_hicu.cc:73
dft_common.h
Common DFT routines. Mostly functional mixing.
solid_harmonic_d_1
#define solid_harmonic_d_1(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:269
DistributionSpecStruct
Definition: basisinfo.h:50
DensitySpecStruct::basisFuncList
BasisFuncStruct * basisFuncList
Definition: grid_hicu.cc:153
GridGenerationParamsStruct::useEnergyCriterion
bool useEnergyCriterion
Definition: grid_hicu.cc:173
DISTR_PRODUCT_THRESHOLD
const real DISTR_PRODUCT_THRESHOLD
Definition: grid_hicu.cc:77
compute_grid_thread_func_struct::resultCode
int resultCode
Definition: grid_hicu.cc:245
ShellSpecStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:80
compute_grid_thread_func_struct::noOfPoints
int noOfPoints
Definition: grid_hicu.cc:241
ComputeGridResultValuesStruct::totalIntegralResultNumerical
real totalIntegralResultNumerical
Definition: grid_hicu.cc:209
DISTR_COEFF_CUTOFF_VALUE
const real DISTR_COEFF_CUTOFF_VALUE
Definition: grid_hicu.cc:83
ShellSpecStructWithExtent::extent
real extent
Definition: grid_hicu.cc:143
MAX_NO_OF_TEST_POINTS
#define MAX_NO_OF_TEST_POINTS
GridGenerationParamsStruct
Definition: grid_hicu.cc:168
get_rhotree_indexes_for_box
static int get_rhotree_indexes_for_box(int *resultList, int resultListMaxCount, const rhoTreeNode *node, const BoxStruct *inputBoxPtr)
Definition: grid_hicu.cc:694
UNIT_one_Angstrom
#define UNIT_one_Angstrom
Definition: units.h:43
compute_grid_thread_func_struct::rhoTreeRootNodeShells
rhoTreeNode * rhoTreeRootNodeShells
Definition: grid_hicu.cc:229
LOG_CAT_ERROR
#define LOG_CAT_ERROR
Definition: output.h:47
DftIntegratorBl_::grad
real(* grad)[3]
Definition: integrator.h:82
compute_integral_over_box
static real compute_integral_over_box(DistributionSpecStruct *distr, BoxStruct *box)
Definition: grid_hicu.cc:676
DFT_MAX_BLLEN
#define DFT_MAX_BLLEN
Limit for the number of grid point batch length.
Definition: aos.h:41
GridGenerationParamsStruct::compareToRefined
bool compareToRefined
Definition: grid_hicu.cc:172
DistributionSpecStruct::centerCoords
ergo_real centerCoords[3]
x0, y0, z0
Definition: basisinfo.h:54
grid_file_name
static char * grid_file_name
Definition: grid_reader.cc:127
MAX_NO_OF_POINTS_PER_BATCH
#define MAX_NO_OF_POINTS_PER_BATCH
Definition: grid_hicu.cc:123
rhoTreeNode_::distrIndex
int distrIndex
Definition: grid_hicu.cc:164
GridGenerationParamsStruct::useErrorPerVolume
bool useErrorPerVolume
Definition: grid_hicu.cc:175
compute_grid_thread_func_struct::generateSparsePatternOnly
bool generateSparsePatternOnly
Definition: grid_hicu.cc:246
ergo_real
double ergo_real
Definition: realtype.h:69
ComputeGridResultValuesStruct::ComputeGridResultValuesStruct
ComputeGridResultValuesStruct()
Definition: grid_hicu.cc:214
cubature_rules.h
Code for various cubature rules that can be used for numerical integration.
BoxStruct_::max
real max[NO_OF_DIMENSIONS]
Definition: cubature_rules.h:49
to_power
static real to_power(real x, int n)
Definition: grid_hicu.cc:600
ShellSpecStruct::shellType
int shellType
Definition: basisinfo.h:78
compute_grid_thread_func_struct::Nz
int Nz
Definition: grid_hicu.cc:235
compute_grid_thread_func_struct::maxNoOfRelevantDistrsPerBox
int maxNoOfRelevantDistrsPerBox
Definition: grid_hicu.cc:236
DftIntegratorBl_::dogga
int dogga
Definition: integrator.h:91
FunDensProp_::rhoa
real rhoa
Definition: functionals.h:376
template_blas_exp
Treal template_blas_exp(Treal x)
rhoTreeNode
struct rhoTreeNode_ rhoTreeNode
Definition: grid_hicu.cc:166
ShellSpecStruct
Definition: basisinfo.h:71
compute_grid_for_box_params_struct::listShlblocks_otherformat
int(* listShlblocks_otherformat)[2]
Definition: grid_hicu.cc:200
TARGET_RHO_ERROR_FACTOR
const real TARGET_RHO_ERROR_FACTOR
Definition: grid_hicu.cc:86
CUBATURE_RULE
static const int CUBATURE_RULE
Definition: grid_hicu.cc:72
box_system.h
BoxSystem class representing a hierarchical data structure of boxes in 3D space (an oct-tree).
BasisInfoStruct::shellList
ShellSpecStruct * shellList
Definition: basisinfo.h:119
Dft::Matrix::isSparse
virtual bool isSparse() const =0
ShellSpecStruct::centerCoords
ergo_real centerCoords[3]
Definition: basisinfo.h:76
do_merge_sort_distrs
static int do_merge_sort_distrs(int n, DistributionSpecStruct *list, DistributionSpecStruct *workList)
Definition: grid_hicu.cc:2256
compute_grid_thread_func_struct::gridFile
FILE * gridFile
Definition: grid_hicu.cc:231
BoxStruct_
Definition: cubature_rules.h:47
compute_grid_for_box_params_struct::dmagao
real * dmagao
Definition: grid_hicu.cc:202
NO_OF_DIMENSIONS
const int NO_OF_DIMENSIONS
Definition: cubature_rules.h:45
compute_grid_thread_func_struct::currJobNumber
int * currJobNumber
Definition: grid_hicu.cc:240
grid_generate_sparse_pattern
void grid_generate_sparse_pattern(const BasisInfoStruct &bis, ergo_real maxError, ergo_real boxSize, ergo_real startBoxSizeDebug, Dft::SparsePattern &pattern)
Definition: grid_hicu.cc:2814
integrals_general.h
General functionality related to computation of integrals involving Gaussian basis functions.
ComputeGridResultValuesStruct::totalIntegralResultAnalytical
real totalIntegralResultAnalytical
Definition: grid_hicu.cc:210
Functional_::func
EnergyFunc func
Definition: functionals.h:409
BasisInfoStruct
Definition: basisinfo.h:112
round_real
static int round_real(real x)
Definition: grid_hicu.cc:1554
solid_harmonic_d_3
#define solid_harmonic_d_3(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:271
real
ergo_real real
Definition: test.cc:46
DensitySpecStruct::distrList
DistributionSpecStruct * distrList
Definition: grid_hicu.cc:155
get_product_simple_primitives
int get_product_simple_primitives(const BasisInfoStruct &basisInfoA, int iA, const BasisInfoStruct &basisInfoB, int iB, DistributionSpecStruct resultList[], int maxCount, ergo_real threshold)
Definition: integrals_general.cc:268
ShellSpecStruct::exponentList
ergo_real exponentList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:73
solid_harmonic_p_1
#define solid_harmonic_p_1(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:266
compute_grid_thread_func_struct
Definition: grid_hicu.cc:225
template_blas_fabs
Treal template_blas_fabs(Treal x)
compute_grid_thread_func_struct::counterArrForPlot
tripleVectorOfInt * counterArrForPlot
Definition: grid_hicu.cc:248
DensitySpecStruct::nbast
int nbast
Definition: grid_hicu.cc:151
FILE_BATCH_N
#define FILE_BATCH_N
Definition: grid_hicu.cc:122
MAX_NO_OF_SHLBLOCKS
#define MAX_NO_OF_SHLBLOCKS
Definition: grid_hicu.cc:124
solid_harmonic_f_5
#define solid_harmonic_f_5(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:279
dft_integrator_bl_new
DftIntegratorBl * dft_integrator_bl_new(Functional *f, int ndmat, int bllen, int needlondon, const BasisInfoStruct &bis)
Definition: integrator.cc:109
integrate_density_and_energy
static void integrate_density_and_energy(const BasisInfoStruct &bis, DensitySpecStruct *density, DftIntegratorBl *integrator, real &electrons, real &energy, int noOfGridPoints, real(*coor)[3], real *weight, real *dmagao)
Definition: grid_hicu.cc:802
dft_get_orbs
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.
Definition: aos.cc:193
DftIntegratorBl_
Definition: integrator.h:49
DftIntegratorBl_::curr_point
int curr_point
Definition: integrator.h:89
GridGenerationParamsStruct::targetRhoError
real targetRhoError
Definition: grid_hicu.cc:170
DftIntegratorBl_::weight
real * weight
Definition: integrator.h:52
compute_grid_for_box_params_struct::noOfNonzeroBasisFuncs
int noOfNonzeroBasisFuncs
Definition: grid_hicu.cc:193
MAX_NO_OF_POINTS_PER_WRITE
#define MAX_NO_OF_POINTS_PER_WRITE
Definition: grid_hicu.cc:128
DftIntegratorBl_::g
union DftIntegratorBl_::@1 g
rhoTreeNode_
Definition: grid_hicu.cc:160
pi
#define pi
Definition: pi.h:57
compute_grid_for_box_params_struct::density
DensitySpecStruct density
Definition: grid_hicu.cc:192
solid_harmonic_f_1
#define solid_harmonic_f_1(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:275
DftIntegratorBl_::ntypso
int ntypso
Definition: integrator.h:63
compute_grid_for_box
static int compute_grid_for_box(compute_grid_for_box_params_struct *params, int maxlen, real(*coor)[3], real *weight, BoxStruct *box, real analyticalIntegralValue, real *workList, ComputeGridResultValuesStruct &resultValues, bool resolutionIsOk)
Definition: grid_hicu.cc:872
GridGenerationParamsStruct::GridGenerationParamsStruct
GridGenerationParamsStruct()
Definition: grid_hicu.cc:177
FunDensProp_::rhob
real rhob
Definition: functionals.h:376
HICU_GRID_PLOT_RESOLUTION
const int HICU_GRID_PLOT_RESOLUTION
Definition: grid_hicu.cc:134
DftIntegratorBl_::r
union DftIntegratorBl_::@0 r
compute_grid_for_box_params_struct::nonZeroBasisFuncIndexList
int * nonZeroBasisFuncIndexList
Definition: grid_hicu.cc:194
free_rho_tree_memory
static void free_rho_tree_memory(rhoTreeNode *rootNode)
Definition: grid_hicu.cc:1540
solid_harmonic_f_4
#define solid_harmonic_f_4(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:278
ComputeGridResultValuesStruct::estimatedIntegralErrorDensity
real estimatedIntegralErrorDensity
Definition: grid_hicu.cc:213
BuildRhoTree
static rhoTreeNode * BuildRhoTree(int noOfDistributions, DistributionSpecStruct *rho_alt_1, ShellSpecStructWithExtent *rho_alt_2, real targetRhoError)
Definition: grid_hicu.cc:1496
compute_grid_thread_func_struct::Nx
int Nx
Definition: grid_hicu.cc:233
DensitySpecStruct::dmat
const Dft::Matrix * dmat
Definition: grid_hicu.cc:152
callbackGga
static void callbackGga(DftIntegratorBl *grid, int bllen, real &energy)
Definition: grid_hicu.cc:771
COORD_DIFF_FOR_SAMEPOINT_CRITERION
const real COORD_DIFF_FOR_SAMEPOINT_CRITERION
Definition: grid_hicu.cc:76
compute_grid_thread_func_struct::gridGenerationParams
GridGenerationParamsStruct gridGenerationParams
Definition: grid_hicu.cc:230
rhoTreeNode_::child2
struct rhoTreeNode_ * child2
Definition: grid_hicu.cc:163
DISTR_CENTER_DIST_LIMIT
#define DISTR_CENTER_DIST_LIMIT
Definition: grid_hicu.cc:126
grid_generate_sparse_pattern
void grid_generate_sparse_pattern(const BasisInfoStruct &bis, ergo_real maxError, ergo_real boxSize, ergo_real startBoxSizeDebug, Dft::SparsePattern &sparsePattern)
Definition: grid_hicu.cc:2814
BasisInfoStruct::noOfShells
int noOfShells
Definition: basisinfo.h:118
DftIntegratorBl_::rad
struct DftIntegratorBl_::@1::@3 rad
compute_grid_thread_func_struct::startBox
BoxStruct * startBox
Definition: grid_hicu.cc:232
GridGenerationParamsStruct::useEnergyCriterionOnly
bool useEnergyCriterionOnly
Definition: grid_hicu.cc:174
Dft::Matrix::at
virtual ergo_real at(int row, int col) const =0
compute_integral_from_points
static real compute_integral_from_points(const BasisInfoStruct &bis, DensitySpecStruct *density, int noOfNonzeroShells, int *nonZeroShellsIndexList, int noOfNonzeroBasFuncs, int *nonZeroBasFuncsIndexList, const real *localFullDensityMatrix, int nPoints, real(*coor)[3], real *weight, real *workList, real &minValue, real &maxValue, real &maxAbsValue)
Definition: grid_hicu.cc:501
compute_grid_for_box_params_struct::dftIntegrator
DftIntegratorBl * dftIntegrator
Definition: grid_hicu.cc:201
Functional_::is_gga
IsGGAFunc is_gga
Definition: functionals.h:403
BasisInfoStruct::simplePrimitiveList
DistributionSpecStruct * simplePrimitiveList
Definition: basisinfo.h:123
solid_harmonic_f_2
#define solid_harmonic_f_2(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:276
BasisFuncStruct::simplePrimitiveIndex
int simplePrimitiveIndex
Definition: basisinfo.h:94
ShellSpecStruct::noOfContr
int noOfContr
Definition: basisinfo.h:77
compute_grid_thread_func_struct::resultValues
ComputeGridResultValuesStruct resultValues
Definition: grid_hicu.cc:243
compute_grid_thread_func_struct::fileMutex
pthread_mutex_t * fileMutex
Definition: grid_hicu.cc:237
print_box
static void print_box(BoxStruct *box)
Definition: grid_hicu.cc:286
Util::TimeMeter::print
void print(int area, const char *routine)
Definition: utilities.h:111
Dft::Matrix::asSparse
virtual const SparseMatrix * asSparse() const =0
EXPONENT_DIFF_LIMIT
#define EXPONENT_DIFF_LIMIT
Definition: grid_hicu.cc:125
BuildRhoTreeBranch
static rhoTreeNode * BuildRhoTreeBranch(int noOfDistributionsTot, DistributionSpecStruct *rho_alt_1, ShellSpecStructWithExtent *rho_alt_2, int distrIndexListN, int *distrIndexList, real targetRhoError)
Definition: grid_hicu.cc:1308
DensitySpecStruct
Definition: grid_hicu.cc:148
compute_grid
static int compute_grid(const BasisInfoStruct &bis, DensitySpecStruct *density, const GridGenerationParamsStruct &gridGenerationParams, real boxdist, real startBoxSizeDebug, const char *gridFileName, int noOfThreads, bool generateSparsePatternOnly, Dft::SparsePattern *sparsePattern)
Definition: grid_hicu.cc:1936
solid_harmonic_d_2
#define solid_harmonic_d_2(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:270
utilities.h
Basic OS access utilities.
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
template_blas_log
Treal template_blas_log(Treal x)
BasisFuncStruct
Definition: basisinfo.h:85
compute_grid_for_box_params_struct::nonZeroShellsIndexList
int * nonZeroShellsIndexList
Definition: grid_hicu.cc:196
compute_value_at_point
static real compute_value_at_point(DensitySpecStruct *density, int noOfNonzeroShells, int *nonZeroShellsIndexList, int noOfNonzeroBasFuncs, int *nonZeroBasFuncsIndexList, const real *localFullDensityMatrix, real(*coor)[3], real *workList)
Definition: grid_hicu.cc:374
compute_grid_for_box_params_struct::localFullDensityMatrix
std::vector< real > localFullDensityMatrix
Definition: grid_hicu.cc:197
dft_integrator_bl_free
void dft_integrator_bl_free(DftIntegratorBl *res)
Definition: integrator.cc:151
compute_grid_for_box_params_struct::compute_grid_for_box_params_struct
compute_grid_for_box_params_struct(const BasisInfoStruct &bis_)
Definition: grid_hicu.cc:203
compute_grid_thread_func_struct::compute_grid_thread_func_struct
compute_grid_thread_func_struct(const BasisInfoStruct &bis_)
Definition: grid_hicu.cc:249
Dft::Matrix::asFull
virtual const ergo_real * asFull() const =0
basisinfo.h
Code for setting up basis functions starting from shells.
solid_harmonic_f_6
#define solid_harmonic_f_6(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:280
BasisInfoStruct::basisFuncList
BasisFuncStruct * basisFuncList
Definition: basisinfo.h:121
compute_grid_thread_func_struct::Ny
int Ny
Definition: grid_hicu.cc:234
BasisFuncStruct::centerCoords
Vector3D centerCoords
Definition: basisinfo.h:90
selected_func
Functional * selected_func
Definition: functionals.c:106
compute_grid_for_box_params_struct::nShlblocks
int nShlblocks
Definition: grid_hicu.cc:199
hicu_grid_generate
int hicu_grid_generate(const char *grid_file_name, const BasisInfoStruct &bis, ergo_real maxError, ergo_real boxSize, ergo_real startBoxSizeDebug, int use_error_per_volume, int do_double_checking, int compare_to_refined, int use_energy_criterion, int use_energy_criterion_only, int do_variation_checking, const Dft::Matrix *dmat, Dft::SparsePattern *pattern, int nThreads, bool generateSparsePatternOnly)
Definition: grid_hicu.cc:2687
compute_grid_thread_func_struct::rhoTreeRootNode
rhoTreeNode * rhoTreeRootNode
Definition: grid_hicu.cc:228
compute_grid_thread_func_struct::density
DensitySpecStruct * density
Definition: grid_hicu.cc:227
DftIntegratorBl_::rho
real * rho
Definition: integrator.h:76
get_shell_list_with_extents
static void get_shell_list_with_extents(const BasisInfoStruct &bis, int maxCountShellList, ShellSpecStructWithExtent *shellList, real targetRhoError)
Definition: grid_hicu.cc:2473
units.h
Constants for conversion between units for some common units like Angstrom, electron-volt (eV),...
rhoTreeNode_::box
BoxStruct box
Definition: grid_hicu.cc:161
get_max_basis_func_abs_value
ergo_real get_max_basis_func_abs_value(const BasisInfoStruct &basisInfo)
Computes an estimate for the largest absolute value that any basis function takes.
Definition: integrals_general.cc:378
compute_grid_thread_func
static void * compute_grid_thread_func(void *arg)
Definition: grid_hicu.cc:1584
DistributionSpecStruct::monomialInts
char monomialInts[4]
nx, ny, nz
Definition: basisinfo.h:55
output_current_memory_usage
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
ShellSpecStruct::startIndexInMatrix
int startIndexInMatrix
Definition: basisinfo.h:81
DftIntegratorBl_::atv
real * atv
Definition: integrator.h:53
solid_harmonic_d_4
#define solid_harmonic_d_4(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:272
FunDensProp_::gradab
real gradab
Definition: functionals.h:378
DistributionSpecStruct::coeff
ergo_real coeff
Coefficient A.
Definition: basisinfo.h:51
solid_harmonic_f_3
#define solid_harmonic_f_3(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:277
hicuErf
Treal hicuErf(Treal a)
Definition: grid_hicu.cc:570
N_BATCH_JOBS
#define N_BATCH_JOBS
Definition: grid_hicu.cc:127
DftIntegratorBl_::basblocks
int(* basblocks)[2]
Definition: integrator.h:60
BoxStruct_::min
real min[NO_OF_DIMENSIONS]
Definition: cubature_rules.h:48
integrator.h
BoxSystem
Definition: box_system.h:71
MAX_DEPTH
#define MAX_DEPTH
get_product_distrs
static int get_product_distrs(const BasisInfoStruct &bis, const Dft::Matrix &dmat, real targetRhoError, DistributionSpecStruct *rho, int maxCount)
Definition: grid_hicu.cc:2383
FunDensProp_::grada
real grada
Definition: functionals.h:377
BoxSystem::get_items_near_point
int get_items_near_point(const box_item_struct *itemList, const ergo_real *coords, ergo_real distance, int *resultOrgIndexList) const
Goes through existning box system to find all items within specified distance from given reference po...
Definition: box_system.cc:430
rho-mat.h
get_basis_func_extent_list
int get_basis_func_extent_list(const BasisInfoStruct &basisInfo, ergo_real *basisFuncExtentList, ergo_real maxAbsValue)
Computes an "extent" for each basis function in the basis set.
Definition: integrals_general.cc:402
DensitySpecStruct::shellList
ShellSpecStructWithExtent * shellList
Definition: grid_hicu.cc:150
tripleVectorOfInt
std::vector< std::vector< std::vector< int > > > tripleVectorOfInt
Definition: grid_hicu.cc:206
compute_grid_thread_func_struct::noOfWrittenBatches
int noOfWrittenBatches
Definition: grid_hicu.cc:242
DensitySpecStruct::noOfDistributions
int noOfDistributions
Definition: grid_hicu.cc:154
RELATIVE_DENSITY_VARIATION_LIMIT
const real RELATIVE_DENSITY_VARIATION_LIMIT
Definition: grid_hicu.cc:78
ComputeGridResultValuesStruct::totalIntegralResultEnergy
real totalIntegralResultEnergy
Definition: grid_hicu.cc:211
solid_harmonic_f_0
#define solid_harmonic_f_0(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:274
get_shell_box
static void get_shell_box(BoxStruct *box, ShellSpecStructWithExtent *shell)
Definition: grid_hicu.cc:315
hicu_grid_generate
int hicu_grid_generate(const char *grid_file_name, const BasisInfoStruct &bis, ergo_real maxError, ergo_real boxSize, ergo_real startBoxSizeDebug, int use_error_per_volume, int do_double_checking, int compare_to_refined, int use_energy_criterion, int use_energy_criterion_only, int do_variation_checking, const Dft::Matrix *dmat, Dft::SparsePattern *sparsePattern, int nThreads, bool generateSparsePatternOnly)
Definition: grid_hicu.cc:2687
compute_extent_for_shells
static int compute_extent_for_shells(ShellSpecStructWithExtent *shellList, const BasisInfoStruct &bis, real targetRhoError)
Definition: grid_hicu.cc:2360
do_output
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
grid_matrix.h
Generic matrix interface. It is not optimized for speed.
FunDensProp_::gradb
real gradb
Definition: functionals.h:377
ComputeGridResultValuesStruct::estimatedIntegralErrorEnergy
real estimatedIntegralErrorEnergy
Definition: grid_hicu.cc:212
ShellSpecStructWithExtent
Definition: grid_hicu.cc:141
GridGenerationParamsStruct::doDoubleChecking
bool doDoubleChecking
Definition: grid_hicu.cc:171
GridGenerationParamsStruct::doVariationChecking
bool doVariationChecking
Definition: grid_hicu.cc:176
compute_1d_gaussian_integral_recursive
static real compute_1d_gaussian_integral_recursive(real a, real b, int n, real alpha)
Definition: grid_hicu.cc:609
rhoTreeNode_::child1
struct rhoTreeNode_ * child1
Definition: grid_hicu.cc:162
compute_grid_thread_func_struct::sparsePattern
Dft::SparsePattern * sparsePattern
Definition: grid_hicu.cc:247
compute_grid_thread_func_struct::thread
pthread_t thread
Definition: grid_hicu.cc:239
compute_grid_thread_func_struct::jobMutex
pthread_mutex_t * jobMutex
Definition: grid_hicu.cc:238
callbackLda
static void callbackLda(DftIntegratorBl *grid, int bllen, real &energy)
Definition: grid_hicu.cc:790
ShellSpecStructWithExtent::s
ShellSpecStruct s
Definition: grid_hicu.cc:142
Dft::Matrix
Definition: grid_matrix.h:44
DistributionSpecStruct::exponent
ergo_real exponent
exponent alfa
Definition: basisinfo.h:52
DistributionSpecStruct::extent
ergo_real extent
Definition: basisinfo.h:53
aos.h
compute_grid_thread_func_struct::threadNo
int threadNo
Definition: grid_hicu.cc:244
LOG_AREA_DFT
#define LOG_AREA_DFT
Definition: output.h:62
DensitySpecStruct::noOfShells
int noOfShells
Definition: grid_hicu.cc:149
solid_harmonic_p_2
#define solid_harmonic_p_2(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:264
ComputeGridResultValuesStruct
Definition: grid_hicu.cc:208
DftIntegratorBl_::coor
real(* coor)[3]
Definition: integrator.h:51
Util::TimeMeter
Time-measuring class.
Definition: utilities.h:80
functionals.h
compute_grid_for_box_params_struct::noOfNonzeroShells
int noOfNonzeroShells
Definition: grid_hicu.cc:195
DftIntegratorBl_::shl_bl_cnt
int shl_bl_cnt
Definition: integrator.h:58
compute_grid_for_box_params_struct::bis
const BasisInfoStruct & bis
Definition: grid_hicu.cc:191
getrho_blocked_gga
void getrho_blocked_gga(int nbast, const real *dmat, const real *restrict gao, const int *nblocks, const int(*iblocks)[2], int ldaib, real *tmp, int nvclen, real *rho, real(*grad)[3])
Computes the expectation value <o|dmat|o'> and its derivatives for a symmetric matrix and given set o...
Definition: rho-mat.cc:187
getrho_blocked_lda
void getrho_blocked_lda(int nbast, const real *dmat, const real *restrict gao, const int *nblocks, const int(*iblocks)[2], int ldaib, real *tmp, int nvclen, real *rho)
Computes the expectation value <o|dmat|o'> for a symmetric matrix and given set of precomputed orbita...
Definition: rho-mat.cc:94
use_cubature_rule
int use_cubature_rule(int maxlen, real(*coor)[3], real *weight, BoxStruct *box, int ruleNumber)
Definition: cubature_rules.cc:44
BoxSystem::create_box_system
int create_box_system(box_item_struct *itemList, int noOfItems, ergo_real toplevelBoxSize)
Creates the box system.
Definition: box_system.cc:74
get_distribution_box
static void get_distribution_box(BoxStruct *box, DistributionSpecStruct *distr, real targetRhoError)
Definition: grid_hicu.cc:296
solid_harmonic_d_0
#define solid_harmonic_d_0(x, y, z, x2, y2, z2, r2)
Definition: grid_hicu.cc:268
ergoShellsToOrbs
void ergoShellsToOrbs(const int *nshlbl, const int(*shlblock)[2], int *norbbl, int(*orbblock)[2], const BasisInfoStruct &bis)
transform shell block indices to orbital block indices.
Definition: dft_common.cc:708