CHROMA
unprec_parwilson_fermact_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Unpreconditioned Wilson fermion action with parity breaking term
4  */
5 
6 #ifndef __unprec_parwilson_fermact_w_h__
7 #define __unprec_parwilson_fermact_w_h__
8 
10 
11 
12 namespace Chroma
13 {
14  //! Name and registration
15  namespace UnprecParWilsonFermActEnv
16  {
17  extern const std::string name;
18  bool registerAll();
19  }
20 
21 
22  //! Params for wilson ferm acts
24  {
26  UnprecParWilsonFermActParams(XMLReader& in, const std::string& path);
27 
28  Real Mass;
29  Real H;
30  };
31 
32 
33  // Reader/writers
34  void read(XMLReader& xml, const std::string& path, UnprecParWilsonFermActParams& param);
35  void write(XMLWriter& xml, const std::string& path, const UnprecParWilsonFermActParams& param);
36 
37 
38  //! Unpreconditioned Wilson fermion action with parity breaking term
39  /*! \ingroup fermacts
40  *
41  * Supports creation and application for fermion actions
42  *
43  * The kernel for Wilson fermions with a parity breaking term is
44  *
45  * M = (d+M) + i*H*gamma_5 - (1/2) D'
46  */
47  class UnprecParWilsonFermAct : public UnprecWilsonTypeFermAct<LatticeFermion,
48  multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
49  {
50  public:
51  // Typedefs to save typing
52  typedef LatticeFermion T;
53  typedef multi1d<LatticeColorMatrix> P;
54  typedef multi1d<LatticeColorMatrix> Q;
55 
56  //! General FermBC
58  const UnprecParWilsonFermActParams& param_) :
59  cfs(cfs_), param(param_) {}
60 
61  //! Copy constructor
63  cfs(a.cfs), param(a.param) {}
64 
65  //! Produce a linear operator for this action
67 
68  //! Produce the gamma_5 hermitin op gamma_5 M
70  {
71  QDP_error_exit("hermitianLinOp not implemented yet for this action\n");
72  return 0;
73  }
74 
75  //! Destructor is automatic
77 
78  protected:
79  //! Return the fermion create state for this action
80  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
81 
82  private:
83  UnprecParWilsonFermAct() {} //hide default constructor
84  void operator=(const UnprecParWilsonFermAct& a) {} // Hide =
85 
86  private:
89  };
90 
91 }
92 
93 
94 #endif
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 with parity breaking term.
UnprecParWilsonFermActParams param
UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
LinearOperator< T > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitin op gamma_5 M.
UnprecParWilsonFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const UnprecParWilsonFermActParams &param_)
General FermBC.
Handle< CreateFermState< T, P, Q > > cfs
multi1d< LatticeColorMatrix > P
multi1d< LatticeColorMatrix > Q
~UnprecParWilsonFermAct()
Destructor is automatic.
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion create state for this action.
void operator=(const UnprecParWilsonFermAct &a)
UnprecParWilsonFermAct(const UnprecParWilsonFermAct &a)
Copy constructor.
Unpreconditioned Wilson-like fermion actions with derivatives.
Definition: fermact.orig.h:491
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
Writer parameters.
const std::string name
Name to be used.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
Complex a
Definition: invbicg.cc:95
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Definition: pbg5p_w.cc:28
static QDP_ColorVector * in
::std::string string
Definition: gtest.h:1979
Wilson-like fermion actions.