CHROMA
|
Chebyshev Polynomial fermion action. More...
#include <poly_cheb_fermact_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
PolyChebFermAct (Handle< CreateFermState< T, P, Q > > cfs_, const PolyChebFermActParams ¶m_) | |
General FermBC. More... | |
DiffLinearOperator< T, P, Q > * | linOp (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator for this action. More... | |
DiffLinearOperator< T, P, Q > * | lMdagM (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator M^dag.M for this action. More... | |
LinearOperator< T > * | hermitianLinOp (Handle< FermState< T, P, Q > > state) const |
Produce the gamma_5 hermitian operator H_w. More... | |
DiffLinearOperator< T, P, Q > * | polyPrecLinOp (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator for this action. More... | |
PolyLinearOperator< T, P, Q > * | polyLinOp (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator M^dag.M for this action. More... | |
PolyPrecSystemSolver< T > * | invPolyPrec (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve M*psi=chi. More... | |
~PolyChebFermAct () | |
Destructor is automatic. More... | |
![]() | |
virtual | ~PolyWilsonTypeFermAct () |
Virtual destructor to help with cleanup;. More... | |
![]() | |
virtual | ~WilsonTypeFermAct () |
Virtual destructor to help with cleanup;. More... | |
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. More... | |
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. More... | |
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. 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 |
Given a complete propagator as a source, this does all the inversions needed. More... | |
virtual | ~WilsonTypeFermAct () |
Virtual destructor to help with cleanup;. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual MdagMMultiSystemSolverAccumulate< T > * | mInvMdagMAcc (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
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. More... | |
void | quarkProp (LatticePropagator &q_sol, XMLWriter &xml_out, const LatticePropagator &q_src, Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam, QuarkSpinType quarkSpinType, int &ncg_had) const |
Given a complete propagator as a source, this does all the inversions needed. More... | |
LinOpSystemSolver< LF > * | invLinOp (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
MdagMSystemSolver< LF > * | invMdagM (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve MdagM*psi=chi. More... | |
LinOpMultiSystemSolver< LF > * | mInvLinOp (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve (M+shift_i)*psi_i = chi. More... | |
MdagMMultiSystemSolver< LF > * | mInvMdagM (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve (MdagM+shift_i)*psi_i = chi. More... | |
MdagMMultiSystemSolverAccumulate< LF > * | mInvMdagMAcc (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve (MdagM+shift_i)*psi_i = chi. More... | |
![]() | |
virtual | ~DiffFermAct4D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~DiffFermAct4D () |
Virtual destructor to help with cleanup;. More... | |
![]() | |
virtual | ~FermAct4D () |
Virtual destructor to help with cleanup;. 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 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 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 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... | |
Protected Member Functions | |
const CreateFermState< T, P, Q > & | getCreateState () const |
Return the factory object that produces a state. More... | |
PolyChebFermAct () | |
void | operator= (const PolyChebFermAct &a) |
Assignment. More... | |
Private Attributes | |
Handle< CreateFermState< T, P, Q > > | cfs |
PolyChebFermActParams | param |
Handle< WilsonTypeFermAct< T, P, Q > > | fermact |
Chebyshev Polynomial fermion action.
Definition at line 52 of file poly_cheb_fermact_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::PolyChebFermAct::P |
Definition at line 59 of file poly_cheb_fermact_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::PolyChebFermAct::Q |
Definition at line 60 of file poly_cheb_fermact_w.h.
typedef LatticeFermion Chroma::PolyChebFermAct::T |
Definition at line 58 of file poly_cheb_fermact_w.h.
Chroma::PolyChebFermAct::PolyChebFermAct | ( | Handle< CreateFermState< T, P, Q > > | cfs_, |
const PolyChebFermActParams & | param_ | ||
) |
General FermBC.
Definition at line 108 of file poly_cheb_fermact_w.cc.
References Chroma::PolyChebFermActParams::AuxFermAct, fermact, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), param, Chroma::read(), and Chroma::S_f.
|
inline |
Destructor is automatic.
Definition at line 96 of file poly_cheb_fermact_w.h.
|
inlineprotected |
The user will supply the FermState in a derived class
Definition at line 103 of file poly_cheb_fermact_w.h.
|
inlineprotectedvirtual |
Return the factory object that produces a state.
Implements Chroma::FermionAction< T, P, Q >.
Definition at line 100 of file poly_cheb_fermact_w.h.
References cfs.
|
inlinevirtual |
Produce the gamma_5 hermitian operator H_w.
Implements Chroma::WilsonTypeFermAct< T, P, Q >.
Definition at line 79 of file poly_cheb_fermact_w.h.
References fermact, and Chroma::state.
|
virtual |
Return a linear operator solver for this action to solve M*psi=chi.
Default implementation provided
Definition at line 172 of file poly_cheb_fermact_w.cc.
References Chroma::GroupXML_t::id, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::GroupXML_t::path, polyPrecLinOp(), Chroma::state, and Chroma::GroupXML_t::xml.
|
inlinevirtual |
Produce a linear operator for this action.
Implements Chroma::DiffFermAct4D< T, P, Q >.
Definition at line 67 of file poly_cheb_fermact_w.h.
References fermact, and Chroma::state.
|
inlinevirtual |
Produce a linear operator M^dag.M for this action.
Reimplemented from Chroma::WilsonTypeFermAct< T, P, Q >.
Definition at line 73 of file poly_cheb_fermact_w.h.
References fermact, and Chroma::state.
|
inlineprotected |
Assignment.
Definition at line 105 of file poly_cheb_fermact_w.h.
|
virtual |
Produce a linear operator M^dag.M for this action.
Produce a linear operator for this action.
Definition at line 144 of file poly_cheb_fermact_w.cc.
References Chroma::PolyChebFermActParams::PolyParams::degree, fermact, Chroma::PolyChebFermActParams::PolyParams::LowerBound, MdagM, param, Chroma::PolyChebFermActParams::polyParams, Chroma::state, and Chroma::PolyChebFermActParams::PolyParams::UpperBound.
Referenced by polyPrecLinOp().
|
virtual |
Produce a linear operator for this action.
Definition at line 161 of file poly_cheb_fermact_w.cc.
References fermact, polyLinOp(), and Chroma::state.
Referenced by invPolyPrec().
|
private |
fermion state creator
Definition at line 108 of file poly_cheb_fermact_w.h.
Referenced by getCreateState().
|
private |
Definition at line 112 of file poly_cheb_fermact_w.h.
Referenced by hermitianLinOp(), linOp(), lMdagM(), PolyChebFermAct(), polyLinOp(), and polyPrecLinOp().
|
private |
Definition at line 109 of file poly_cheb_fermact_w.h.
Referenced by PolyChebFermAct(), and polyLinOp().