CHROMA
multi_syssolver_mdagm_factory.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Factory for producing system solvers for MdagM*psi = chi
4  */
5 
6 #ifndef __multi_syssolver_mdagm_factory_h__
7 #define __multi_syssolver_mdagm_factory_h__
8 
9 #include "singleton.h"
10 #include "objfactory.h"
11 #include "linearop.h"
12 #include "state.h"
13 
15 
16 namespace Chroma
17 {
18  namespace {
19  typedef Handle< FermState< LatticeFermion, multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > > FSHandle;
20  }
21 
22  //! MdagM system solver factory (foundry)
23  /*! @ingroup invert */
24  typedef SingletonHolder<
25  ObjectFactory<MdagMMultiSystemSolver<LatticeFermion>,
27  TYPELIST_4(XMLReader&, const std::string&, FSHandle, Handle< LinearOperator<LatticeFermion> >),
28  MdagMMultiSystemSolver<LatticeFermion>* (*)(XMLReader&,
29  const std::string&,
30  FSHandle,
31  Handle< LinearOperator<LatticeFermion> >),
32  StringFactoryError> >
34 
35 
36  //! MdagM system solver factory (foundry)
37  /*! @ingroup invert */
38  typedef SingletonHolder<
43  const std::string&,
44  FSHandle,
48 
49 
50  //! MdagM system solver factory (foundry)
51  /*! @ingroup invert */
52  typedef SingletonHolder<
57  const std::string&,
61 
62 }
63 
64 
65 #endif
Class for counted reference semantics.
Definition: handle.h:33
Linear Operator to arrays.
Definition: linearop.h:61
Linear Operator.
Definition: linearop.h:27
Object factory class.
Definition: objfactory.h:82
SingletonHolder< ObjectFactory< MdagMMultiSystemSolver< LatticeStaggeredFermion >, std::string, TYPELIST_3(XMLReader &, const std::string &, Handle< LinearOperator< LatticeStaggeredFermion > >), MdagMMultiSystemSolver< LatticeStaggeredFermion > *(*)(XMLReader &, const std::string &, Handle< LinearOperator< LatticeStaggeredFermion > >), StringFactoryError > > TheMdagMStagFermMultiSystemSolverFactory
MdagM system solver factory (foundry)
SingletonHolder< ObjectFactory< MdagMMultiSystemSolverArray< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), MdagMMultiSystemSolverArray< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), StringFactoryError > > TheMdagMFermMultiSystemSolverArrayFactory
MdagM system solver factory (foundry)
SingletonHolder< ObjectFactory< MdagMMultiSystemSolver< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperator< LatticeFermion > >), MdagMMultiSystemSolver< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperator< LatticeFermion > >), StringFactoryError > > TheMdagMFermMultiSystemSolverFactory
MdagM system solver factory (foundry)
Linear Operators.
Disambiguator for multi-shift MdagM system solvers.
Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > FSHandle
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
Factory class for objects from XML input.
Singleton support.
Support class for fermion actions and linear operators.
SystemSolver disambiguator.
#define TYPELIST_3(T1, T2, T3)
Definition: typelist.h:45
#define TYPELIST_4(T1, T2, T3, T4)
Definition: typelist.h:47