CHROMA
unprec_dwftransf_fermact_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Unpreconditioned Wilson fermion action
4  */
5 
6 #ifndef __unprec_dwftransf_fermact_w_h__
7 #define __unprec_dwftransf_fermact_w_h__
8 
11 #include "io/aniso_io.h"
13 
14 namespace Chroma
15 {
16  //! Name and registration
17  namespace UnprecDWFTransfFermActEnv
18  {
19  extern const std::string name;
20  bool registerAll();
21  }
22 
23 
24  //! Params for wilson ferm acts
26  {
28  UnprecDWFTransfFermActParams(XMLReader& in, const std::string& path);
29 
30  Real Mass;
31  Real b5;
32  Real c5;
34  };
35 
36 
37  // Reader/writers
38  void read(XMLReader& xml, const std::string& path, UnprecDWFTransfFermActParams& param);
39  void write(XMLWriter& xml, const std::string& path, const UnprecDWFTransfFermActParams& param);
40 
41 
42  //! Unpreconditioned DWFTransf fermion action
43  /*! \ingroup fermacts
44  *
45  * Supports creation and application for fermion actions
46  */
47  class UnprecDWFTransfFermAct : public UnprecWilsonTypeFermAct<LatticeFermion,
48  multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
49  {
50  public:
51  // Typedefs to save typing
52  typedef LatticeFermion T;
53  typedef multi1d<LatticeColorMatrix> P;
54  typedef multi1d<LatticeColorMatrix> Q;
55 
56  //! General FermBC
58  const UnprecDWFTransfFermActParams& param_) :
59  cfs(cfs_), param(param_) {}
60 
61  //! Copy constructor
63  cfs(a.cfs), param(a.param) {}
64 
65  //! Produce a linear operator for this action
67 
68  //! Produce the gamma_5 hermitian operator H_w
69  // Actually, this operator is already Hermitian, so just return
70  // linop here... It is just a beastly hack... Maybe gamma5Herm
71  // should just be renamed Herm...
73  {
74  return linOp(state);
75  }
76 
77  //! Destructor is automatic
79 
80  protected:
81  //! Return the fermion BC object for this action
82  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
83 
84  private:
85  UnprecDWFTransfFermAct() {} //hide default constructor
86  //! Hide =
88 
89  private:
92  };
93 
94 }
95 
96 #endif
Anisotropy parameters.
Create a fermion connection state.
Definition: create_state.h:69
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
Linear Operator.
Definition: linearop.h:27
Unpreconditioned DWFTransf fermion action.
~UnprecDWFTransfFermAct()
Destructor is automatic.
Handle< CreateFermState< T, P, Q > > cfs
UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
UnprecDWFTransfFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const UnprecDWFTransfFermActParams &param_)
General FermBC.
multi1d< LatticeColorMatrix > P
LinearOperator< T > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitian operator H_w.
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion BC object for this action.
UnprecDWFTransfFermActParams param
UnprecDWFTransfFermAct(const UnprecDWFTransfFermAct &a)
Copy constructor.
multi1d< LatticeColorMatrix > Q
void operator=(const UnprecDWFTransfFermAct &a)
Hide =.
Unpreconditioned linear operator including derivatives.
Definition: linearop.h:185
Unpreconditioned Wilson-like fermion actions with derivatives.
Definition: fermact.orig.h:491
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
Writer parameters.
bool registerAll()
Register all the factories.
const std::string name
Name to be used.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
Complex a
Definition: invbicg.cc:95
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Definition: pbg5p_w.cc:28
static QDP_ColorVector * in
::std::string string
Definition: gtest.h:1979
Params for CG inverter.
Solve a CG1 system.
Unpreconditioned Wilson fermion linear operator.
Wilson-like fermion actions.