00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00038 #if !defined(_GRID_PARAMS_H_)
00039 #define _GRID_PARAMS_H_ 1
00040
00041 #include "grid_atomic.h"
00042
00043 namespace Dft {
00044
00046 struct HiCuGridParams {
00047 ergo_real maxError;
00048 ergo_real box_size;
00049 ergo_real start_box_size_debug;
00050 int use_error_per_volume;
00051 int do_double_checking;
00052 int compare_to_refined;
00053 int use_energy_criterion;
00054 int use_energy_criterion_only;
00055 int do_variation_checking;
00056 };
00057
00059 struct GridParams {
00063 ergo_real boxSize;
00064 ergo_real radint;
00065 int angmin;
00066 int angmax;
00067 typedef enum { GC2, LMG, TURBO } RadialScheme;
00068 typedef enum { TYPE_STANDARD, TYPE_HICU } GridType;
00069 RadialScheme radialGridScheme;
00070 GridType gridType;
00071 bool cubicBoxes;
00073
00074 HiCuGridParams hicuParams;
00075 explicit GridParams(ergo_real r_ = 1e-9, int a1 = 6, int a2 = 30,
00076 ergo_real bs = 5.0, bool cubic = false,
00077 ergo_real hicume = 1e-7,
00078 ergo_real hicubs = 1.5, ergo_real hicusbsd = 0,
00079 int hicuerrpervol = 0,
00080 int hicudodoublecheck = 1,
00081 int hicuctr = 0, int hicuuec = 0,int hicuueco = 0,
00082 int hicudovarcheck = 0)
00083 : boxSize(bs), radint(r_), angmin(a1), angmax(a2), radialGridScheme(LMG),
00084 gridType(TYPE_STANDARD), cubicBoxes(cubic)
00085 {
00086 hicuParams.maxError = hicume;
00087 hicuParams.box_size = hicubs;
00088 hicuParams.start_box_size_debug = hicusbsd;
00089 hicuParams.use_error_per_volume = hicuerrpervol;
00090 hicuParams.do_double_checking = hicudodoublecheck;
00091 hicuParams.compare_to_refined = hicuctr;
00092 hicuParams.use_energy_criterion = hicuuec;
00093 hicuParams.use_energy_criterion_only = hicuueco;
00094 hicuParams.do_variation_checking = hicudovarcheck;
00095 }
00096 };
00097
00098 }
00099 #endif