12 SysSolverQUDAMULTIGRIDCloverParams::SysSolverQUDAMULTIGRIDCloverParams(XMLReader& xml,
15 XMLReader paramtop(xml, path);
17 read(paramtop,
"MaxIter", MaxIter);
18 read(paramtop,
"RsdTarget", RsdTarget);
19 read(paramtop,
"CloverParams", CloverParams);
20 read(paramtop,
"AntiPeriodicT", AntiPeriodicT);
22 read(paramtop,
"Delta", Delta);
25 read(paramtop,
"SolverType", solverType);
27 if ( paramtop.count(
"Verbose") > 0 ) {
28 read(paramtop,
"Verbose", verboseP);
33 if ( paramtop.count(
"AsymmetricLinop") > 0 ) {
34 read(paramtop,
"AsymmetricLinop", asymmetricP);
40 if( paramtop.count(
"CudaPrecision") > 0 ) {
41 read(paramtop,
"CudaPrecision", cudaPrecision);
47 if( paramtop.count(
"CudaSloppyPrecision") > 0 ) {
48 read(paramtop,
"CudaSloppyPrecision", cudaSloppyPrecision);
54 if( paramtop.count(
"CudaReconstruct") > 0 ) {
55 read(paramtop,
"CudaReconstruct", cudaReconstruct);
61 if( paramtop.count(
"CudaSloppyReconstruct") > 0 ) {
62 read(paramtop,
"CudaSloppyReconstruct", cudaSloppyReconstruct);
68 if( paramtop.count(
"AxialGaugeFix") > 0 ) {
69 read(paramtop,
"AxialGaugeFix", axialGaugeP);
75 if( paramtop.count(
"SilentFail") > 0) {
76 read(paramtop,
"SilentFail", SilentFailP);
82 if( paramtop.count(
"RsdToleranceFactor") > 0 ) {
83 read(paramtop,
"RsdToleranceFactor", RsdToleranceFactor);
86 RsdToleranceFactor = Real(10);
89 if( paramtop.count(
"AutotuneDslash") > 0 ) {
90 read(paramtop,
"AutotuneDslash", tuneDslashP);
95 QDPIO::cout <<
"tuneDslasP = " << tuneDslashP << std::endl;
97 read(paramtop,
"SubspaceID", SaveSubspaceID);
99 if( paramtop.count(
"ThresholdCount") == 1 ) {
100 read(paramtop,
"ThresholdCount", ThresholdCount);
103 ThresholdCount = 2*MaxIter + 1;
106 if( paramtop.count(
"Pipeline") > 0 ) {
107 read(paramtop,
"Pipeline", Pipeline);
113 if( paramtop.count(
"MULTIGRIDParams") > 0 ) {
115 MULTIGRIDParamsP =
true;
118 MULTIGRIDParamsP =
false;
121 if ( paramtop.count(
"BackupSolverParam") > 0 ) {
124 backup_inv_param =
readXMLGroup(paramtop,
"./BackupSolverParam",
"invType");
129 backup_inv_param.xml =
"";
132 if ( paramtop.count(
"DumpOnFail") > 0 ) {
133 read(paramtop,
"DumpOnFail", dump_on_failP);
136 dump_on_failP =
false;
139 if ( paramtop.count(
"SolutionCheckP") > 0 ) {
140 read(paramtop,
"SolutionCheckP", SolutionCheckP);
143 SolutionCheckP =
true;
158 write(xml,
"MaxIter",
p.MaxIter);
159 write(xml,
"RsdTarget",
p.RsdTarget);
160 write(xml,
"CloverParams",
p.CloverParams);
161 write(xml,
"AntiPeriodicT",
p.AntiPeriodicT);
162 write(xml,
"Delta",
p.Delta);
163 write(xml,
"SolverType",
p.solverType);
164 write(xml,
"Verbose",
p.verboseP);
165 write(xml,
"AsymmetricLinop",
p.asymmetricP);
166 write(xml,
"CudaPrecision",
p.cudaPrecision);
167 write(xml,
"CudaReconstruct",
p.cudaReconstruct);
168 write(xml,
"CudaSloppyPrecision",
p.cudaSloppyPrecision);
169 write(xml,
"CudaSloppyReconstruct",
p.cudaSloppyReconstruct);
170 write(xml,
"AxialGaugeFix",
p.axialGaugeP);
171 write(xml,
"SilentFail",
p.SilentFailP);
172 write(xml,
"RsdToleranceFactor",
p.RsdToleranceFactor);
174 write(xml,
"AutotuneDslash",
p.tuneDslashP);
177 write(xml,
"SubspaceID",
p.SaveSubspaceID);
178 write(xml,
"ThresholdCount",
p.ThresholdCount);
179 write(xml,
"Pipeline",
p.Pipeline);
181 if(
p.MULTIGRIDParamsP ) {
182 write(xml,
"MULTIGRIDParams", *(
p.MULTIGRIDParams));
185 write(xml,
"DumpOnFail",
p.dump_on_failP);
186 write(xml,
"SolutionCheckP",
p.SolutionCheckP);
188 if(
p.backup_invP ) {
191 std::istringstream is(
p.backup_inv_param.xml);
192 XMLReader tmp_reader(is);
194 write(xml,
"BackupSolverParam", tmp_reader);
Primary include file for CHROMA library code.
GroupXML_t readXMLGroup(XMLReader &xml_in, const std::string &path, const std::string &type_name)
Read group and return as a std::string.
Asqtad Staggered-Dirac operator.
void write(XMLWriter &xml, const std::string &path, const SysSolverQUDAMULTIGRIDCloverParams &p)
void read(XMLReader &xml, const std::string &path, SysSolverQUDAMULTIGRIDCloverParams &p)
push(xml_out,"Cooled_Topology")
Read an XML group as a std::string.