CHROMA
unprec_w12_fermact_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Unpreconditioned W12 fermion action
4  */
5 
6 #ifndef __unprec_w12_fermact_w_h__
7 #define __unprec_w12_fermact_w_h__
8 
11 #include "io/aniso_io.h"
13 
14 
15 namespace Chroma
16 {
17  //! Name and registration
18  namespace UnprecW12FermActEnv
19  {
20  extern const std::string name;
21  bool registerAll();
22  }
23 
24 
25  //! Unpreconditioned W12 fermion action
26  /*! \ingroup fermacts
27  *
28  * Supports creation and application for fermion actions
29  */
30  class UnprecW12FermAct : public UnprecWilsonTypeFermAct<LatticeFermion,
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 CloverFermActParams& param_) :
42  cfs(cfs_), param(param_) {}
43 
44  //! Copy constructor
46  cfs(a.cfs), param(a.param) {}
47 
48  //! Produce a linear operator for this action
50 
51  //! Produce the gamma_5 hermitian operator H_w
53  {
54  return new lgherm<T>(linOp(state));
55  }
56 
57  //! Destructor is automatic
59 
60  protected:
61  //! Return the fermion create state for this action
62  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
63 
64  private:
65  UnprecW12FermAct() {} //hide default constructor
66  void operator=(const UnprecW12FermAct& a) {} // Hide =
67 
68  private:
71  };
72 
73 }
74 
75 #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 linear operator including derivatives.
Definition: linearop.h:185
Unpreconditioned W12 fermion action.
~UnprecW12FermAct()
Destructor is automatic.
multi1d< LatticeColorMatrix > Q
UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
void operator=(const UnprecW12FermAct &a)
multi1d< LatticeColorMatrix > P
LinearOperator< T > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitian operator H_w.
UnprecW12FermAct(Handle< CreateFermState< T, P, Q > > cfs_, const CloverFermActParams &param_)
General FermBC.
Handle< CreateFermState< T, P, Q > > cfs
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion create state for this action.
UnprecW12FermAct(const UnprecW12FermAct &a)
Copy constructor.
Unpreconditioned Wilson-like fermion actions with derivatives.
Definition: fermact.orig.h:491
Gamma(5) hermitian linear operator.
Definition: lgherm_w.h:22
Parameters for Clover fermion action.
const std::string name
Name to be used.
bool registerAll()
Register all the factories.
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 clover ferm acts.
Wilson-like fermion actions.