7 #ifndef __ovlap_partfrac4d_fermact_w_h__
8 #define __ovlap_partfrac4d_fermact_w_h__
21 namespace OvlapPartFrac4DFermActEnv
79 typedef LatticeFermion
T;
80 typedef multi1d<LatticeColorMatrix>
P;
81 typedef multi1d<LatticeColorMatrix>
Q;
109 XMLReader& state_info_xml,
125 const Real& m_q)
const;
170 void init(
int& numroot,
173 multi1d<Real>& rootQ,
175 multi1d<Real>& EigValFunc,
182 multi1d<Real>& rootQ,
184 multi1d<Real>& EigValFunc,
Create a fermion connection state.
Differentiable Linear Operator.
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Base class for unpreconditioned overlap-like fermion actions.
4D Zolotarev variant of Overlap-Dirac operator
UnprecLinearOperator< T, P, Q > * unprecLinOp(Handle< FermState< T, P, Q > > state, const Real &m_q) const
Produce a linear operator for this action.
const CreateFermState< T, P, Q > & getCreateState() const
Return the factory object that produces a state.
LinearOperator< T > * lgamma5epsHPrecondition(Handle< FermState< T, P, Q > > state) const
Produce a linear operator that gives back gamma_5 eps(H)
OvlapPartFrac4DFermAct * clone() const
Virtual copy constructor.
LinearOperator< T > * linOpPrecondition(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
multi1d< LatticeColorMatrix > P
LinearOperator< T > * lMdagMPrecondition(Handle< FermState< T, P, Q > > state) const
Produce a linear operator M^dag.M for this action.
DiffLinearOperator< T, P, Q > * lMdagM(Handle< FermState< T, P, Q > > state) const
Produce a linear operator M^dag.M for this action.
Handle< FermBC< T, P, Q > > fbc
Handle< UnprecWilsonTypeFermAct< T, P, Q > > Mact
multi1d< LatticeColorMatrix > Q
OvlapPartFrac4DFermActParams params
void operator=(const OvlapPartFrac4DFermAct &a)
bool isChiral() const
Is the operator Chiral.
LinearOperator< T > * lgamma5epsH(Handle< FermState< T, P, Q > > state) const
Produce a linear operator that gives back gamma_5 eps(H)
Real getQuarkMass() const
Return the quark mass.
OvlapPartFrac4DFermAct()
Partial constructor not allowed.
~OvlapPartFrac4DFermAct()
Destructor is automatic.
Handle< CreateFermState< T, P, Q > > cfs
void init(int &numroot, Real &coeffP, multi1d< Real > &resP, multi1d< Real > &rootQ, int &NEig, multi1d< Real > &EigValFunc, const EigenConnectState &state) const
Helper in construction.
void initPrec(int &numroot, Real &coeffP, multi1d< Real > &resP, multi1d< Real > &rootQ, int &NEig, multi1d< Real > &EigValFunc, const EigenConnectState &state) const
Construct stuff but use RatPolyDegPrec in the polynomial.
EigenConnectState * createState(const multi1d< LatticeColorMatrix > &u, XMLReader &state_info_xml, const std::string &state_info_path) const
Create OverlapFermState<T,P,Q> from XML.
Unpreconditioned linear operator including derivatives.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
OverlapInnerSolverType
OverlapInnerSolver type.
@ OVERLAP_INNER_CG_SINGLE_PASS
bool registerAll()
Register all the factories.
const std::string name
Name to be used.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
static QDP_ColorVector * in
Base class for unpreconditioned overlap-like fermion actions.
Params for overlap ferm acts.
OvlapPartFrac4DFermActParams()
OverlapInnerSolverType inner_solver_type
CoeffType approximation_type
Type of approximation ZOLOTAREV or TANH.
struct Chroma::OvlapPartFrac4DFermActParams::InvParamInner invParamInner
std::string AuxFermActGrp