CHROMA
unprec_s_cprec_t_wilson_fermact_w.h
Go to the documentation of this file.
1 #ifndef UNPREC_S_CPREC_T_WILSON_FERMACT_W_H
2 #define UNPREC_S_CPREC_T_WILSON_FERMACT_W_H
3 
4 #include "qdp_config.h"
5 
6 #if QDP_NS == 4
7 #if QDP_NC == 3
8 #if QDP_ND == 4
9 
11 #include "io/aniso_io.h"
14 
15 namespace Chroma {
16  namespace UnprecSpaceCentralPrecTimeWilsonFermActEnv
17  {
18  extern const std::string name;
19  bool registerAll();
20  }
21 
22  class UnprecSpaceCentralPrecTimeWilsonFermAct :
23  public UnprecSpaceCentralPrecTimeWilsonTypeFermAct<
24  LatticeFermion,
25  multi1d<LatticeColorMatrix>,
26  multi1d<LatticeColorMatrix> >
27  {
28  public:
29  typedef LatticeFermion T;
30  typedef multi1d<LatticeColorMatrix> P;
31  typedef multi1d<LatticeColorMatrix> Q;
32 
33  //! Destructor is automagic
34  ~UnprecSpaceCentralPrecTimeWilsonFermAct(){}
35 
36  //! General Constructor
37  UnprecSpaceCentralPrecTimeWilsonFermAct( Handle< CreateFermState<T,P,Q> > cfs_,
38  const Real& Mass_,
39  const AnisoParam_t& aniso_) : cfs(cfs_) {
40  param.Mass = Mass_;
41  param.anisoParam = aniso_;
42  }
43 
44  //! Construct from Params
45  UnprecSpaceCentralPrecTimeWilsonFermAct( Handle< CreateFermState<T,P,Q> > cfs_,
46  const WilsonFermActParams& param_ ) : cfs(cfs_), param(param_) {}
47 
48  // Copy Constructor
49  UnprecSpaceCentralPrecTimeWilsonFermAct( const UnprecSpaceCentralPrecTimeWilsonFermAct& a) :
50  cfs(a.cfs), param(a.param) {}
51 
52  //! Assignment
53  UnprecSpaceCentralPrecTimeWilsonFermAct& operator=(const UnprecSpaceCentralPrecTimeWilsonFermAct& a)
54  {
55  cfs = a.cfs;
56  param = a.param;
57  return *this;
58  }
59 
60  //! Produce a linear Operator for this action
61  UnprecSpaceCentralPrecTimeLinearOperator<T,P,Q>* linOp( Handle< FermState<T,P,Q> > state) const;
62 
63  //! Produce the gamma_5 hermitian operator H_w
64  LinearOperator<T>* hermitianLinOp(Handle< FermState<T,P,Q> > state) const
65  {
66  return new lgherm<T>(linOp(state));
67  }
68 
69  protected:
70  //! Return the fermion create state object for this action
71  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
72 
73  private:
74  UnprecSpaceCentralPrecTimeWilsonFermAct(){}
75 
76  private:
77 
78  Handle< CreateFermState<T,P,Q> > cfs;
79  WilsonFermActParams param;
80  };
81 
82 
83 
84 }
85 
86 #endif
87 #endif
88 #endif
89 
90 #endif
Anisotropy parameters.
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
Unpreconditioned spatial Preconditioned Temporal Wilson like fermion action.
Wilson fermion action parameters.