CHROMA
hisq_fermact_s.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Hisq staggered fermion action
4  */
5 
6 #ifndef __hisq_fermact_s_h__
7 #define __hisq_fermact_s_h__
8 
9 #include "stagtype_fermact_s.h"
10 #include "state.h"
14 
15 
16 namespace Chroma
17 {
18  //! Name and registration
19  namespace HisqFermActEnv
20  {
21  extern const std::string name;
22  bool registerAll();
23  }
24 
25 
26  //! Hisq staggered fermion action
27  /*! \ingroup fermacts
28  *
29  */
31  LatticeStaggeredFermion, multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
32  {
33  public:
34  // Typedefs to save typing
35  typedef LatticeStaggeredFermion T;
36  typedef multi1d<LatticeColorMatrix> P;
37  typedef multi1d<LatticeColorMatrix> Q;
38 
39  //! General CreateFermState
41  const HisqFermActParams& p) :
42  cfs(cfs_), param(p) {}
43 
44  //! Copy constructor
46  cfs(a.cfs), param(a.param) {}
47 
48  //! Create state should apply the BC
49  AsqtadConnectStateBase* createState(const Q& u_) const;
50 
51  //! Return the fermion BC object for this action
52  const FermBC<T,P,Q>& getFermBC() const {return cfs->getBC();}
53 
54  //! Produce a linear operator for this action
56 
57  //! Produce a linear operator M^dag.M for this action
59 
60  //! Return quark prop solver, solution of unpreconditioned system
62  const GroupXML_t& invParam) const;
63 
64  //! accessors
65  const Real getQuarkMass() const {return param.Mass;}
66  Real getU0() {return param.u0;}
67 
68  //! Destructor is automatic
70 
71  protected:
72  //! Return the fermion BC object for this action
73  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
74 
75  private:
76  HisqFermAct() {} //hide default constructor
77  void operator=(const HisqFermAct& a) {} // Assignment
78 
79  private:
82  };
83 
84 
85 } // End Namespace Chroma
86 
87 #endif
Asqtad state.
Basic "Connect State" for ASQTAD.
Definition: asqtad_state.h:24
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
Hisq staggered fermion action.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this action.
SystemSolver< T > * qprop(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return quark prop solver, solution of unpreconditioned system.
Definition: hisq_qprop.cc:23
HisqFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const HisqFermActParams &p)
General CreateFermState.
const Real getQuarkMass() const
accessors
void operator=(const HisqFermAct &a)
~HisqFermAct()
Destructor is automatic.
LatticeStaggeredFermion T
Handle< CreateFermState< T, P, Q > > cfs
multi1d< LatticeColorMatrix > Q
HisqFermActParams param
AsqtadConnectStateBase * createState(const Q &u_) const
Create state should apply the BC.
HisqFermAct(const HisqFermAct &a)
Copy constructor.
multi1d< LatticeColorMatrix > P
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion BC object for this action.
Linear system solvers.
Definition: syssolver.h:34
DiffLinearOperator< T, P, Q > * lMdagM(Handle< FermState< T, P, Q > > state_) const
Produce a linear operator M^dag.M for this action.
EvenOddLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state_) const
Produce a linear operator for this action.
Hisq fermion action parameters.
bool registerAll()
Register all the factories.
const std::string name
Name to be used.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
LinOpSysSolverMGProtoClover::Q Q
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
Simple ferm state and a creator.
Staggered-like fermion actions.
Support class for fermion actions and linear operators.
Hold group xml and type id.
Params for hisq ferm acts.