CHROMA
syssolver_linop_factory.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Factory for solving M*psi=chi where M is not hermitian or pos. def.
4  */
5 
6 #ifndef __syssolver_linop_factory_h__
7 #define __syssolver_linop_factory_h__
8 
9 #include "chromabase.h"
10 #include "handle.h"
11 #include "state.h"
12 #include "singleton.h"
13 #include "typelist.h"
14 #include "objfactory.h"
16 
17 namespace Chroma
18 {
19  namespace {
20 
21  typedef Handle< FermState< LatticeFermion, multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > > FSHandle;
22 
23  typedef Handle< FermState< LatticeFermionF, multi1d<LatticeColorMatrixF>, multi1d<LatticeColorMatrixF> > > FSHandleF;
24 
25  typedef Handle< FermState< LatticeFermionD, multi1d<LatticeColorMatrixD>, multi1d<LatticeColorMatrixD> > > FSHandleD;
26  }
27  //! LinOp system solver factory (foundry)
28  /*! @ingroup invert */
29  typedef SingletonHolder<
30  ObjectFactory<LinOpSystemSolver<LatticeFermion>,
32  TYPELIST_4(XMLReader&, const std::string&, FSHandle, Handle< LinearOperator<LatticeFermion> >),
33  LinOpSystemSolver<LatticeFermion>* (*)(XMLReader&,
34  const std::string&,
35 
36  FSHandle,
37  Handle< LinearOperator<LatticeFermion> >),
38  StringFactoryError> >
40 
41  typedef SingletonHolder<
45  LinOpSystemSolver<LatticeFermionF>* (*)(XMLReader&,
46  const std::string&,
47 
48  FSHandleF,
52 
53  typedef SingletonHolder<
57  LinOpSystemSolver<LatticeFermionD>* (*)(XMLReader&,
58  const std::string&,
59 
60  FSHandleD,
64 
65 
66  //! LinOp system solver factory (foundry)
67  /*! @ingroup invert */
68  typedef SingletonHolder<
73  const std::string&,
74  FSHandle,
78 
79 
80 
81  //! LinOp system solver factory (foundry)
82  /*! @ingroup invert */
83  typedef SingletonHolder<
88  const std::string&,
92 
93 
94 }
95 
96 
97 #endif
Primary include file for CHROMA library code.
Class for counted reference semantics.
Definition: handle.h:33
SystemSolver disambiguator.
Linear Operator to arrays.
Definition: linearop.h:61
Object factory class.
Definition: objfactory.h:82
SingletonHolder< ObjectFactory< LinOpSystemSolver< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperator< LatticeFermion > >), LinOpSystemSolver< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperator< LatticeFermion > >), StringFactoryError > > TheLinOpFermSystemSolverFactory
LinOp system solver factory (foundry)
SingletonHolder< ObjectFactory< LinOpSystemSolver< LatticeStaggeredFermion >, std::string, TYPELIST_3(XMLReader &, const std::string &, Handle< LinearOperator< LatticeStaggeredFermion > >), LinOpSystemSolver< LatticeStaggeredFermion > *(*)(XMLReader &, const std::string &, Handle< LinearOperator< LatticeStaggeredFermion > >), StringFactoryError > > TheLinOpStagFermSystemSolverFactory
LinOp system solver factory (foundry)
SingletonHolder< ObjectFactory< LinOpSystemSolverArray< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), LinOpSystemSolverArray< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), StringFactoryError > > TheLinOpFermSystemSolverArrayFactory
LinOp system solver factory (foundry)
Class for counted reference semantics.
Handle< FermState< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > > > FSHandleF
Handle< FermState< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > > > FSHandleD
Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > FSHandle
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
SingletonHolder< ObjectFactory< LinOpSystemSolver< LatticeFermionF >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandleF, Handle< LinearOperator< LatticeFermionF > >), LinOpSystemSolver< LatticeFermionF > *(*)(XMLReader &, const std::string &, FSHandleF, Handle< LinearOperator< LatticeFermionF > >), StringFactoryError > > TheLinOpFFermSystemSolverFactory
SingletonHolder< ObjectFactory< LinOpSystemSolver< LatticeFermionD >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandleD, Handle< LinearOperator< LatticeFermionD > >), LinOpSystemSolver< LatticeFermionD > *(*)(XMLReader &, const std::string &, FSHandleD, Handle< LinearOperator< LatticeFermionD > >), StringFactoryError > > TheLinOpDFermSystemSolverFactory
::std::string string
Definition: gtest.h:1979
Factory class for objects from XML input.
Singleton support.
Support class for fermion actions and linear operators.
Disambiguator for LinOp system solvers.
Typelist support.
#define TYPELIST_3(T1, T2, T3)
Definition: typelist.h:45
#define TYPELIST_4(T1, T2, T3, T4)
Definition: typelist.h:47