CHROMA
eo3dprec_s_cprec_t_clover_fermact_w.h
Go to the documentation of this file.
1 #ifndef EO3DPREC_S_CPREC_T_CLOVER_FERMACT_W_H
2 #define EO3DPREC_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 EO3DPrecSpaceCentralPrecTimeCloverFermActEnv
16  {
17  extern const std::string name;
18  bool registerAll();
19  }
20 
21  class EO3DPrecSpaceCentralPrecTimeCloverFermAct :
22  public EO3DPrecSpaceCentralPrecTimeConstDetWilsonTypeFermAct<
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  ~EO3DPrecSpaceCentralPrecTimeCloverFermAct(){}
34 
35  //! General Constructor
36  EO3DPrecSpaceCentralPrecTimeCloverFermAct( Handle< CreateFermState<T,P,Q> > cfs_,
37  const Real& Mass_,
38  const AnisoParam_t& aniso_) : cfs(cfs_) {
39  param.Mass = Mass_;
40  param.anisoParam = aniso_;
41  }
42 
43  //! Construct from Params
44  EO3DPrecSpaceCentralPrecTimeCloverFermAct( Handle< CreateFermState<T,P,Q> > cfs_,
45  const CloverFermActParams& param_ ) : cfs(cfs_), param(param_) {}
46 
47  // Copy Constructor
48  EO3DPrecSpaceCentralPrecTimeCloverFermAct( const EO3DPrecSpaceCentralPrecTimeCloverFermAct& a) :
49  cfs(a.cfs), param(a.param) {}
50 
51  //! Assignment
52  EO3DPrecSpaceCentralPrecTimeCloverFermAct& operator=(const EO3DPrecSpaceCentralPrecTimeCloverFermAct& a)
53  {
54  cfs = a.cfs;
55  param = a.param;
56  return *this;
57  }
58 
59  //! Produce a linear Operator for this action
60  EO3DPrecSpaceCentralPrecTimeLinearOperator<T,P,Q>* linOp( Handle< FermState<T,P,Q> > state) const;
61 
62  //! Produce the gamma_5 hermitian operator H_w
63  LinearOperator<T>* hermitianLinOp(Handle< FermState<T,P,Q> > state) const
64  {
65  return new lgherm<T>(linOp(state));
66  }
67 
68  protected:
69  //! Return the fermion create state object for this action
70  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
71 
72  private:
73  EO3DPrecSpaceCentralPrecTimeCloverFermAct(){}
74 
75  private:
76 
77  Handle< CreateFermState<T,P,Q> > cfs;
78  CloverFermActParams param;
79  };
80 
81 
82 
83 }
84 
85 #endif
86 #endif
87 #endif
88 
89 #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