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