51 template<
typename T,
typename P,
typename Q>
114 int& ncg_had)
const = 0;
142 quarkProp(q_sol, xml_out, q_src,
state, invParam, quarkSpinType, ncg_had);
174 template<
typename T,
typename P,
typename Q>
222 template<
typename T,
typename P,
typename Q>
263 template<
typename T,
typename P,
typename Q>
342 template<
typename T,
typename P,
typename Q>
Primary include file for CHROMA library code.
Create a fermion connection state.
Base class for quadratic matter actions (e.g., fermions)
virtual ~DiffFermAct4D()
Virtual destructor to help with cleanup;.
virtual DiffLinearOperator< T, Q, P > * lMdagM(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator M^dag.M for this action.
virtual DiffLinearOperator< T, Q, P > * linOp(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator for this action.
Base class of quadratic matter actions (e.g., fermions) living in an extra dimension.
virtual DiffLinearOperatorArray< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator for this action.
virtual ~DiffFermAct5D()
Virtual destructor to help with cleanup;.
virtual DiffLinearOperatorArray< T, P, Q > * lMdagM(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator M^dag.M for this action.
virtual DiffLinearOperatorArray< T, P, Q > * linOpPV(Handle< FermState< T, P, Q > > state) const =0
Produce a Pauli-Villars linear operator for this action.
Differentiable Linear Operator.
Differentiable Linear Operator.
Base class for quadratic matter actions (e.g., fermions)
virtual LinearOperator< T > * lMdagM(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator M^dag.M for this action.
virtual LinOpSystemSolver< T > * invLinOp(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a linear operator solver for this action to solve M*psi=chi.
virtual SystemSolver< T > * qprop(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return quark prop solver, solution of unpreconditioned system.
virtual LinOpMultiSystemSolver< T > * mInvLinOp(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift linear operator solver for this action to solve (M+shift)*psi=chi.
virtual MdagMMultiSystemSolver< T > * mInvMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift linear operator solver for this action to solve (MdagM+shift)*psi=chi.
virtual MdagMMultiSystemSolverAccumulate< T > * mInvMdagMAcc(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift accumulate solver.
virtual MdagMSystemSolver< T > * invMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a linear operator solver for this action to solve MdagM*psi=chi.
virtual ~FermAct4D()
Virtual destructor to help with cleanup;.
virtual LinearOperator< T > * linOp(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator for this action.
Base class of quadratic matter actions (e.g., fermions) living in an extra dimension.
virtual MdagMSystemSolverArray< T > * invMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a linear operator solver for this action to solve MdagM*psi=chi.
virtual ~FermAct5D()
Virtual destructor to help with cleanup;.
virtual MdagMMultiSystemSolverAccumulateArray< T > * mInvMdagMPVAcc(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift accumulate solver.
virtual LinOpSystemSolverArray< T > * invLinOp(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a linear operator solver for this action to solve M*psi=chi.
virtual LinearOperatorArray< T > * linOpPV(Handle< FermState< T, P, Q > > state) const =0
Produce a Pauli-Villars linear operator for this action.
virtual LinOpSystemSolverArray< T > * invLinOpPV(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a linear operator solver for this action to solve PV*psi=chi.
virtual MdagMMultiSystemSolverArray< T > * mInvMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift linear operator solver for this action to solve (MdagM+shift)*psi=chi.
virtual MdagMMultiSystemSolverArray< T > * mInvMdagMPV(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift linear operator solver for this action to solve (PV^dag*PV+shift)*psi=chi.
virtual Real getQuarkMass() const =0
Return the quark mass.
virtual int size() const =0
Expected length of array index.
virtual LinearOperatorArray< T > * linOp(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator for this action.
virtual MdagMMultiSystemSolverAccumulateArray< T > * mInvMdagMAcc(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a multi-shift accumulate solver.
virtual MdagMSystemSolverArray< T > * invMdagMPV(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return a linear operator solver for this action to solve PV^dag*PV*psi=chi.
virtual LinearOperatorArray< T > * lMdagM(Handle< FermState< T, P, Q > > state) const =0
Produce a linear operator M^dag.M for this action.
virtual SystemSolverArray< T > * qpropT(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return quark prop solver, solution of unpreconditioned system.
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Base class for quadratic matter actions (e.g., fermions)
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 =0
Given a complete propagator as a source, this does all the inversions needed.
virtual void quarkProp(typename PropTypeTraits< T >::Type_t &q_sol, XMLWriter &xml_out, const typename PropTypeTraits< T >::Type_t &q_src, int t_src, int j_decay, Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam, QuarkSpinType quarkSpinType, bool obsvP, int &ncg_had) const
Given a complete propagator as a source, this does all the inversions needed.
virtual FermState< T, P, Q > * createState(const Q &q, XMLReader &reader, const std::string &path) const
Given links (coordinates Q) create a state with additional info held by the XMLReader.
virtual const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this action.
virtual const CreateFermState< T, P, Q > & getCreateState() const =0
Return the factory object that produces a state.
virtual SystemSolver< T > * qprop(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0
Return quark prop solver, solution of unpreconditioned system.
virtual ~FermionAction()
Virtual destructor to help with cleanup;.
virtual FermState< T, P, Q > * createState(const Q &q) const
Given links (coordinates Q) create the state needed for the linear operators.
Class for counted reference semantics.
SystemSolver disambiguator.
SystemSolver disambiguator.
Linear Operator to arrays.
SystemSolver disambiguator.
SystemSolver disambiguator.
Linear system solvers of arrays.
Create a connection state.
Enum for what spin components of a quark prop to compute.
Fermion action boundary conditions.
QuarkSpinType
Quark spin type.
M^dag*M composition of a linear operator.
Disambiguator for multi-shift linop system solvers.
Disambiguator for multi-shift MdagM system solvers.
Disambiguator for multi-shift MdagM system solvers.
Handle< FermBC< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > reader(XMLReader &xml_in, const std::string &path)
Helper function for the FermionAction readers.
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::Q Q
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Support class for fermion actions and linear operators.
Hold group xml and type id.
SystemSolver disambiguator.
SystemSolver disambiguator.
SystemSolver disambiguator.
SystemSolver disambiguator.
SystemSolver disambiguator.
Disambiguator for LinOp system solvers.
Disambiguator for MdagM system solvers.
Read an XML group as a std::string.