ergo
grid_params.h
Go to the documentation of this file.
1 /* Ergo, version 3.3, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2013 Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Primary academic reference:
19  * Kohn−Sham Density Functional Theory Electronic Structure Calculations
20  * with Linearly Scaling Computational Time and Memory Usage,
21  * Elias Rudberg, Emanuel H. Rubensson, and Pawel Salek,
22  * J. Chem. Theory Comput. 7, 340 (2011),
23  * <http://dx.doi.org/10.1021/ct100611z>
24  *
25  * For further information about Ergo, see <http://www.ergoscf.org>.
26  */
27 
28 #if !defined(_GRID_PARAMS_H_)
29 #define _GRID_PARAMS_H_ 1
30 
31 #include "grid_atomic.h"
32 
33 namespace Dft {
34 
46 };
47 
49 struct GridParams {
55  int angmin;
56  int angmax;
57  typedef enum { GC2, LMG, TURBO } RadialScheme;
58  typedef enum { TYPE_STANDARD, TYPE_HICU } GridType;
61  bool cubicBoxes;
63  /* The following are HiCu grid parameters. */
65 explicit GridParams(ergo_real r_ = 1e-9, int a1 = 6, int a2 = 30,
66  ergo_real bs = 5.0, bool cubic = false,
67  ergo_real hicume = 1e-7,
68  ergo_real hicubs = 1.5, ergo_real hicusbsd = 0,
69  int hicuerrpervol = 0,
70  int hicudodoublecheck = 1,
71  int hicuctr = 0, int hicuuec = 0,int hicuueco = 0,
72  int hicudovarcheck = 0)
73 : boxSize(bs), radint(r_), angmin(a1), angmax(a2), radialGridScheme(LMG),
75  {
76  hicuParams.maxError = hicume;
77  hicuParams.box_size = hicubs;
79  hicuParams.use_error_per_volume = hicuerrpervol;
80  hicuParams.do_double_checking = hicudodoublecheck;
84  hicuParams.do_variation_checking = hicudovarcheck;
85  }
86 };
87 
88 }
89 #endif /* _GRID_PARAMS_H_ */
double ergo_real
Definition: realtype.h:53
int compare_to_refined
Definition: grid_params.h:42
A structure describing the grid settings.
Definition: grid_params.h:49
bool cubicBoxes
whether cubic grid boxes should be enforced.
Definition: grid_params.h:61
RadialScheme radialGridScheme
Definition: grid_params.h:59
Definition: grid_params.h:58
ergo_real boxSize
All the dimensions of the smallest box must be below this threshold.
Definition: grid_params.h:53
RadialScheme
Definition: grid_params.h:57
GridType gridType
Definition: grid_params.h:60
GridType
Definition: grid_params.h:58
Definition: grid_params.h:58
ergo_real start_box_size_debug
Definition: grid_params.h:39
Implements shared parts of the grid generation code.
GridParams(ergo_real r_=1e-9, int a1=6, int a2=30, ergo_real bs=5.0, bool cubic=false, ergo_real hicume=1e-7, ergo_real hicubs=1.5, ergo_real hicusbsd=0, int hicuerrpervol=0, int hicudodoublecheck=1, int hicuctr=0, int hicuuec=0, int hicuueco=0, int hicudovarcheck=0)
Definition: grid_params.h:65
HiCuGridParams hicuParams
Definition: grid_params.h:64
int use_energy_criterion
Definition: grid_params.h:43
int do_variation_checking
Definition: grid_params.h:45
int do_double_checking
Definition: grid_params.h:41
int angmin
Definition: grid_params.h:55
int use_error_per_volume
Definition: grid_params.h:40
Definition: grid_params.h:57
ergo_real maxError
Definition: grid_params.h:37
int angmax
Definition: grid_params.h:56
RadialScheme describes the radial grid.
Definition: grid_atomic.h:48
ergo_real radint
Definition: grid_params.h:54
int use_energy_criterion_only
Definition: grid_params.h:44
Definition: grid_params.h:57
ergo_real box_size
Definition: grid_params.h:38
Definition: grid_params.h:57
A structure describing the HiCu grid settings.
Definition: grid_params.h:36