CHROMA
eoprec_wilson_fermact_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Even-odd preconditioned Wilson fermion action
4  */
5 
6 #ifndef __prec_wilson_fermact_w_h__
7 #define __prec_wilson_fermact_w_h__
8 
12 
13 namespace Chroma
14 {
15  //! Name and registration
16  /*! \ingroup fermacts */
17  namespace EvenOddPrecWilsonFermActEnv
18  {
19  extern const std::string name;
20  bool registerAll();
21  }
22 
23 
24  //! Even-odd preconditioned Wilson fermion action
25  /*! \ingroup fermacts
26  *
27  * Even-odd preconditioned wilson fermion action.
28  * Only defined on odd subset.
29  */
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 with Anisotropy
46  const WilsonFermActParams& param_) :
47  cfs(cfs_), param(param_) {}
48 
49  //! Copy constructor
51  cfs(a.cfs), param(a.param) {}
52 
53  //! Produce a linear operator for this action
55 
56  //! Produce the gamma_5 hermitian operator H_w
58  {
59  return new lgherm<LatticeFermion>(linOp(state));
60  }
61 
62  //! Return a linear operator solver for this action to solve M*psi=chi
64  const GroupXML_t& invParam) const;
65 
66  //! Return a linear operator solver for this action to solve MdagM*psi=chi
68  const GroupXML_t& invParam) const;
69 
70  //! Destructor is automatic
72 
73  Double getQuarkMass(void) const {
74  return param.Mass;
75  }
76 
77  protected:
78  //! Return the fermion BC object for this action
79  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
80 
81  //! Partial constructor
83  //! Assignment
85 
86  private:
89  };
90 
91 }
92 
93 #endif
Create a fermion connection state.
Definition: create_state.h:69
Even-odd preconditioned linear operator.
Even-odd preconditioned Wilson-like fermion actions specialised to Wilson Like (gauge independent dia...
Even-odd preconditioned Wilson fermion action.
~EvenOddPrecWilsonFermAct()
Destructor is automatic.
void operator=(const EvenOddPrecWilsonFermAct &a)
Assignment.
LinearOperator< T > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitian operator H_w.
EvenOddPrecConstDetLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion BC object for this action.
LinOpSystemSolver< T > * invLinOp(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a linear operator solver for this action to solve M*psi=chi.
multi1d< LatticeColorMatrix > P
EvenOddPrecWilsonFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const Real &Mass_)
General FermBC.
MdagMSystemSolver< T > * invMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a linear operator solver for this action to solve MdagM*psi=chi.
EvenOddPrecWilsonFermAct(const EvenOddPrecWilsonFermAct &a)
Copy constructor.
EvenOddPrecWilsonFermAct()
Partial constructor.
multi1d< LatticeColorMatrix > Q
Handle< CreateFermState< T, P, Q > > cfs
EvenOddPrecWilsonFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const WilsonFermActParams &param_)
General FermBC with Anisotropy.
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
SystemSolver disambiguator.
Linear Operator.
Definition: linearop.h:27
SystemSolver disambiguator.
Gamma(5) hermitian linear operator.
Definition: lgherm_w.h:22
Even-odd const determinant Wilson-like fermact.
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
FloatingPoint< double > Double
Definition: gtest.h:7351
::std::string string
Definition: gtest.h:1979
Hold group xml and type id.
Params for wilson ferm acts.
Wilson fermion action parameters.