CHROMA
stag_fermact_s.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Staggered fermion action
4  */
5 
6 #ifndef __stag_fermact_w_h__
7 #define __stag_fermact_w_h__
8 
9 #include "stagtype_fermact_s.h"
10 
11 
12 namespace Chroma
13 {
14  //! Staggered fermion action
15  /*! \ingroup fermacts
16  *
17  */
18  class StagFermAct : public EvenOddStaggeredTypeFermAct<LatticeStaggeredFermion,
19  multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
20  {
21  public:
22  // Typedefs to save typing
23  typedef LatticeStaggeredFermion T;
24  typedef multi1d<LatticeColorMatrix> P;
25  typedef multi1d<LatticeColorMatrix> Q;
26 
27  //! General FermBC
29  const Real& Mass_) :
30  fbc(fbc_), Mass(Mass_) {}
31 
32  //! Copy constructor
34  fbc(a.fbc), Mass(a.Mass) {}
35 
36  //! Assignment
38  {fbc=a.fbc; Mass=a.Mass; return *this;}
39 
40  //! Return the quark mass
41  const Real getQuarkMass() const {return Mass;}
42 
43  //! Produce a linear operator for this action
45 
46  //! Produce a linear operator M^dag.M for this action
48 
49  //! Destructor is automatic
51 
52  protected:
53  //! Return the fermion BC object for this action
54  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
55 
56  private:
57  StagFermAct() {} //hide default constructor
58 
59  private:
61  Real Mass;
62  };
63 
64 } // End Namespace Chroma
65 
66 
67 #endif
Create a fermion connection state.
Definition: create_state.h:69
Differentiable Linear Operator.
Definition: linearop.h:98
Even odd Linear Operator (for staggered like things )
Definition: eo_linop.h:28
Even-odd preconditioned Staggered-like fermion actions.
Definition: fermact.orig.h:714
Base class for all fermion action boundary conditions.
Definition: fermbc.h:20
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
Staggered fermion action.
StagFermAct(Handle< FermBC< T, P, Q > > fbc_, const Real &Mass_)
General FermBC.
EvenOddLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
~StagFermAct()
Destructor is automatic.
DiffLinearOperator< T, P, Q > * lMdagM(Handle< FermState< T, P, Q > > state) const
Produce a linear operator M^dag.M for this action.
StagFermAct & operator=(const StagFermAct &a)
Assignment.
multi1d< LatticeColorMatrix > P
Handle< FermBC< T, P, Q > > fbc
StagFermAct(const StagFermAct &a)
Copy constructor.
LatticeStaggeredFermion T
multi1d< LatticeColorMatrix > Q
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion BC object for this action.
const Real getQuarkMass() const
Return the quark mass.
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
Staggered-like fermion actions.