7 #ifndef __stagtype_fermact_s_h__
8 #define __stagtype_fermact_s_h__
22 template<
typename T,
typename P,
typename Q>
85 template<
typename T,
typename P,
typename Q>
103 template<
typename T,
typename P,
typename Q>
Base class for quadratic matter actions (e.g., fermions)
Even odd Linear Operator (for staggered like things )
Even-odd preconditioned Staggered-like fermion actions.
virtual SystemSolver< T > * qprop(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return quark prop solver, solution of unpreconditioned system.
virtual EvenOddLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const =0
Override to produce an even-odd prec. linear operator for this action.
virtual ~EvenOddStaggeredTypeFermAct()
Virtual destructor to help with cleanup;.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
SystemSolver disambiguator.
SystemSolver disambiguator.
Staggered-like fermion actions.
virtual LinOpSystemSolver< T > * invLinOp(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a linear operator solver for this action to solve M*psi=chi.
virtual MdagMMultiSystemSolverAccumulate< T > * mInvMdagMAcc(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a multi-shift linear operator solver for this action to solve (MdagM+shift)*psi=chi.
virtual MdagMMultiSystemSolver< T > * mInvMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a multi-shift linear operator solver for this action to solve (MdagM+shift)*psi=chi.
virtual LinOpMultiSystemSolver< T > * mInvLinOp(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a multi-shift linear operator solver for this action to solve (M+shift)*psi=chi.
virtual MdagMSystemSolver< T > * invMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a linear operator solver for this action to solve MdagM*psi=chi.
virtual void quarkProp(typename PropTypeTraits< T >::Type_t &q_sol, XMLWriter &xml_out, const typename PropTypeTraits< T >::Type_t &q_src, Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam, QuarkSpinType quarkSpinType, int &ncg_had) const
Given a complete propagator as a source, this does all the inversions needed.
virtual const Real getQuarkMass() const =0
Return the quark mass.
virtual ~StaggeredTypeFermAct()
Virtual destructor to help with cleanup;.
Unpreconditioned linear operator including derivatives.
Staggered-like fermion actions with derivatives.
virtual UnprecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const =0
Override to produce an even-odd prec. linear operator for this action.
virtual ~UnprecStaggeredTypeFermAct()
Virtual destructor to help with cleanup;.
Class structure for fermion actions.
QuarkSpinType
Quark spin type.
Asqtad Staggered-Dirac operator.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Hold group xml and type id.
SystemSolver disambiguator.
SystemSolver disambiguator.
SystemSolver disambiguator.