CHROMA
unprec_wilson_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_wilson_fermact_w_h__
7 #define __unprec_wilson_fermact_w_h__
8 
12 #include "io/aniso_io.h"
13 
14 
15 namespace Chroma
16 {
17  //! Name and registration
18  namespace UnprecWilsonFermActEnv
19  {
20  extern const std::string name;
21  bool registerAll();
22  }
23 
24 
25  //! Unpreconditioned Wilson fermion action
26  /*! \ingroup fermacts
27  *
28  * Supports creation and application for fermion actions
29  */
30  class UnprecWilsonFermAct : public UnprecWilsonTypeFermAct<LatticeFermion,
31  multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
32  {
33  public:
34  // Typedefs to save typing
35  typedef LatticeFermion T;
36  typedef multi1d<LatticeColorMatrix> P;
37  typedef multi1d<LatticeColorMatrix> Q;
38 
39  //! General FermBC
41  const Real& Mass_) :
42  cfs(cfs_) {param.Mass=Mass_;}
43 
44  //! General FermBC
46  const WilsonFermActParams& param_) :
47  cfs(cfs_), param(param_) {}
48 
49  //! Copy constructor
51  cfs(a.cfs), param(a.param) {}
52 
53  //! Assignment
55  {cfs=a.cfs; param=a.param; return *this;}
56 
57  //! Produce a linear operator for this action
59 
60  //! Produce the gamma_5 hermitian operator H_w
62  {
63  return new lgherm<T>(linOp(state));
64  }
65 
66  //! Destructor is automatic
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  UnprecWilsonFermAct() {} //hide default constructor
75 
76  private:
79  };
80 
81 }
82 
83 #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 linear operator including derivatives.
Definition: linearop.h:185
Unpreconditioned Wilson fermion action.
Handle< CreateFermState< T, P, Q > > cfs
multi1d< LatticeColorMatrix > Q
UnprecWilsonFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const Real &Mass_)
General FermBC.
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion create state object for this action.
UnprecWilsonFermAct(const UnprecWilsonFermAct &a)
Copy constructor.
UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
UnprecWilsonFermAct & operator=(const UnprecWilsonFermAct &a)
Assignment.
UnprecWilsonFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const WilsonFermActParams &param_)
General FermBC.
~UnprecWilsonFermAct()
Destructor is automatic.
LinearOperator< T > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitian operator H_w.
multi1d< LatticeColorMatrix > P
Unpreconditioned Wilson-like fermion actions with derivatives.
Definition: fermact.orig.h:491
Gamma(5) hermitian linear operator.
Definition: lgherm_w.h:22
const std::string name
Name to be used.
bool registerAll()
Register all the factories.
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
::std::string string
Definition: gtest.h:1979
Params for wilson ferm acts.
Wilson-like fermion actions.
Wilson fermion action parameters.