CHROMA
unprec_graphene_fermact_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Unpreconditioned Graphene fermion action.
4  *
5  * This formulation follows Borici's variant of Creutz's graphene
6  * fermion construction. Borici's variant is described in
7  * arXiv:0712.4401 and Cruetz's original construction is described
8  * in arXiv:0712.1201
9  */
10 
11 #ifndef __unprec_graphene_fermact_w_h__
12 #define __unprec_graphene_fermact_w_h__
13 
17 #include "io/aniso_io.h"
18 
19 
20 namespace Chroma
21 {
22  //! Name and registration
23  namespace UnprecGrapheneFermActEnv
24  {
25  extern const std::string name;
26  bool registerAll();
27  }
28 
29 
30  //! Unpreconditioned Graphene fermion action
31  /*! \ingroup fermacts
32  *
33  * Supports creation and application for fermion actions
34  */
35  class UnprecGrapheneFermAct : public UnprecWilsonTypeFermAct<LatticeFermion,
36  multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
37  {
38  public:
39  // Typedefs to save typing
40  typedef LatticeFermion T;
41  typedef multi1d<LatticeColorMatrix> P;
42  typedef multi1d<LatticeColorMatrix> Q;
43 
44  //! General FermBC
46  const Real& Mass_) :
47  cfs(cfs_) {param.Mass=Mass_;}
48 
49  //! General FermBC
51  const WilsonFermActParams& param_) :
52  cfs(cfs_), param(param_) {}
53 
54  //! Copy constructor
56  cfs(a.cfs), param(a.param) {}
57 
58  //! Assignment
60  {cfs=a.cfs; param=a.param; return *this;}
61 
62  //! Produce a linear operator for this action
64 
65  //! Produce the gamma_5 hermitian operator H_w
67  {
68  return new lgherm<T>(linOp(state));
69  }
70 
71  //! Destructor is automatic
73 
74  protected:
75  //! Return the fermion create state object for this action
76  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
77 
78  private:
79  UnprecGrapheneFermAct() {} //hide default constructor
80 
81  private:
84  };
85 
86 }
87 
88 #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 Graphene fermion action.
~UnprecGrapheneFermAct()
Destructor is automatic.
UnprecGrapheneFermAct & operator=(const UnprecGrapheneFermAct &a)
Assignment.
Handle< CreateFermState< T, P, Q > > cfs
UnprecGrapheneFermAct(const UnprecGrapheneFermAct &a)
Copy constructor.
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion create state object for this action.
multi1d< LatticeColorMatrix > Q
LinearOperator< T > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitian operator H_w.
UnprecGrapheneFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const WilsonFermActParams &param_)
General FermBC.
multi1d< LatticeColorMatrix > P
UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
UnprecGrapheneFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const Real &Mass_)
General FermBC.
Unpreconditioned linear operator including derivatives.
Definition: linearop.h:185
Unpreconditioned Wilson-like fermion actions with derivatives.
Definition: fermact.orig.h:491
Gamma(5) hermitian linear operator.
Definition: lgherm_w.h:22
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
::std::string string
Definition: gtest.h:1979
Params for wilson ferm acts.
Wilson-like fermion actions.
Wilson fermion action parameters.