CHROMA
eoprec_twm_fermact_array_w.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief Even-odd preconditioned Twisted-mass where each flavor is one of two array elements
3  */
4 
5 #include "chromabase.h"
8 
11 
12 namespace Chroma
13 {
14  //! Hooks to register the class with the fermact factory
15  namespace EvenOddPrecTwmFermActArrayEnv
16  {
17  //! Callback function
18  WilsonTypeFermAct5D<LatticeFermion,
19  multi1d<LatticeColorMatrix>,
20  multi1d<LatticeColorMatrix> >* createFermAct5D(XMLReader& xml_in,
21  const std::string& path)
22  {
24  EvenOddPrecTwmFermActArrayParams(xml_in, path));
25  }
26 
27  //! Callback function
28  /*! Differs in return type */
29  FermionAction<LatticeFermion,
30  multi1d<LatticeColorMatrix>,
31  multi1d<LatticeColorMatrix> >* createFermAct(XMLReader& xml_in,
32  const std::string& path)
33  {
34  return createFermAct5D(xml_in, path);
35  }
36 
37  //! Name to be used
38  const std::string name = "TWM";
39 
40  //! Local registration flag
41  static bool registered = false;
42 
43  //! Register all the factories
44  bool registerAll()
45  {
46  bool success = true;
47  if (! registered)
48  {
49  success &= Chroma::TheFermionActionFactory::Instance().registerObject(name, createFermAct);
51  registered = true;
52  }
53  return success;
54  }
55  }
56 
57 
58  //! Read parameters
60  {
61  XMLReader paramtop(xml, path);
62 
63  read(paramtop, "mu_sigma", mu_sigma);
64  read(paramtop, "mu_delta", mu_delta);
65  read(paramtop, "Mass", Mass);
66  }
67 
68  //! Read parameters
69  void read(XMLReader& xml, const std::string& path, EvenOddPrecTwmFermActArrayParams& param)
70  {
72  param = tmp;
73  }
74 
75 
76 
77  //! Produce a linear operator for this action
78  /*!
79  * The operator acts on the odd subset
80  *
81  * \param state gauge field (Read)
82  */
83  EvenOddPrecConstDetLinearOperator<LatticeFermion,
84  multi1d<LatticeColorMatrix>,
85  multi1d<LatticeColorMatrix> >*
87  {
89  }
90 
91 
92  // Return quark prop solver, solution of unpreconditioned system
95  const GroupXML_t& invParam) const
96  {
97  QDP_error_exit("EvenOddPrecTwmFermActArray::qpropT not implemented yet for this action yet\n");
98  return 0;
99  }
100 
101 }
Primary include file for CHROMA library code.
Even-odd preconditioned linear operator.
Even-odd preconditioned Wilson fermion action with parity breaking term.
SystemSolverArray< T > * qpropT(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return quark prop solver, solution of unpreconditioned system.
EvenOddPrecConstDetLinearOperatorArray< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
EvenOddPrecTwmFermActArrayParams param
Even-odd preconditioned Twisted-mass linop where each flavor is one of two array elements.
Support class for fermion actions and linear operators.
Definition: state.h:94
Base class for quadratic matter actions (e.g., fermions)
Definition: fermact.h:53
Class for counted reference semantics.
Definition: handle.h:33
static T & Instance()
Definition: singleton.h:432
Wilson-like fermion actions.
Definition: fermact.orig.h:403
Even-odd preconditioned Twisted-mass where each flavor is one of two array elements.
Even-odd preconditioned Twisted-mass linop where each flavor is one of two array elements.
All ferm create-state method.
Fermion action factories.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
Handle< CreateFermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > reader(XMLReader &xml_in, const std::string &path)
Helper function for the CreateFermState readers.
const std::string name
Name to be used.
FermionAction< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFermAct(XMLReader &xml_in, const std::string &path)
Callback function.
WilsonTypeFermAct5D< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFermAct5D(XMLReader &xml_in, const std::string &path)
Callback function.
bool registerAll()
Register all the factories.
static bool registered
Local registration flag.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
LatticeFermion tmp
Definition: mespbg5p_w.cc:36
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Definition: pbg5p_w.cc:28
::std::string string
Definition: gtest.h:1979
Hold group xml and type id.