CHROMA
|
Base class for quadratic matter actions (e.g., fermions) More...
#include <fermact.h>
Public Member Functions | |
virtual | ~FermAct4D () |
Virtual destructor to help with cleanup;. More... | |
virtual LinearOperator< T > * | linOp (Handle< FermState< T, P, Q > > state) const =0 |
Produce a linear operator for this action. More... | |
virtual LinearOperator< T > * | lMdagM (Handle< FermState< T, P, Q > > state) const =0 |
Produce a linear operator M^dag.M for this action. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual MdagMMultiSystemSolverAccumulate< T > * | mInvMdagMAcc (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const =0 |
Return a multi-shift accumulate solver. More... | |
virtual SystemSolver< T > * | qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return quark prop solver, solution of unpreconditioned system. More... | |
virtual | ~FermAct4D () |
Virtual destructor to help with cleanup;. More... | |
virtual LinearOperator< T > * | linOp (Handle< FermState< T, P, Q > > state) const =0 |
Produce a linear operator for this action. More... | |
virtual LinearOperator< T > * | lMdagM (Handle< FermState< T, P, Q > > state) const =0 |
Produce a linear operator M^dag.M for this action. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual SystemSolver< T > * | qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return quark prop solver, solution of unpreconditioned system. More... | |
SystemSolver< LatticeFermion > * | qprop (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const |
Return quark prop solver, solution of unpreconditioned system. More... | |
SystemSolver< LatticeStaggeredFermion > * | qprop (Handle< FermState< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const |
![]() | |
virtual | ~FermionAction () |
Virtual destructor to help with cleanup;. More... | |
virtual FermState< T, P, Q > * | createState (const Q &q) const |
Given links (coordinates Q) create the state needed for the linear operators. More... | |
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. More... | |
virtual const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this action. More... | |
virtual const CreateFermState< T, P, Q > & | getCreateState () const =0 |
Return the factory object that produces a state. More... | |
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. More... | |
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. More... | |
virtual | ~FermionAction () |
Virtual destructor to help with cleanup;. More... | |
virtual FermState< T, P, Q > * | createState (const Q &q) const |
Given links (coordinates Q) create the state needed for the linear operators. More... | |
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. More... | |
virtual const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this action. More... | |
virtual const CreateFermState< T, P, Q > & | getCreateState () const =0 |
Return the factory object that produces a state. More... | |
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. More... | |
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. More... | |
Base class for quadratic matter actions (e.g., fermions)
Supports creation and application for quadratic actions. This is basically a foundry class with additional operations.
The class holds info on the particulars of a bi-local action, but it DOES NOT hold gauge fields. A specific dirac-operator is a functional of the gauge fields, hence when a dirac-operator is needed, it is created.
The FermState<T,P,Q> holds gauge fields and whatever auxilliary info is needed to create a specific dirac operator (linear operator) on some background gauge field.
The FermBC is the type of boundary conditions used for this action
The linop and lmdagm functions create a linear operator on a fixed FermState
The qprop solves for the full linear system undoing all preconditioning. No direct functions are provided (or needed) to call a linear system solver - that is a stand-alone function in the generic programming sense.
|
inlinevirtual |
|
inlinevirtual |
Virtual destructor to help with cleanup;.
Definition at line 181 of file fermact.orig.h.
|
pure virtual |
Return a linear operator solver for this action to solve M*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonFermAct, and Chroma::EvenOddPrecWilsonCoarseFineFermAct.
|
pure virtual |
Return a linear operator solver for this action to solve M*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonFermAct, and Chroma::EvenOddPrecWilsonCoarseFineFermAct.
|
pure virtual |
Return a linear operator solver for this action to solve MdagM*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonFermAct, and Chroma::EvenOddPrecWilsonCoarseFineFermAct.
|
pure virtual |
Return a linear operator solver for this action to solve MdagM*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonFermAct, and Chroma::EvenOddPrecWilsonCoarseFineFermAct.
|
pure virtual |
Produce a linear operator for this action.
Implemented in Chroma::UnprecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::UnprecStaggeredTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecLogDetWilsonTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecConstDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::UnprecStaggeredTypeFermAct< T, P, Q >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecConstDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::UnprecWilsonTypeFermAct< T, P, Q >, Chroma::DiffFermAct4D< T, P, Q >, Chroma::DiffFermAct4D< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecConstDetWilsonTypeFermAct< T, P, Q >, Chroma::UnprecWilsonFermAct, Chroma::UnprecW12FermAct, Chroma::UnprecParWilsonFermAct, Chroma::UnprecHamberWuFermAct, Chroma::UnprecGrapheneFermAct, Chroma::UnprecDWFTransfFermAct, Chroma::UnprecCloverFermAct, Chroma::SymEvenOddPrecCloverFermAct, Chroma::PolyChebFermAct, Chroma::OverlapFermActBase, Chroma::EvenOddPrecWilsonFermAct, Chroma::EvenOddPrecWilsonCoarseFineFermAct, Chroma::EvenOddPrecSLRCFermAct, Chroma::EvenOddPrecSLICFermAct, Chroma::EvenOddPrecParWilsonFermAct, Chroma::EvenOddPrecCloverOrbifoldFermAct, Chroma::EvenOddPrecCloverFermAct, Chroma::EvenOddPrecCloverExtFieldFermAct, Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::SymEvenOddPrecLogDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecConstDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, and Chroma::EvenOddPrecConstDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
|
pure virtual |
Produce a linear operator for this action.
Implemented in Chroma::UnprecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::UnprecStaggeredTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecLogDetWilsonTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecConstDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::UnprecStaggeredTypeFermAct< T, P, Q >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecConstDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::UnprecWilsonTypeFermAct< T, P, Q >, Chroma::DiffFermAct4D< T, P, Q >, Chroma::DiffFermAct4D< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecConstDetWilsonTypeFermAct< T, P, Q >, Chroma::UnprecWilsonFermAct, Chroma::UnprecW12FermAct, Chroma::UnprecParWilsonFermAct, Chroma::UnprecHamberWuFermAct, Chroma::UnprecGrapheneFermAct, Chroma::UnprecDWFTransfFermAct, Chroma::UnprecCloverFermAct, Chroma::SymEvenOddPrecCloverFermAct, Chroma::PolyChebFermAct, Chroma::OverlapFermActBase, Chroma::EvenOddPrecWilsonFermAct, Chroma::EvenOddPrecWilsonCoarseFineFermAct, Chroma::EvenOddPrecSLRCFermAct, Chroma::EvenOddPrecSLICFermAct, Chroma::EvenOddPrecParWilsonFermAct, Chroma::EvenOddPrecCloverOrbifoldFermAct, Chroma::EvenOddPrecCloverFermAct, Chroma::EvenOddPrecCloverExtFieldFermAct, Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::SymEvenOddPrecLogDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecConstDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecLogDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, and Chroma::EvenOddPrecConstDetWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
|
pure virtual |
Produce a linear operator M^dag.M for this action.
Implemented in Chroma::DiffFermAct4D< T, P, Q >, Chroma::DiffFermAct4D< T, P, Q >, Chroma::OverlapFermActBase, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::PolyChebFermAct, and Chroma::OvlapPartFrac4DFermAct.
Referenced by Chroma::InlineEigBndsMdagM::func().
|
pure virtual |
Produce a linear operator M^dag.M for this action.
Implemented in Chroma::DiffFermAct4D< T, P, Q >, Chroma::DiffFermAct4D< T, P, Q >, Chroma::OverlapFermActBase, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::PolyChebFermAct, and Chroma::OvlapPartFrac4DFermAct.
|
pure virtual |
Return a multi-shift linear operator solver for this action to solve (M+shift)*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, and Chroma::StaggeredTypeFermAct< T, P, Q >.
|
pure virtual |
Return a multi-shift linear operator solver for this action to solve (MdagM+shift)*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, and Chroma::WilsonTypeFermAct< T, P, Q >.
|
pure virtual |
Return a multi-shift linear operator solver for this action to solve (MdagM+shift)*psi=chi.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, Chroma::StaggeredTypeFermAct< T, P, Q >, and Chroma::WilsonTypeFermAct< T, P, Q >.
|
pure virtual |
Return a multi-shift accumulate solver.
Implemented in Chroma::WilsonTypeFermAct< T, P, Q >, and Chroma::StaggeredTypeFermAct< T, P, Q >.
|
virtual |
Return quark prop solver, solution of unpreconditioned system.
Implements Chroma::FermionAction< T, P, Q >.
Definition at line 82 of file fermact_qprop.cc.
References Chroma::state.
SystemSolver< LatticeStaggeredFermion > * Chroma::FermAct4D< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >::qprop | ( | Handle< FermState< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > | state, |
const GroupXML_t & | invParam | ||
) | const |
Definition at line 100 of file fermact_qprop.cc.
References Chroma::state.
|
virtual |
Return quark prop solver, solution of unpreconditioned system.
Default implementation provided
Implements Chroma::FermionAction< T, P, Q >.
Reimplemented in Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, and Chroma::OverlapFermActBase.
Referenced by Chroma::InlineStaggeredSpectrum::func(), and main().
|
virtual |
Return quark prop solver, solution of unpreconditioned system.
Default implementation provided
Implements Chroma::FermionAction< T, P, Q >.
Reimplemented in Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::SymEvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddStaggeredTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, Chroma::EvenOddPrecWilsonTypeFermAct< T, P, Q >, and Chroma::OverlapFermActBase.