23 void read(XMLReader& xml,
const std::string& path, multi1d<T>& result,
int N)
25 multi1d<T> read_result;
26 read(xml, path, read_result);
29 if( read_result.size() == 1 ) {
31 for(
int i=0;
i < N; ++
i) {
32 result[
i] = read_result[0];
36 if( read_result.size() == N ) {
38 for(
int i=0;
i < N; ++
i) {
39 result[
i] = read_result[
i];
43 QDPIO::cerr <<
"Wrong number of elements reading" << path <<
" should be either 1 or " << N << std::endl;
50 MGProtoSolverParams::MGProtoSolverParams(XMLReader& xml,
const std::string& path)
53 XMLReader paramtop(xml, path);
54 read( paramtop,
"CloverParams", CloverParams);
56 read( paramtop,
"AntiPeriodicT", AntiPeriodicT );
57 read( paramtop,
"MGLevels", MGLevels);
59 read( paramtop,
"Blocking", Blocking, MGLevels-1);
61 read( paramtop,
"NullVecs", NullVecs, MGLevels-1);
62 read( paramtop,
"NullSolverMaxIters", NullSolverMaxIters, MGLevels-1);
63 read( paramtop,
"NullSolverRsdTarget", NullSolverRsdTarget, MGLevels-1);
64 read( paramtop,
"NullSolverVerboseP", NullSolverVerboseP, MGLevels-1);
66 read( paramtop,
"OuterSolverNKrylov", OuterSolverNKrylov);
67 read( paramtop,
"OuterSolverRsdTarget", OuterSolverRsdTarget);
68 read( paramtop,
"OuterSolverMaxIters", OuterSolverMaxIters);
69 read( paramtop,
"OuterSolverVerboseP", OuterSolverVerboseP);
71 read( paramtop,
"VCyclePreSmootherMaxIters", VCyclePreSmootherMaxIters, MGLevels-1);
72 read( paramtop,
"VCyclePreSmootherRsdTarget", VCyclePreSmootherRsdTarget, MGLevels-1);
73 read( paramtop,
"VCyclePreSmootherRelaxOmega", VCyclePreSmootherRelaxOmega, MGLevels-1);
74 read( paramtop,
"VCyclePreSmootherVerboseP", VCyclePreSmootherVerboseP, MGLevels-1);
76 read( paramtop,
"VCyclePostSmootherMaxIters", VCyclePostSmootherMaxIters, MGLevels-1);
77 read( paramtop,
"VCyclePostSmootherRsdTarget", VCyclePostSmootherRsdTarget, MGLevels-1);
78 read( paramtop,
"VCyclePostSmootherRelaxOmega", VCyclePostSmootherRelaxOmega, MGLevels-1);
79 read( paramtop,
"VCyclePostSmootherVerboseP", VCyclePostSmootherVerboseP, MGLevels-1);
81 read( paramtop,
"VCycleBottomSolverNKrylov", VCycleBottomSolverNKrylov, MGLevels-1);
82 read( paramtop,
"VCycleBottomSolverMaxIters", VCycleBottomSolverMaxIters, MGLevels-1);
83 read( paramtop,
"VCycleBottomSolverRsdTarget", VCycleBottomSolverRsdTarget,MGLevels-1);
84 read( paramtop,
"VCycleBottomSolverVerboseP", VCycleBottomSolverVerboseP, MGLevels-1);
86 read( paramtop,
"VCycleMaxIters", VCycleMaxIters, MGLevels-1);
87 read( paramtop,
"VCycleRsdTarget", VCycleRsdTarget, MGLevels-1);
88 read( paramtop,
"VCycleVerboseP", VCycleVerboseP, MGLevels-1);
90 read( paramtop,
"SubspaceId", SubspaceId);
94 QDPIO::cout <<
"Caught exception " << e << std::endl;
98 QDPIO::cout <<
"Caught unknown exception " << std::endl;
113 write(xml,
"CloverParams",
p.CloverParams);
114 write(xml,
"AntiPeriodicT",
p.AntiPeriodicT);
116 write(xml,
"MGLevels",
p.MGLevels);
117 write(xml,
"Blocking",
p.Blocking);
118 write(xml,
"NullVecs",
p.NullVecs);
119 write(xml,
"NullSolverMaxIters",
p.NullSolverMaxIters);
120 write(xml,
"NullSolverRsdTarget",
p.NullSolverRsdTarget);
121 write(xml,
"NullSolverVerboseP",
p.NullSolverVerboseP);
123 write(xml,
"OuterSolverNKrylov",
p.OuterSolverNKrylov);
124 write(xml,
"OuterSolverRsdTarget",
p.OuterSolverRsdTarget);
125 write(xml,
"OuterSolverMaxIters",
p.OuterSolverMaxIters);
126 write(xml,
"OuterSolverVerboseP",
p.OuterSolverVerboseP);
128 write(xml,
"VCyclePreSmootherMaxIters",
p.VCyclePreSmootherMaxIters);
129 write(xml,
"VCyclePreSmootherRsdTarget",
p.VCyclePreSmootherRsdTarget);
130 write(xml,
"VCyclePreSmootherRelaxOmega",
p.VCyclePreSmootherRelaxOmega);
131 write(xml,
"VCyclePreSmootherVerboseP",
p.VCyclePreSmootherVerboseP);
133 write(xml,
"VCyclePostSmootherMaxIters",
p.VCyclePostSmootherMaxIters);
134 write(xml,
"VCyclePostSmootherRsdTarget",
p.VCyclePostSmootherRsdTarget);
135 write(xml,
"VCyclePostSmootherRelaxOmega",
p.VCyclePostSmootherRelaxOmega);
136 write(xml,
"VCyclePostSmootherVerboseP",
p.VCyclePostSmootherVerboseP);
138 write(xml,
"VCycleBottomSolverNKrylov",
p.VCycleBottomSolverNKrylov);
139 write(xml,
"VCycleBottomSolverMaxIters",
p.VCycleBottomSolverMaxIters);
140 write(xml,
"VCycleBottomSolverRsdTarget",
p.VCycleBottomSolverRsdTarget);
141 write(xml,
"VCycleBottomSolverVerboseP",
p.VCycleBottomSolverVerboseP);
143 write(xml,
"VCycleMaxIters",
p.VCycleMaxIters);
144 write(xml,
"VCycleRsdTarget",
p.VCycleMaxIters);
145 write(xml,
"VCycleVerboseP",
p.VCycleVerboseP);
146 write(xml,
"SubspaceId",
p.SubspaceId);
Primary include file for CHROMA library code.
Asqtad Staggered-Dirac operator.
void read(XMLReader &xml, const std::string &path, MGProtoSolverParams &p)
void write(XMLWriter &xml, const std::string &path, const MGProtoSolverParams &p)
push(xml_out,"Cooled_Topology")
Read an XML group as a std::string.