CHROMA
unprec_one_flavor_ratio_rat_conv_monomial5d_w.cc
Go to the documentation of this file.
1 /*! @file
2  * @brief One-flavor collection of unpreconditioned 5D ferm monomials
3  */
4 
7 
10 
13 
14 namespace Chroma
15 {
16 
17  namespace UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial5DEnv
18  {
19  namespace
20  {
21  //! Callback
23  multi1d<LatticeColorMatrix> >* createMonomial(XMLReader& xml, const std::string& path)
24  {
27  }
28 
29  //! Local registration flag
30  bool registered = false;
31  }
32 
33  const std::string name("ONE_FLAVOR_UNPREC_FERM_RATIO_RAT_CONV_MONOMIAL5D");
34 
35  //! Register all the factories
36  bool registerAll()
37  {
38  bool success = true;
39  if (! registered)
40  {
43  success &= TheMonomialFactory::Instance().registerObject(name, createMonomial);
44  registered = true;
45  }
46  return success;
47  }
48  } //end namespace Unprec OneFlavorWilsonFermRatioRatConvMonomialEnv
49 
50 
51  // Constructor
54  {
55  START_CODE();
56 
57  QDPIO::cout << "Constructor: " << __func__ << std::endl;
58 
61  num_pf = param.num_pf;
62 
63  //*********************************************************************
64  // Fermion action
65  {
66  std::istringstream is(param.numer.fermact.xml);
67  XMLReader fermact_reader(is);
68  QDPIO::cout << "Construct fermion action= " << param.numer.fermact.id << std::endl;
69 
70  WilsonTypeFermAct5D<T,P,Q>* tmp_act =
71  TheWilsonTypeFermAct5DFactory::Instance().createObject(param.numer.fermact.id, fermact_reader, param.numer.fermact.path);
72 
74  dynamic_cast<UnprecWilsonTypeFermAct5D<T,P,Q>*>(tmp_act);
75 
76  // Check success of the downcast
77  if( downcast == 0x0 ) {
78  QDPIO::cerr << "Unable to downcast FermAct to UnprecWilsonTypeFermAct5D in UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial5D()" << std::endl;
79  QDP_abort(1);
80  }
81 
82  fermact_num = downcast;
83  }
84 
85  //*********************************************************************
86  // Action rational approx
87  {
88  std::istringstream is(param.numer.action.ratApprox.xml);
89  XMLReader approx_reader(is);
90  QDPIO::cout << "Construct action rational approx= " << param.numer.action.ratApprox.id << std::endl;
91 
93  param.numer.action.ratApprox.id,
94  approx_reader,
95  param.numer.action.ratApprox.path));
96 
97  (*approx)(spfe_num, sipfe_num);
98  }
99 
100  //*********************************************************************
101  // Force rational approx
102  {
103  std::istringstream is(param.numer.force.ratApprox.xml);
104  XMLReader approx_reader(is);
105  QDPIO::cout << "Construct force rational approx= " << param.numer.force.ratApprox.id << std::endl;
106 
108  param.numer.force.ratApprox.id,
109  approx_reader,
110  param.numer.force.ratApprox.path));
111 
112  RemezCoeff_t fipfe_num; // discard
113  (*approx)(fpfe_num, fipfe_num);
114  }
115  //*********************************************************************
116 
117  //*********************************************************************
118  // Fermion action
119  {
120  std::istringstream is(param.denom.fermact.xml);
121  XMLReader fermact_reader(is);
122  QDPIO::cout << "Construct fermion action= " << param.denom.fermact.id << std::endl;
123 
124  WilsonTypeFermAct5D<T,P,Q>* tmp_act =
125  TheWilsonTypeFermAct5DFactory::Instance().createObject(param.denom.fermact.id, fermact_reader, param.denom.fermact.path);
126 
128  dynamic_cast<UnprecWilsonTypeFermAct5D<T,P,Q>*>(tmp_act);
129 
130  // Check success of the downcast
131  if( downcast == 0x0 ) {
132  QDPIO::cerr << "Unable to downcast FermAct to UnprecWilsonTypeFermAct5D in UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial5D()" << std::endl;
133  QDP_abort(1);
134  }
135 
136  fermact_den = downcast;
137  }
138  //*********************************************************************
139 
140  QDPIO::cout << "Finished constructing: " << __func__ << std::endl;
141 
142  END_CODE();
143  }
144 
145 } //end namespace Chroma
Class for counted reference semantics.
Definition: handle.h:33
An abstract monomial class, for inexact algorithms.
Definition: abs_monomial.h:43
static T & Instance()
Definition: singleton.h:432
Unpreconditioned Wilson-like fermion actions in extra dims with derivatives.
Definition: fermact.orig.h:571
Wilson-like fermion actions.
Definition: fermact.orig.h:403
Fermion action factories.
All Wilson-type fermion actions.
Monomial factories.
static bool registered
Local registration flag.
Monomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createMonomial(XMLReader &xml, const std::string &path)
Callback function for the factory.
bool registerAll()
Register all the factories.
const std::string name("ONE_FLAVOR_UNPREC_FERM_RATIO_RAT_CONV_MONOMIAL5D")
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
START_CODE()
::std::string string
Definition: gtest.h:1979
Rational approximation aggregator.
Rational approximation factories.
GroupXML_t fermact
Definition: comp_approx.h:53
GroupXML_t fermact
Definition: comp_approx.h:36
TermApprox_t action
Definition: comp_approx.h:37
TermApprox_t force
Definition: comp_approx.h:38
Convenient structure to package Remez coeffs.
Definition: remez_coeff.h:19
GroupXML_t invParam
Definition: comp_approx.h:21
GroupXML_t ratApprox
Definition: comp_approx.h:20
One-flavor collection of unpreconditioned 5D ferm monomials.