CHROMA
ilu2prec_s_cprec_t_clover_fermact_w.h
Go to the documentation of this file.
1 #ifndef ILU2PREC_S_CPREC_T_CLOVER_FERMACT_W_H
2 #define ILU2PREC_S_CPREC_T_CLOVER_FERMACT_W_H
3 
4 #include "qdp_config.h"
5 #if QDP_NS == 4
6 #if QDP_ND == 4
7 #if QDP_NC == 3
8 
10 #include "io/aniso_io.h"
13 
14 namespace Chroma {
15  namespace ILU2PrecSpaceCentralPrecTimeCloverFermActEnv
16  {
17  extern const std::string name;
18  bool registerAll();
19  }
20 
21  class ILU2PrecSpaceCentralPrecTimeCloverFermAct :
22  public ILU2PrecSpaceCentralPrecTimeWilsonTypeFermAct<
23  LatticeFermion,
24  multi1d<LatticeColorMatrix>,
25  multi1d<LatticeColorMatrix> >
26  {
27  public:
28  typedef LatticeFermion T;
29  typedef multi1d<LatticeColorMatrix> P;
30  typedef multi1d<LatticeColorMatrix> Q;
31 
32  //! Destructor is automagic
33  ~ILU2PrecSpaceCentralPrecTimeCloverFermAct(){}
34 
35 
36  //! Construct from Params
37  ILU2PrecSpaceCentralPrecTimeCloverFermAct( Handle< CreateFermState<T,P,Q> > cfs_,
38  const CloverFermActParams& param_ ) : cfs(cfs_), param(param_) {}
39 
40  // Copy Constructor
41  ILU2PrecSpaceCentralPrecTimeCloverFermAct( const ILU2PrecSpaceCentralPrecTimeCloverFermAct& a) :
42  cfs(a.cfs), param(a.param) {}
43 
44  //! Assignment
45  ILU2PrecSpaceCentralPrecTimeCloverFermAct& operator=(const ILU2PrecSpaceCentralPrecTimeCloverFermAct& a)
46  {
47  cfs = a.cfs;
48  param = a.param;
49  return *this;
50  }
51 
52  //! Produce a linear Operator for this action
53  ILU2PrecSpaceCentralPrecTimeLinearOperator<T,P,Q>* linOp( Handle< FermState<T,P,Q> > state) const;
54 
55  //! Produce the gamma_5 hermitian operator H_w
56  LinearOperator<T>* hermitianLinOp(Handle< FermState<T,P,Q> > state) const
57  {
58  return new lgherm<T>(linOp(state));
59  }
60 
61  protected:
62  //! Return the fermion create state object for this action
63  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
64 
65  private:
66  ILU2PrecSpaceCentralPrecTimeCloverFermAct(){}
67 
68  private:
69 
70  Handle< CreateFermState<T,P,Q> > cfs;
71  CloverFermActParams param;
72  };
73 
74 
75 
76 }
77 
78 
79 #endif
80 
81 #endif
82 #endif
83 #endif
Anisotropy parameters.
Parameters for Clover fermion action.
ILUPreconditioned spatial Preconditioned Temporal Wilson like fermion action.
bool registerAll()
Register all the factories.
const std::string name
Name to be used.
multi1d< LatticeColorMatrix > P
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
LinOpSysSolverMGProtoClover::Q Q
LinOpSysSolverMGProtoClover::T T
Complex a
Definition: invbicg.cc:95
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Definition: pbg5p_w.cc:28
::std::string string
Definition: gtest.h:1979