CHROMA
symm_prec_xml.h
Go to the documentation of this file.
1 /*
2  * symm_prec_xml.h
3  *
4  * Created on: Oct 18, 2018
5  * Author: bjoo
6  */
7 
8 #ifndef MAINPROGS_TESTS_SYMM_PREC_XML_H_
9 #define MAINPROGS_TESTS_SYMM_PREC_XML_H_
10 #include <string>
11 #include "chroma_config.h"
12 namespace SymmPrecTesting
13 {
14 
15 
16 std::string fermact_xml_asymm = "<?xml version='1.0'?> \
17  <Param> \
18  <FermionAction> \
19  <FermAct>CLOVER</FermAct> \
20  <Mass>0.1</Mass> \
21  <clovCoeff>1</clovCoeff> \
22  <AnisoParam> \
23  <anisoP>false</anisoP> \
24  <t_dir>3</t_dir> \
25  <xi_0>1</xi_0> \
26  <nu>1</nu> \
27  </AnisoParam> \
28  <FermState> \
29  <Name>STOUT_FERM_STATE</Name> \
30  <rho>0.14</rho> \
31  <n_smear>2</n_smear> \
32  <orthog_dir>3</orthog_dir> \
33  <FermionBC> \
34  <FermBC>SIMPLE_FERMBC</FermBC> \
35  <boundary>1 1 1 -1</boundary> \
36  </FermionBC> \
37  </FermState> \
38  </FermionAction> \
39  </Param>";
40 
41 std::string fermact_xml_symm = "<?xml version='1.0'?> \
42  <Param> \
43  <FermionAction> \
44  <FermAct>SEOPREC_CLOVER</FermAct> \
45  <Mass>0.1</Mass> \
46  <clovCoeff>1</clovCoeff> \
47  <AnisoParam> \
48  <anisoP>false</anisoP> \
49  <t_dir>3</t_dir> \
50  <xi_0>1</xi_0> \
51  <nu>1</nu> \
52  </AnisoParam> \
53  <FermState> \
54  <Name>STOUT_FERM_STATE</Name> \
55  <rho>0.14</rho> \
56  <n_smear>2</n_smear> \
57  <orthog_dir>3</orthog_dir> \
58  <FermionBC> \
59  <FermBC>SIMPLE_FERMBC</FermBC> \
60  <boundary>1 1 1 -1</boundary> \
61  </FermionBC> \
62  </FermState> \
63  </FermionAction> \
64  </Param>";
66  "<?xml version='1.0'?> \
67  <Param> \
68  <FermionAction> \
69  <FermAct>SEOPREC_CLOVER</FermAct> \
70  <Mass>0.1</Mass> \
71  <clovCoeff>1</clovCoeff> \
72  <AnisoParam> \
73  <anisoP>false</anisoP> \
74  <t_dir>3</t_dir> \
75  <xi_0>1</xi_0> \
76  <nu>1</nu> \
77  </AnisoParam> \
78  <TwistedM>0.05</TwistedM> \
79  <FermState> \
80  <Name>STOUT_FERM_STATE</Name> \
81  <rho>0.14</rho> \
82  <n_smear>2</n_smear> \
83  <orthog_dir>3</orthog_dir> \
84  <FermionBC> \
85  <FermBC>SIMPLE_FERMBC</FermBC> \
86  <boundary>1 1 1 -1</boundary> \
87  </FermionBC> \
88  </FermState> \
89  </FermionAction> \
90  </Param>";
91 
93  "<?xml version='1.0'?> \
94  <Param> \
95  <FermionAction> \
96  <FermAct>CLOVER</FermAct> \
97  <Mass>0.1</Mass> \
98  <clovCoeff>1</clovCoeff> \
99  <AnisoParam> \
100  <anisoP>false</anisoP> \
101  <t_dir>3</t_dir> \
102  <xi_0>1</xi_0> \
103  <nu>1</nu> \
104  </AnisoParam> \
105  <FermState> \
106  <Name>STOUT_FERM_STATE</Name> \
107  <rho>0.14</rho> \
108  <n_smear>2</n_smear> \
109  <orthog_dir>3</orthog_dir> \
110  <FermionBC> \
111  <FermBC>SIMPLE_FERMBC</FermBC> \
112  <boundary>1 1 1 1</boundary> \
113  </FermionBC> \
114  </FermState> \
115  </FermionAction> \
116  </Param>";
117 
119  "<?xml version='1.0'?> \
120  <Param> \
121  <FermionAction> \
122  <FermAct>SEOPREC_CLOVER</FermAct> \
123  <Mass>0.1</Mass> \
124  <clovCoeff>1</clovCoeff> \
125  <AnisoParam> \
126  <anisoP>false</anisoP> \
127  <t_dir>3</t_dir> \
128  <xi_0>1</xi_0> \
129  <nu>1</nu> \
130  </AnisoParam> \
131  <FermState> \
132  <Name>STOUT_FERM_STATE</Name> \
133  <rho>0.14</rho> \
134  <n_smear>2</n_smear> \
135  <orthog_dir>3</orthog_dir> \
136  <FermionBC> \
137  <FermBC>SIMPLE_FERMBC</FermBC> \
138  <boundary>1 1 1 1</boundary> \
139  </FermionBC> \
140  </FermState> \
141  </FermionAction> \
142  </Param>";
143 
145  "<?xml version='1.0'?> \
146  <Param> \
147  <InvertParam>\
148  <invType>BICGSTAB_INVERTER</invType>\
149  <RsdBiCGStab>1.0e-8</RsdBiCGStab> \
150  <MaxBiCGStab>1000</MaxBiCGStab> \
151  </InvertParam>\
152  </Param>";
153 
154 
155 
156 #ifdef BUILD_QUDA
157 std::string inv_param_quda_bicgstab_xml = \
158  "<?xml version='1.0'?> \
159  <Param> \
160  <InvertParam>\
161  <invType>QUDA_CLOVER_INVERTER</invType>\
162  <CloverParams>\
163  <Mass>0.1</Mass> \
164  <clovCoeff>1</clovCoeff> \
165  <AnisoParam> \
166  <anisoP>false</anisoP> \
167  <t_dir>3</t_dir> \
168  <xi_0>1</xi_0> \
169  <nu>1</nu> \
170  </AnisoParam>\
171  </CloverParams>\
172  <RsdTarget>1.0e-8</RsdTarget>\
173  <Delta>1.0e-1</Delta>\
174  <Pipeline>0</Pipeline>\
175  <MaxIter>500</MaxIter>\
176  <SolverType>BICGSTAB</SolverType> \
177  <RsdToleranceFactor>100.0</RsdToleranceFactor>\
178  <AntiPeriodicT>true</AntiPeriodicT>\
179  <Verbose>true</Verbose>\
180  <AsymmetricLinop>false</AsymmetricLinop>\
181  <CudaReconstruct>RECONS_12</CudaReconstruct>\
182  <CudaSloppyPrecision>SINGLE</CudaSloppyPrecision>\
183  <CudaSloppyReconstruct>RECONS_12</CudaSloppyReconstruct>\
184  <AxialGaugeFix>false</AxialGaugeFix>\
185  <AutotuneDslash>true</AutotuneDslash>\
186  <SolutionCheckP>true</SolutionCheckP>\
187  </InvertParam>\
188  </Param>";
189 
190 std::string inv_param_quda_multigrid_xml = \
191  "<?xml version='1.0'?> \
192  <Param> \
193  <InvertParam>\
194  <invType>QUDA_MULTIGRID_CLOVER_INVERTER</invType>\
195  <CloverParams>\
196  <Mass>0.1</Mass> \
197  <clovCoeff>1</clovCoeff> \
198  <AnisoParam> \
199  <anisoP>false</anisoP> \
200  <t_dir>3</t_dir> \
201  <xi_0>1</xi_0> \
202  <nu>1</nu> \
203  </AnisoParam>\
204  </CloverParams>\
205  <RsdTarget>1.0e-8</RsdTarget> \
206  <Delta>1.0e-1</Delta>\
207  <Pipeline>4</Pipeline> \
208  <MaxIter>500</MaxIter> \
209  <RsdToleranceFactor>100.0</RsdToleranceFactor>\
210  <AntiPeriodicT>true</AntiPeriodicT>\
211  <SolverType>GCR</SolverType>\
212  <Verbose>false</Verbose>\
213  <AsymmetricLinop>false</AsymmetricLinop>\
214  <CudaReconstruct>RECONS_12</CudaReconstruct>\
215  <CudaSloppyPrecision>SINGLE</CudaSloppyPrecision>\
216  <CudaSloppyReconstruct>RECONS_12</CudaSloppyReconstruct>\
217  <AxialGaugeFix>false</AxialGaugeFix>\
218  <AutotuneDslash>true</AutotuneDslash>\
219  <MULTIGRIDParams>\
220  <Verbosity>true</Verbosity>\
221  <Precision>HALF</Precision>\
222  <Reconstruct>RECONS_12</Reconstruct>\
223  <Blocking>\
224  <elem>2 2 2 4</elem>\
225  </Blocking>\
226  <CoarseSolverType>\
227  <elem>CA_GCR</elem>\
228  </CoarseSolverType>\
229  <CoarseResidual>1.0e-1</CoarseResidual>\
230  <MaxCoarseIterations>12</MaxCoarseIterations>\
231  <RelaxationOmegaMG>1.0</RelaxationOmegaMG>\
232  <SmootherType>\
233  <elem>CA_GCR</elem>\
234  </SmootherType>\
235  <SmootherTol>0.25</SmootherTol>\
236  <SmootherSchwarzCycle>1</SmootherSchwarzCycle>\
237  <NullVectors>24</NullVectors>\
238  <Pre-SmootherApplications>0</Pre-SmootherApplications>\
239  <Post-SmootherApplications>8</Post-SmootherApplications>\
240  <SubspaceSolver>\
241  <elem>CG</elem>\
242  </SubspaceSolver>\
243  <RsdTargetSubspaceCreate>5e-06</RsdTargetSubspaceCreate>\
244  <MaxIterSubspaceCreate>500</MaxIterSubspaceCreate>\
245  <MaxIterSubspaceRefresh>500</MaxIterSubspaceRefresh>\
246  <OuterGCRNKrylov>20</OuterGCRNKrylov>\
247  <PrecondGCRNKrylov>10</PrecondGCRNKrylov>\
248  <GenerateNullspace>true</GenerateNullspace>\
249  <CheckMultigridSetup>false</CheckMultigridSetup>\
250  <GenerateAllLevels>true</GenerateAllLevels>\
251  <CycleType>MG_RECURSIVE</CycleType>\
252  <SchwarzType>ADDITIVE_SCHWARZ</SchwarzType>\
253  <RelaxationOmegaOuter>1.0</RelaxationOmegaOuter>\
254  <SetupOnGPU>1</SetupOnGPU>\
255  </MULTIGRIDParams>\
256  <SubspaceID>mg_subspace</SubspaceID>\
257  <SolutionCheckP>true</SolutionCheckP>\
258  </InvertParam>\
259  </Param>";
260 
261 std::string inv_param_quda_bicgstab_asymm_xml = \
262  "<?xml version='1.0'?> \
263  <Param> \
264  <InvertParam>\
265  <invType>QUDA_CLOVER_INVERTER</invType>\
266  <CloverParams>\
267  <Mass>0.1</Mass> \
268  <clovCoeff>1</clovCoeff> \
269  <AnisoParam> \
270  <anisoP>false</anisoP> \
271  <t_dir>3</t_dir> \
272  <xi_0>1</xi_0> \
273  <nu>1</nu> \
274  </AnisoParam>\
275  </CloverParams>\
276  <RsdTarget>1.0e-8</RsdTarget>\
277  <Delta>1.0e-1</Delta>\
278  <Pipeline>0</Pipeline>\
279  <MaxIter>500</MaxIter>\
280  <SolverType>BICGSTAB</SolverType> \
281  <RsdToleranceFactor>100.0</RsdToleranceFactor>\
282  <AntiPeriodicT>true</AntiPeriodicT>\
283  <Verbose>true</Verbose>\
284  <AsymmetricLinop>true</AsymmetricLinop>\
285  <CudaReconstruct>RECONS_12</CudaReconstruct>\
286  <CudaSloppyPrecision>SINGLE</CudaSloppyPrecision>\
287  <CudaSloppyReconstruct>RECONS_12</CudaSloppyReconstruct>\
288  <AxialGaugeFix>false</AxialGaugeFix>\
289  <AutotuneDslash>true</AutotuneDslash>\
290  <SolutionCheckP>true</SolutionCheckP>\
291  </InvertParam>\
292  </Param>";
293 
294 std::string inv_param_quda_multigrid_asymm_xml = \
295  "<?xml version='1.0'?> \
296  <Param> \
297  <InvertParam>\
298  <invType>QUDA_MULTIGRID_CLOVER_INVERTER</invType>\
299  <CloverParams>\
300  <Mass>0.1</Mass> \
301  <clovCoeff>1</clovCoeff> \
302  <AnisoParam> \
303  <anisoP>false</anisoP> \
304  <t_dir>3</t_dir> \
305  <xi_0>1</xi_0> \
306  <nu>1</nu> \
307  </AnisoParam>\
308  </CloverParams>\
309  <RsdTarget>1.0e-8</RsdTarget> \
310  <Delta>1.0e-1</Delta>\
311  <Pipeline>4</Pipeline> \
312  <MaxIter>500</MaxIter> \
313  <RsdToleranceFactor>100.0</RsdToleranceFactor>\
314  <AntiPeriodicT>true</AntiPeriodicT>\
315  <SolverType>GCR</SolverType>\
316  <Verbose>false</Verbose>\
317  <AsymmetricLinop>true</AsymmetricLinop>\
318  <CudaReconstruct>RECONS_12</CudaReconstruct>\
319  <CudaSloppyPrecision>SINGLE</CudaSloppyPrecision>\
320  <CudaSloppyReconstruct>RECONS_12</CudaSloppyReconstruct>\
321  <AxialGaugeFix>false</AxialGaugeFix>\
322  <AutotuneDslash>true</AutotuneDslash>\
323  <MULTIGRIDParams>\
324  <Verbosity>true</Verbosity>\
325  <Precision>HALF</Precision>\
326  <Reconstruct>RECONS_12</Reconstruct>\
327  <Blocking>\
328  <elem>2 2 2 4</elem>\
329  </Blocking>\
330  <CoarseSolverType>\
331  <elem>CA_GCR</elem>\
332  </CoarseSolverType>\
333  <CoarseResidual>1.0e-1</CoarseResidual>\
334  <MaxCoarseIterations>12</MaxCoarseIterations>\
335  <RelaxationOmegaMG>1.0</RelaxationOmegaMG>\
336  <SmootherType>\
337  <elem>CA_GCR</elem>\
338  </SmootherType>\
339  <SmootherTol>0.25</SmootherTol>\
340  <SmootherSchwarzCycle>1</SmootherSchwarzCycle>\
341  <NullVectors>24</NullVectors>\
342  <Pre-SmootherApplications>0</Pre-SmootherApplications>\
343  <Post-SmootherApplications>8</Post-SmootherApplications>\
344  <SubspaceSolver>\
345  <elem>CG</elem>\
346  </SubspaceSolver>\
347  <RsdTargetSubspaceCreate>5e-06</RsdTargetSubspaceCreate>\
348  <MaxIterSubspaceCreate>500</MaxIterSubspaceCreate>\
349  <MaxIterSubspaceRefresh>500</MaxIterSubspaceRefresh>\
350  <OuterGCRNKrylov>20</OuterGCRNKrylov>\
351  <PrecondGCRNKrylov>10</PrecondGCRNKrylov>\
352  <GenerateNullspace>true</GenerateNullspace>\
353  <CheckMultigridSetup>false</CheckMultigridSetup>\
354  <GenerateAllLevels>true</GenerateAllLevels>\
355  <CycleType>MG_RECURSIVE</CycleType>\
356  <SchwarzType>ADDITIVE_SCHWARZ</SchwarzType>\
357  <RelaxationOmegaOuter>1.0</RelaxationOmegaOuter>\
358  <SetupOnGPU>1</SetupOnGPU>\
359  </MULTIGRIDParams>\
360  <SubspaceID>mg_subspace</SubspaceID>\
361  <SolutionCheckP>true</SolutionCheckP>\
362  </InvertParam>\
363  </Param>";
364 #endif
365 
366 
368  "<?xml version='1.0'?> \
369  <Param> \
370  <InvertParam>\
371  <invType>CG_INVERTER</invType>\
372  <RsdCG>1.0e-8 1.0e-8 1.0e-8</RsdCG> \
373  <MaxCG>1000</MaxCG> \
374  </InvertParam>\
375  </Param>";
376 
377 #ifdef BUILD_QUDA
378 std::string inv_param_multi_cg_quda_xml = \
379  "<?xml version='1.0'?> \
380  <Param>\
381  <InvertParam> \
382  <invType>MULTI_CG_QUDA_CLOVER_INVERTER</invType> \
383  <CloverParams> \
384  <Mass>0.1</Mass> \
385  <clovCoeff>1</clovCoeff> \
386  <AnisoParam> \
387  <anisoP>false</anisoP> \
388  <t_dir>3</t_dir> \
389  <xi_0>1</xi_0> \
390  <nu>1</nu> \
391  </AnisoParam> \
392  </CloverParams> \
393  <RsdTarget>1e-08 1e-08 1e-08</RsdTarget> \
394  <Delta>1.0e-1</Delta> \
395  <Pipeline>0</Pipeline> \
396  <MaxIter>50000</MaxIter> \
397  <RsdToleranceFactor>100</RsdToleranceFactor> \
398  <AntiPeriodicT>true</AntiPeriodicT> \
399  <SolverType>CG</SolverType> \
400  <Verbose>false</Verbose> \
401  <CheckShifts>false</CheckShifts> \
402  <AsymmetricLinop>false</AsymmetricLinop> \
403  <CudaReconstruct>RECONS_12</CudaReconstruct> \
404  <CudaSloppyPrecision>HALF</CudaSloppyPrecision> \
405  <CudaSloppyReconstruct>RECONS_12</CudaSloppyReconstruct> \
406  <CudaRefinementPrecision>HALF</CudaRefinementPrecision> \
407  <CudaRefinementReconstruct>RECONS_8</CudaRefinementReconstruct> \
408  <AxialGaugeFix>false</AxialGaugeFix> \
409  <AutotuneDslash>true</AutotuneDslash> \
410  </InvertParam> \
411  </Param>";
412 
413 std::string inv_param_multi_cg_quda_asymm_xml = \
414  "<?xml version='1.0'?> \
415  <Param>\
416  <InvertParam> \
417  <invType>MULTI_CG_QUDA_CLOVER_INVERTER</invType> \
418  <CloverParams> \
419  <Mass>0.1</Mass> \
420  <clovCoeff>1</clovCoeff> \
421  <AnisoParam> \
422  <anisoP>false</anisoP> \
423  <t_dir>3</t_dir> \
424  <xi_0>1</xi_0> \
425  <nu>1</nu> \
426  </AnisoParam> \
427  </CloverParams> \
428  <RsdTarget>1e-08 1e-08 1e-08</RsdTarget> \
429  <Delta>1.0e-1</Delta> \
430  <Pipeline>0</Pipeline> \
431  <MaxIter>50000</MaxIter> \
432  <RsdToleranceFactor>100</RsdToleranceFactor> \
433  <AntiPeriodicT>true</AntiPeriodicT> \
434  <SolverType>CG</SolverType> \
435  <Verbose>false</Verbose> \
436  <CheckShifts>false</CheckShifts> \
437  <AsymmetricLinop>true</AsymmetricLinop> \
438  <CudaReconstruct>RECONS_12</CudaReconstruct> \
439  <CudaSloppyPrecision>HALF</CudaSloppyPrecision> \
440  <CudaSloppyReconstruct>RECONS_12</CudaSloppyReconstruct> \
441  <AxialGaugeFix>false</AxialGaugeFix> \
442  <AutotuneDslash>true</AutotuneDslash> \
443  </InvertParam> \
444  </Param>";
445 #endif
446 }// namespace
447 
448 #endif /* MAINPROGS_TESTS_SYMM_PREC_XML_H_ */
std::string fermact_xml_symm
Definition: symm_prec_xml.h:41
std::string inv_param_multi_cg_xml
std::string fermact_xml_asymm_periodic
Definition: symm_prec_xml.h:92
std::string fermact_xml_asymm
Definition: symm_prec_xml.h:16
std::string inv_param_syssolver_bicgstab_xml
std::string fermact_xml_symm_periodic
std::string fermact_xml_symm_twisted
Definition: symm_prec_xml.h:65
::std::string string
Definition: gtest.h:1979