CHROMA
unprec_one_flavor_ratio_rat_rat_monomial5d_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! @file
3  * @brief One-flavor collection of unpreconditioned 5D ferm monomials
4  */
5 
6 #ifndef __unprec_one_flavor_ratio_rat_rat_monomial5d_w_h__
7 #define __unprec_one_flavor_ratio_rat_rat_monomial5d_w_h__
8 
12 
13 namespace Chroma
14 {
15 
16  /*! @ingroup monomial */
17  namespace UnprecOneFlavorWilsonTypeFermRatMonomial5DEnv
18  {
19  extern const std::string name;
20  bool registerAll();
21  }
22 
23 
24  //! Wrapper class for 5D 2-flavor unprec ferm monomials
25  /*! @ingroup monomial
26  *
27  * Monomial is expected to be the same for these fermacts
28  */
31  multi1d<LatticeColorMatrix>,
32  multi1d<LatticeColorMatrix>,
33  LatticeFermion>
34  {
35  public:
36  // Typedefs to save typing
37  typedef LatticeFermion T;
38  typedef multi1d<LatticeColorMatrix> P;
39  typedef multi1d<LatticeColorMatrix> Q;
40 
41  // Construct out of a parameter struct. Check against the desired FermAct name
43 
44  protected:
45 
46  //! Accessor for pseudofermion (read only)
47  const multi1d< multi1d<T> >& getPhi(void) const {return phi;}
48 
49  //! mutator for pseudofermion
50  multi1d< multi1d<T> >& getPhi(void) {return phi;}
51 
52  //! Get at fermion action
54  return *fermact_num;
55  }
56 
57  //! Get at fermion action
59  return *fermact_den;
60  }
61 
62  //! Get parameters for the inverter
63  const GroupXML_t& getNumerActionInvParams(void) const {
64  return actionInvParam_num;
65  }
66 
67  //! Get parameters for the inverter
68  const GroupXML_t& getNumerForceInvParams(void) const {
69  return forceInvParam_num;
70  }
71 
72  //! Get parameters for the inverter
73  const GroupXML_t& getDenomActionInvParams(void) const {
74  return actionInvParam_den;
75  }
76 
77  //! Get parameters for the inverter
78  const GroupXML_t& getDenomForceInvParams(void) const {
79  return forceInvParam_den;
80  }
81 
82  //! Return number of roots in used
83  int getNPF() const {return num_pf;}
84 
85  //! Return the partial fraction expansion for the force calc
86  const RemezCoeff_t& getNumerFPFE() const {return fpfe_num;}
87 
88  //! Return the partial fraction expansion for the action calc
89  const RemezCoeff_t& getNumerSPFE() const {return spfe_num;}
90 
91  //! Return the partial fraction expansion for the heat-bath
92  const RemezCoeff_t& getNumerSIPFE() const {return sipfe_num;}
93 
94  //! Return the partial fraction expansion for the force calc
95  const RemezCoeff_t& getDenomFPFE() const {return fpfe_den;}
96 
97  //! Return the partial fraction expansion for the action calc
98  const RemezCoeff_t& getDenomSPFE() const {return spfe_den;}
99 
100  //! Return the partial fraction expansion for the heat-bath
101  const RemezCoeff_t& getDenomSIPFE() const {return sipfe_den;}
102 
103  private:
104  // Hide empty constructor and =
107 
108  // Pseudofermion field phi
109  multi1d< multi1d<T> > phi;
110 
111  // A handle for the UnprecWilsonFermAct
113 
114  // A handle for the UnprecWilsonFermAct
116 
117  // The parameters for the inversion
120 
121  // The parameters for the inversion
124 
125  // Number of nth-roots
126  int num_pf;
127 
128  // Coefficients and roots of partial fractions
132 
133  // Coefficients and roots of partial fractions
137  };
138 
139 
140 } //end namespace chroma
141 
142 
143 
144 #endif
Class for counted reference semantics.
Definition: handle.h:33
Exact 1 flavor unpreconditioned fermact monomial living in extra dimensions.
const GroupXML_t & getDenomActionInvParams(void) const
Get parameters for the inverter.
const GroupXML_t & getDenomForceInvParams(void) const
Get parameters for the inverter.
const GroupXML_t & getNumerForceInvParams(void) const
Get parameters for the inverter.
const RemezCoeff_t & getDenomSPFE() const
Return the partial fraction expansion for the action calc.
const RemezCoeff_t & getNumerFPFE() const
Return the partial fraction expansion for the force calc.
const multi1d< multi1d< T > > & getPhi(void) const
Accessor for pseudofermion (read only)
const RemezCoeff_t & getNumerSPFE() const
Return the partial fraction expansion for the action calc.
const RemezCoeff_t & getDenomSIPFE() const
Return the partial fraction expansion for the heat-bath.
void operator=(const UnprecOneFlavorWilsonTypeFermRatioRatRatMonomial5D &)
const GroupXML_t & getNumerActionInvParams(void) const
Get parameters for the inverter.
const RemezCoeff_t & getNumerSIPFE() const
Return the partial fraction expansion for the heat-bath.
const WilsonTypeFermAct5D< T, P, Q > & getDenomFermAct(void) const
Get at fermion action.
const RemezCoeff_t & getDenomFPFE() const
Return the partial fraction expansion for the force calc.
const WilsonTypeFermAct5D< T, P, Q > & getNumerFermAct(void) const
Get at fermion action.
Wilson-like fermion actions.
Definition: fermact.orig.h:403
Field state.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
One flavor ratio of rational monomials using RHMC.
One-flavor ratio of determinants rational monomial params.
Hold group xml and type id.
Convenient structure to package Remez coeffs.
Definition: remez_coeff.h:19