CHROMA
eoprec_clover_orbifold_fermact_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Even-odd preconditioned Clover fermion action with orbifold
4  *
5  * 3D-Orbifold construction follows arXiv:0811.2127
6  */
7 
8 #ifndef __prec_clover_orbifold_fermact_w_h__
9 #define __prec_clover_orbifold_fermact_w_h__
10 
14 
15 namespace Chroma
16 {
17  //! Name and registration
18  /*! \ingroup fermacts */
19  namespace EvenOddPrecCloverOrbifoldFermActEnv
20  {
21  extern const std::string name;
22  bool registerAll();
23  }
24 
25 
26  //! Even-odd preconditioned Clover-Dirac action with orbifold term
27  /*! \ingroup fermacts
28  *
29  * Even-odd preconditioned clover fermion action with orbifold term
30  * Only defined on odd subset.
31  */
32 
34  multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
35  {
36  public:
37  // Typedefs to save typing
38  typedef LatticeFermion T;
39  typedef multi1d<LatticeColorMatrix> P;
40  typedef multi1d<LatticeColorMatrix> Q;
41 
42  //! Partial constructor
44 
45  //! General FermState
47  const CloverFermActParams& param_) :
48  cfs(cfs_), param(param_) {}
49 
50  //! Copy constructor
52  cfs(a.cfs), param(a.param) {}
53 
54  //! Produce a linear operator for this action
56 
57  //! Produce the gamma_5 hermitian operator H_w
59  return new lgherm<LatticeFermion>(linOp(state));
60  }
61 
62  //! Destructor is automatic
64 
65  protected:
66  //! Return the fermion BC object for this action
67  const CreateFermState<T,P,Q>& getCreateState() const {return *cfs;}
68 
69  //! Assignment
71 
72  private:
75  };
76 
77 } // End Namespace Chroma
78 
79 
80 #endif
Create a fermion connection state.
Definition: create_state.h:69
Even-odd preconditioned Clover-Dirac action with orbifold term.
LinearOperator< LatticeFermion > * hermitianLinOp(Handle< FermState< T, P, Q > > state) const
Produce the gamma_5 hermitian operator H_w.
void operator=(const EvenOddPrecCloverOrbifoldFermAct &a)
Assignment.
const CreateFermState< T, P, Q > & getCreateState() const
Return the fermion BC object for this action.
EvenOddPrecCloverOrbifoldFermAct(Handle< CreateFermState< T, P, Q > > cfs_, const CloverFermActParams &param_)
General FermState.
EvenOddPrecCloverOrbifoldFermAct(const EvenOddPrecCloverOrbifoldFermAct &a)
Copy constructor.
EvenOddPrecLogDetLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
Even-odd preconditioned linear operator.
Even-odd preconditioned Wilson-like fermion action, specialised to clover like (gauge dependent diago...
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
Gamma(5) hermitian linear operator.
Definition: lgherm_w.h:22
Parameters for Clover fermion action.
Even-odd const determinant Wilson-like fermact.
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.