Go to the documentation of this file.
37 #ifndef _DFT_COMMON_H_
38 #define _DFT_COMMON_H_
44 #define EXTERN_C extern "C"
102 virtual void getAtom(
int icent,
int *cnt,
real (*coor)[3],
103 int *
charge,
int *mult)
const;
107 int *nblcnt,
int (*iblcks)[2])
const;
110 int *nblcnt,
int (*iblcks)[2])
const;
111 virtual void getExps(
int *maxl,
int **nucbas,
real (**aa)[2])
const;
116 int *norbbl,
int (*orbblock)[2],
125 #define dal_new(sz,tp) (tp*)dal_malloc_((sz)*sizeof(tp),__FUNCTION__, __LINE__)
128 #define dal_malloc(sz) dal_malloc_((sz),__FUNCTION__, __LINE__)
154 printf(
"B:(%8.2f %8.2f %8.2f)-(%8.2f %8.2f %8.2f): %8.2f %8.2f %8.2f ",
158 for(
int i=0; i<3; i++)
159 if(p[i]<
lo[i] || p[i] >=
hi[i]) {
171 template<
typename Iterator>
176 throw "BoundingBox called for empty set";
178 real r = start->radius() + OFF;
179 for(
int i=0; i<3; i++) {
180 box.
lo[i] = start->center[i]-r;
181 box.
hi[i] = start->center[i]+r;
184 for(++start; start != end; ++start) {
185 real r = start->radius() + OFF;
186 for(
int i=0; i<3; i++) {
187 real l = start->center[i]-r;
if (l<box.
lo[i]) box.
lo[i] = l;
188 real h = start->center[i]+r;
if (h>box.
hi[i]) box.
hi[i] = h;
real df20011
Definition: functionals.h:301
real df20001
Definition: functionals.h:186
real df0301
Definition: functionals.h:325
Treal template_blas_sqrt(Treal x)
real fZZ
Definition: dft_common.h:75
ergo_real coeffList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:72
real size(int dim) const
Definition: dft_common.h:141
real df01102
Definition: functionals.h:338
Definition: dft_common.h:70
real df0011
Definition: functionals.h:146
Definition: functionals.h:375
bool contains(const real *p) const
Determines whether given point is inside the box.
Definition: dft_common.h:152
A representation of Vector or point in cartesian space.
Definition: molecule.h:60
void dftlistfuncs_(void)
Definition: functionals.c:173
real fZ
Definition: dft_common.h:62
Definition of the main floating-point datatype used; the ergo_real type.
real df11001
Definition: functionals.h:190
virtual void setShellRadii(real *shellRadii) const
Definition: dft_common.cc:317
real df1003
Definition: functionals.h:319
real df0020
Definition: functionals.h:175
Common DFT routines. Mostly functional mixing.
real df02002
Definition: functionals.h:332
int ZEROI
Definition: dft_common.cc:64
static int dft_thread_count
Definition: dft_common.cc:201
real df00003
Definition: functionals.h:284
real df1101
Definition: functionals.h:257
real df0112
Definition: functionals.h:336
virtual ~ErgoMolInfo()
Definition: dft_common.cc:583
int noOfBasisFuncs
Definition: basisinfo.h:80
real df0011
Definition: functionals.h:242
EXTERN_C 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
real FOURR
Definition: dft_common.h:132
real df02001
Definition: functionals.h:268
real df0130
Definition: functionals.h:333
real df10001
Definition: functionals.h:170
real df02101
Definition: functionals.h:329
real fG
Definition: dft_common.h:81
real df00202
Definition: functionals.h:348
void(* fun_set_hf_weight)(real w)
Definition: functionals.c:108
real df1011
Definition: functionals.h:192
real df20001
Definition: functionals.h:254
ergo_real rad
Definition: dft_common.cc:421
real df01011
Definition: functionals.h:273
Definition: functionals.h:130
real df1000
Definition: functionals.h:131
real df1001
Definition: functionals.h:169
real df11001
Definition: functionals.h:258
double ergo_real
Definition: realtype.h:69
real df00013
Definition: functionals.h:356
Ergo specific implementation of molecule-grid interface.
Definition: dft_common.h:95
FirstOrderFun first
Definition: functionals.h:410
real fRG
Definition: dft_common.h:78
int shellType
Definition: basisinfo.h:78
real df00021
Definition: functionals.h:282
real df03001
Definition: functionals.h:326
real df2010
Definition: functionals.h:184
real getDistanceTo(const real *v) const
Returns the shortest distance of the border of the box to the specified point in space.
Definition: dft_common.cc:90
real TWOR
Definition: dft_common.cc:65
real rhoa
Definition: functionals.h:376
@ FUN_CONF_ERROR
Definition: functionals.h:363
Definition: basisinfo.h:71
Ball()
Definition: dft_common.cc:424
real df00102
Definition: functionals.h:280
ShellSpecStruct * shellList
Definition: basisinfo.h:119
real ZEROR
Definition: dft_common.cc:65
const Molecule & molecule
Definition: dft_common.h:97
Definition: functionals.h:220
ergo_real centerCoords[3]
Definition: basisinfo.h:76
real df11002
Definition: functionals.h:312
int(* fort_print)(const char *format,...)
Definition: dft_common.cc:180
bool overlapsWith(const real *center, real radius) const
Definition: dft_common.h:143
real df1021
Definition: functionals.h:314
real df00001
Definition: functionals.h:124
EnergyFunc func
Definition: functionals.h:409
void drv1_clear(FunFirstFuncDrv *gga)
Definition: functionals.c:131
Definition: basisinfo.h:112
ergo_real real
Definition: test.cc:46
int getNoOfAtoms() const
Definition: molecule.h:114
ergo_real exponentList[MAX_NO_OF_CONTR_GAUSSIANS]
Definition: basisinfo.h:73
real df0040
Definition: functionals.h:343
real df0103
Definition: functionals.h:339
real df1110
Definition: functionals.h:188
real df3000
Definition: functionals.h:182
real FOURR
Definition: dft_common.cc:65
EXTERN_C void dft_init(void)
Definition: dft_common.cc:195
real df21001
Definition: functionals.h:296
real df02011
Definition: functionals.h:331
virtual void getExps(int *maxl, int **nucbas, real(**aa)[2]) const
ergo_get_exps() generates a list of exponents for every center as in mol_info table: number of gaussi...
Definition: dft_common.cc:648
void getBlocks1(const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const
get blocks of active SHELLS in cube of CELLSZ size centered at CENTER.
Definition: dft_common.cc:352
Treal template_blas_fabs(Treal x)
real lo[3]
Definition: dft_common.h:167
int THREEI
Definition: dft_common.h:131
real df0020
Definition: functionals.h:145
real df00101
Definition: functionals.h:243
int charge
Definition: grid_test.cc:51
real df2101
Definition: functionals.h:295
real fRR
Definition: dft_common.h:73
void * dal_malloc_(size_t sz, const char *place, unsigned line)
Definition: dft_common.cc:68
A vector of first order derivatives with respect to two parameters: density rho and SQUARE of the gra...
Definition: dft_common.h:60
real df00301
Definition: functionals.h:345
real df0202
Definition: functionals.h:330
EXTERN_C void dft_init(void)
Definition: dft_common.cc:195
real dftene_(const real *rho, const real *grad)
Definition: dft_common.cc:740
real df00101
Definition: functionals.h:147
real df3100
Definition: functionals.h:289
real df0201
Definition: functionals.h:267
int getMaxDim() const
Return the index of the largest Cartesian dimension: 0 for x, 1 for y and 2 for z.
Definition: dft_common.cc:111
real df0001
Definition: functionals.h:227
real df11101
Definition: functionals.h:309
real df0022
Definition: functionals.h:346
int ergo_barrier_destroy(ergo_barrier_t *barrier)
Definition: barrier.c:58
ergo_real center[3]
Definition: dft_common.cc:422
EXTERN_C void dftpot0_(FirstDrv *ds, const real *weight, const FunDensProp *dp)
Definition: dft_common.cc:766
real df2000
Definition: functionals.h:166
real df1210
Definition: functionals.h:304
void init(const BasisInfoStruct &bis_, const real *rShells_, const std::list< int > &activeShells, const Box &bb)
Definition: dft_common.cc:462
real ZEROR
Definition: dft_common.cc:65
real df0031
Definition: functionals.h:344
real df01012
Definition: functionals.h:341
void(* fun_set_cam_param)(real w, real b)
Definition: functionals.c:110
void * dal_malloc_(size_t sz, const char *func, unsigned line)
Definition: dft_common.cc:68
EXTERN_C int dft_setfunc(const char *line)
Definition: dft_common.cc:277
real rhob
Definition: functionals.h:376
Ball(const ergo_real(&c)[3], ergo_real r)
Definition: dft_common.cc:425
real df2000
Definition: functionals.h:232
real df4000
Definition: functionals.h:288
@ FUN_UNKNOWN
Definition: functionals.h:363
int noOfShells
Definition: grid_interface.h:49
ergo_real dist(const Vector3D &b) const
compute distance between two points.
Definition: molecule.h:77
real df3010
Definition: functionals.h:290
void drv4_clear(FunFourthFuncDrv *gga)
Definition: functionals.c:148
ShellTree * shellTree
Definition: dft_common.h:112
real df1020
Definition: functionals.h:191
real df0030
Definition: functionals.h:207
real df01111
Definition: functionals.h:337
real fR
Definition: dft_common.h:71
EXTERN_C void dftpot1_(SecondDrv *ds, const real *w, const FunDensProp *dp, const int *triplet)
Definition: dft_common.cc:776
ShellTree * larger
Definition: dft_common.cc:389
int ONEI
Definition: dft_common.h:131
real df0100
Definition: functionals.h:225
real df00121
Definition: functionals.h:350
EXTERN_C int dft_get_num_threads(void)
Definition: dft_common.cc:203
real df3001
Definition: functionals.h:291
real df01001
Definition: functionals.h:240
real df01201
Definition: functionals.h:335
real df1010
Definition: functionals.h:168
int noOfShells
Definition: basisinfo.h:118
real df00001
Definition: functionals.h:135
int sync_threads(bool release, int nThreads)
creates or destroys a barrier for nThreads.
Definition: dft_common.cc:137
EXTERN_C void dft_set_num_threads(int nThreads)
Definition: dft_common.cc:226
real df10201
Definition: functionals.h:315
int sync_threads(bool release, int nThreads)
creates or destroys a barrier for nThreads.
Definition: dft_common.cc:137
real df10111
Definition: functionals.h:317
ergo_real radius() const
Definition: dft_common.cc:423
~ShellTree()
Definition: dft_common.cc:406
real df00201
Definition: functionals.h:277
real df2002
Definition: functionals.h:300
Definition: functionals.h:159
void drv3_clear(FunThirdFuncDrv *gga)
Definition: functionals.c:143
Definition: functionals.h:119
real df01003
Definition: functionals.h:342
real df0003
Definition: functionals.h:281
int FOURI
Definition: dft_common.h:131
Definition: dft_common.cc:420
real fZG
Definition: dft_common.h:79
int do_voutput(int logCategory, int logArea, const char *format, va_list a)
Definition: output.cc:94
real df20101
Definition: functionals.h:299
real df30001
Definition: functionals.h:292
Class Box provides an ability to determine box containing all Objects.
Definition: dft_common.h:137
int dividingDimension
Definition: dft_common.cc:391
int THREEI
Definition: dft_common.cc:64
ThirdOrderFun third
Definition: functionals.h:412
int noOfContr
Definition: basisinfo.h:77
real df10002
Definition: functionals.h:264
real df10012
Definition: functionals.h:321
real df0211
Definition: functionals.h:328
int ergo_barrier_wait(ergo_barrier_t *barrier)
Definition: barrier.c:68
int noOfAtoms
Definition: grid_interface.h:47
real df00002
Definition: functionals.h:246
enum FunError fun_select_by_name(const char *conf_string)
Definition: functionals.c:114
real df0100
Definition: functionals.h:132
std::map< int, ergo_real > ownShells
set only for leaves, i.e.
Definition: dft_common.cc:392
real df0111
Definition: functionals.h:270
real df1100
Definition: functionals.h:167
void dftpot0_(FirstDrv *ds, const real *weight, const FunDensProp *dp)
Definition: dft_common.cc:766
real df00112
Definition: functionals.h:351
void getBoundingBox(Box &box, Iterator start, Iterator end)
Definition: dft_common.h:172
EXTERN_C int dft_get_num_threads()
Definition: dft_common.cc:203
real fGG
Definition: dft_common.h:80
const Atom & getAtom(int i) const
Definition: molecule.h:113
@ FUN_OK
Definition: functionals.h:363
real df2020
Definition: functionals.h:297
real df1000
Definition: functionals.h:224
real df1300
Definition: functionals.h:303
real ONER
Definition: dft_common.h:132
real df00002
Definition: functionals.h:150
real ONER
Definition: dft_common.cc:65
real df1110
Definition: functionals.h:256
#define LOG_CAT_INFO
Definition: output.h:49
Treal template_blas_log(Treal x)
static void dft_set_hf_weight(real w)
Definition: dft_common.cc:178
void dftpot1_(SecondDrv *ds, const real *w, const FunDensProp *dp, const int *triplet)
Definition: dft_common.cc:776
real df00012
Definition: functionals.h:283
real df3000
Definition: functionals.h:250
virtual void getBlocks(const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const
same as ergo_get_shlblocks, except it should scale NlogN.
Definition: dft_common.cc:593
real df0310
Definition: functionals.h:324
real df0120
Definition: functionals.h:201
#define FSYM(a)
Definition: dft.h:74
int ZEROI
Definition: dft_common.cc:64
real df1012
Definition: functionals.h:316
static real dft_hf_weight
Definition: dft_common.cc:177
real df1020
Definition: functionals.h:259
real df01021
Definition: functionals.h:340
real df1002
Definition: functionals.h:262
real(* fun_get_hf_weight)(void)
Definition: functionals.c:109
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
real df2100
Definition: functionals.h:183
real df0013
Definition: functionals.h:349
Code for setting up basis functions starting from shells.
real df1010
Definition: functionals.h:138
real df2200
Definition: functionals.h:293
real df2001
Definition: functionals.h:253
ergo_real maxRadius
upper limit of ownShell radius.
Definition: dft_common.cc:398
EXTERN_C void dft_set_num_threads(int nThreads)
Definition: dft_common.cc:226
real df0004
Definition: functionals.h:353
real df0101
Definition: functionals.h:239
real df20002
Definition: functionals.h:302
Functional * selected_func
Definition: functionals.c:106
real df0210
Definition: functionals.h:266
real df10003
Definition: functionals.h:322
ShellTree * smaller
Definition: dft_common.cc:388
real df1001
Definition: functionals.h:235
real df0021
Definition: functionals.h:208
real df1102
Definition: functionals.h:310
int FOURI
Definition: dft_common.cc:64
real df0020
Definition: functionals.h:241
int(* fun_printf)(const char *fmt,...)
Definition: functionals.c:107
real df10011
Definition: functionals.h:263
const ShellSpecStruct * shells
Definition: dft_common.cc:387
real df00011
Definition: functionals.h:245
real df10021
Definition: functionals.h:320
static int ergo_fort_print(const char *format,...)
Definition: dft_common.cc:183
real fZ
Definition: dft_common.h:72
real df0030
Definition: functionals.h:275
real hi[3]
Definition: dft_common.h:168
ergo_real charge
Definition: molecule.h:52
real df00004
Definition: functionals.h:357
int startIndexInMatrix
Definition: basisinfo.h:81
Class that allows to find in NLogN time all shells that overlap with a given box.
Definition: dft_common.cc:386
real df1100
Definition: functionals.h:137
real df1120
Definition: functionals.h:307
real gradab
Definition: functionals.h:378
static const ergo_real SET_SHELL_RADII_ORBITAL_THR
Definition: dft_common.cc:84
real df0012
Definition: functionals.h:278
real df0110
Definition: functionals.h:238
real TWOR
Definition: dft_common.h:132
real df2011
Definition: functionals.h:298
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
real df0121
Definition: functionals.h:334
#define EXTERN_C
Definition: dft.h:45
void getOverlappingWith(const real *center, real cellsz, std::map< int, int > &res) const
Definition: dft_common.cc:537
real df01101
Definition: functionals.h:271
real df11011
Definition: functionals.h:311
real fR
Definition: dft_common.h:61
int ergo_barrier_init(ergo_barrier_t *barrier, const void *attr_ignored, unsigned int count)
Definition: barrier.c:44
real df10001
Definition: functionals.h:140
real df00001
Definition: functionals.h:164
real grada
Definition: functionals.h:377
real df00001
Definition: functionals.h:228
real fRZ
Definition: dft_common.h:74
real df00111
Definition: functionals.h:279
real df0011
Definition: functionals.h:176
int ONEI
Definition: dft_common.cc:64
static const ergo_real GET_BLOCKS_FUDGE_FACTOR
Definition: dft_common.cc:83
real df2001
Definition: functionals.h:185
real df0002
Definition: functionals.h:244
static ergo_real distance(const ergo_real *a, const ergo_real *b)
Coomputes distance between two points, they do not need to be of the Vector3D type.
Definition: dft_common.cc:526
void daxpy_(const int *n, const double *da, const double *dx, const int *incx, double *dy, const int *incy)
real df0102
Definition: functionals.h:272
real df0120
Definition: functionals.h:269
real df0021
Definition: functionals.h:276
real df0400
Definition: functionals.h:323
real df0300
Definition: functionals.h:265
real df1011
Definition: functionals.h:260
virtual void getAtom(int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const
Return atom data.
Definition: dft_common.cc:305
FourthOrderFun fourth
Definition: functionals.h:413
real df1100
Definition: functionals.h:233
ergo_real coords[3]
Definition: molecule.h:53
real df2100
Definition: functionals.h:251
real df1000
Definition: functionals.h:120
real df1200
Definition: functionals.h:255
void dftptf0_(real *rho, real *grad, real *wght, real *vx)
Definition: dft_common.cc:750
real df0010
Definition: functionals.h:133
ShellTree(const BasisInfoStruct &bis_, const real *rShells_)
root node constructor.
Definition: dft_common.cc:433
real df1030
Definition: functionals.h:313
#define EXTERN_C
Definition: dft_common.h:46
GridGenMolInfo is an abstract class providing information about the molecule so that the grid generat...
Definition: grid_interface.h:45
ErgoMolInfo(const BasisInfoStruct &bis_, const Molecule &mol)
Ther standard constructor.
Definition: dft_common.cc:573
static real dft_get_hf_weight(void)
Definition: dft_common.cc:179
int dft_setfunc(const char *line)
Definition: dft_common.cc:277
real gradb
Definition: functionals.h:377
real df1111
Definition: functionals.h:308
real df2000
Definition: functionals.h:136
real df0010
Definition: functionals.h:226
real df0010
Definition: functionals.h:162
real df00103
Definition: functionals.h:352
real df2010
Definition: functionals.h:252
real df1001
Definition: functionals.h:139
ergo_real dividingValue
Definition: dft_common.cc:390
real df00022
Definition: functionals.h:355
const BasisInfoStruct & bis
Definition: dft_common.h:96
SecondOrderFun second
Definition: functionals.h:411
void drv2_clear(FunSecondFuncDrv *gga)
Definition: functionals.c:137
real df12001
Definition: functionals.h:306
real df00031
Definition: functionals.h:354
real df0200
Definition: functionals.h:237
real df1000
Definition: functionals.h:160
#define LOG_AREA_DFT
Definition: output.h:62
real df0220
Definition: functionals.h:327
real df10101
Definition: functionals.h:261
real df2110
Definition: functionals.h:294
real df1201
Definition: functionals.h:305
#define PTHREAD_BARRIER_SERIAL_THREAD
Definition: barrier.h:45
real df10102
Definition: functionals.h:318
real df1010
Definition: functionals.h:234
real df00211
Definition: functionals.h:347
Functionality for writing output messages to a text file.
real df0010
Definition: functionals.h:122
real df10001
Definition: functionals.h:236
real df01002
Definition: functionals.h:274
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