CHROMA
multi_syssolver_mdagm_cg_array.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief Solve a MdagM*psi=chi linear system by multi-shift CG
3  */
4 
7 
9 
10 namespace Chroma
11 {
12 
13  //! CG system solver namespace
14  namespace MdagMMultiSysSolverCGArrayEnv
15  {
16  //! Callback function
18  const std::string& path,
19  Handle< FermState< LatticeFermion, multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > >,
21  {
23  }
24 
25  //! Name to be used
26  const std::string name("CG_INVERTER");
27 
28  //! Local registration flag
29  static bool registered = false;
30 
31  //! Register all the factories
32  bool registerAll()
33  {
34  bool success = true;
35  if (! registered)
36  {
38  registered = true;
39  }
40  return success;
41  }
42  }
43 }
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
Linear Operator to arrays.
Definition: linearop.h:61
Solve a CG system. Here, the operator is NOT assumed to be hermitian.
static T & Instance()
Definition: singleton.h:432
Register MdagM system solvers.
Solve a MdagM*psi=chi linear system by multi-shift CG.
Factory for producing system solvers for MdagM*psi = chi.
static bool registered
Local registration flag.
MdagMMultiSystemSolverArray< LatticeFermion > * createFerm(XMLReader &xml_in, const std::string &path, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > >, Handle< LinearOperatorArray< LatticeFermion > > A)
Callback function.
const std::string name("CG_INVERTER")
Name to be used.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
A(A, psi, r, Ncb, PLUS)
::std::string string
Definition: gtest.h:1979