CHROMA
syssolver_linop_clover_qphix_w.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief Solve a MdagM*psi=chi linear system by CG2
3  */
4 
9 #include "io/aniso_io.h"
10 
11 #include "handle.h"
14 #include "meas/glue/mesplq.h"
15 
16 namespace Chroma
17 {
18  namespace LinOpSysSolverQPhiXCloverEnv
19  {
20 
21  //! Anonymous namespace
22  namespace
23  {
24  //! Name to be used
25  const std::string name("QPHIX_CLOVER_INVERTER");
26 
27  //! Local registration flag
28  bool registered = false;
29  }
30 
31 
32 
33 #ifndef CHROMA_QPHIX_ARCH_QPX
34  // Strictly single precision
36  const std::string& path,
37  Handle< FermState< LatticeFermionF, multi1d<LatticeColorMatrixF>, multi1d<LatticeColorMatrixF> > > state,
38 
40  {
41  return new LinOpSysSolverQPhiXClover<LatticeFermionF, LatticeColorMatrixF>(A, state,SysSolverQPhiXCloverParams(xml_in, path));
42  }
43 #endif
44 
45  // Double precision
47  const std::string& path,
48  Handle< FermState< LatticeFermionD, multi1d<LatticeColorMatrixD>, multi1d<LatticeColorMatrixD> > > state,
49 
51  {
52  return new LinOpSysSolverQPhiXClover<LatticeFermionD, LatticeColorMatrixD>(A, state,SysSolverQPhiXCloverParams(xml_in, path));
53  }
54 
55 
56  // Double precision
58  const std::string& path,
59  Handle< FermState< LatticeFermion, multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > > state,
60 
62  {
63  return new LinOpSysSolverQPhiXClover<LatticeFermion, LatticeColorMatrix>(A, state,SysSolverQPhiXCloverParams(xml_in, path));
64  }
65 
66  //! Register all the factories
67  bool registerAll()
68  {
69  bool success = true;
70  if (! registered)
71  {
72 #ifndef CHROMA_QPHIX_ARCH_QPX
74 #endif
75 
78  registered = true;
79  }
80  return success;
81  }
82  }
83 
84 }
85 
Anisotropy parameters.
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
SystemSolver disambiguator.
static T & Instance()
Definition: singleton.h:432
Class for counted reference semantics.
Wilson Dslash linear operator.
static bool registered
Local registration flag.
const std::string name
Name to be used.
LinOpSystemSolver< LatticeFermionD > * createFermD(XMLReader &xml_in, const std::string &path, Handle< FermState< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > > > state, Handle< LinearOperator< LatticeFermionD > > A)
LinOpSystemSolver< LatticeFermion > * createFerm(XMLReader &xml_in, const std::string &path, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, Handle< LinearOperator< LatticeFermion > > A)
bool registerAll()
Register all the factories.
LinOpSystemSolver< LatticeFermionF > * createFermF(XMLReader &xml_in, const std::string &path, Handle< FermState< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > > > state, Handle< LinearOperator< LatticeFermionF > > A)
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
A(A, psi, r, Ncb, PLUS)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Definition: pbg5p_w.cc:28
::std::string string
Definition: gtest.h:1979
Periodic ferm state and a creator.
Register linop system solvers that solve M*psi=chi.
Solve a M*psi=chi linear system by BiCGStab.
Factory for solving M*psi=chi where M is not hermitian or pos. def.