CHROMA
|
Base class for unpreconditioned domain-wall-like fermion actions. More...
#include <eoprec_dwf_fermact_base_array_w.h>
Public Member Functions | |
virtual Real | getQuarkMass () const =0 |
Return the quark mass. More... | |
virtual UnprecDWLikeLinOpBaseArray< T, P, Q > * | unprecLinOp (Handle< FermState< T, P, Q > > state, const Real &m_q) const =0 |
Produce an unpreconditioned linear operator for this action with arbitrary quark mass. More... | |
virtual EvenOddPrecDWLikeLinOpBaseArray< T, P, Q > * | precLinOp (Handle< FermState< T, P, Q > > state, const Real &m_q) const =0 |
Produce an even-odd preconditioned linear operator for this action with arbitrary quark mass. More... | |
virtual EvenOddPrecDWLikeLinOpBaseArray< T, P, Q > * | linOp (Handle< FermState< T, P, Q > > state) const |
Override to produce a DWF-link even-odd prec. linear operator for this action. More... | |
virtual EvenOddPrecDWLikeLinOpBaseArray< T, P, Q > * | linOpPV (Handle< FermState< T, P, Q > > state) const |
Override to produce a DWF-link even-odd prec. Pauli-Villars linear operator for this action. More... | |
virtual LinearOperatorArray< T > * | hermitianLinOp (Handle< FermState< T, P, Q > > state) const |
Produce a hermitian version of the linear operator. More... | |
virtual LinearOperator< T > * | linOp4D (Handle< FermState< T, P, Q > > state, const Real &m_q, const GroupXML_t &invParam) const |
Produce an unpreconditioned linear operator projecting 5D to 4D (the inverse of qprop below) More... | |
virtual LinearOperator< T > * | DeltaLs (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Produce a DeltaLs = 1-epsilon^2(H) operator. More... | |
SystemSolver< T > * | qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Define quark propagator routine for 4D fermions. More... | |
void | Dminus (T &chi, const T &psi, Handle< FermState< T, P, Q > > state, enum PlusMinus isign, int s5) const |
Apply the Dminus operator on a fermion. More... | |
SystemSolver< LF > * | qprop (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Public Member Functions inherited from Chroma::EvenOddPrecConstDetWilsonTypeFermAct5D< T, P, Q > | |
virtual | ~EvenOddPrecConstDetWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~EvenOddPrecConstDetWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
Public Member Functions inherited from Chroma::EvenOddPrecWilsonTypeFermAct5D< T, P, Q > | |
virtual | ~EvenOddPrecWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual SystemSolverArray< T > * | qpropT (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return quark prop solver, solution of unpreconditioned system. More... | |
virtual | ~EvenOddPrecWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual SystemSolverArray< T > * | qpropT (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return quark prop solver, solution of unpreconditioned system. More... | |
SystemSolverArray< LF > * | qpropT (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Propagator of a generic even-odd preconditioned fermion linear operator. More... | |
Public Member Functions inherited from Chroma::WilsonTypeFermAct5D< T, P, Q > | |
virtual | ~WilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual DiffLinearOperatorArray< T, P, Q > * | lMdagM (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator M^dag.M for this action. More... | |
virtual LinOpSystemSolverArray< 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 MdagMSystemSolverArray< 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 LinOpSystemSolverArray< T > * | invLinOpPV (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve PV*psi=chi. More... | |
virtual MdagMSystemSolverArray< T > * | invMdagMPV (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve PV^dag*PV*psi=chi. More... | |
virtual MdagMMultiSystemSolverArray< 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 MdagMMultiSystemSolverArray< T > * | mInvMdagMPV (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a multi-shift linear operator solver for this action to solve (PV^dag*PV+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 | ~WilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual DiffLinearOperatorArray< T, P, Q > * | lMdagM (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator M^dag.M for this action. More... | |
virtual LinOpSystemSolverArray< 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 MdagMSystemSolverArray< 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 LinOpSystemSolverArray< T > * | invLinOpPV (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve PV*psi=chi. More... | |
virtual MdagMSystemSolverArray< T > * | invMdagMPV (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve PV^dag*PV*psi=chi. More... | |
virtual MdagMMultiSystemSolverArray< 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 MdagMMultiSystemSolverAccumulateArray< 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. More... | |
virtual MdagMMultiSystemSolverArray< T > * | mInvMdagMPV (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 MdagMMultiSystemSolverAccumulateArray< T > * | mInvMdagMPVAcc (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return a multi-shift linear operator solver for this action to solve (PV^dag*PV+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... | |
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... | |
LinOpSystemSolverArray< LF > * | invLinOp (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
MdagMSystemSolverArray< 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... | |
LinOpSystemSolverArray< LF > * | invLinOpPV (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
MdagMSystemSolverArray< LF > * | invMdagMPV (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const |
Return a linear operator solver for this action to solve PV^dag*PV*psi=chi. More... | |
MdagMMultiSystemSolverArray< 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... | |
MdagMMultiSystemSolverAccumulateArray< 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... | |
MdagMMultiSystemSolverArray< LF > * | mInvMdagMPV (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... | |
MdagMMultiSystemSolverAccumulateArray< LF > * | mInvMdagMPVAcc (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... | |
Public Member Functions inherited from Chroma::DiffFermAct5D< T, P, Q > | |
virtual | ~DiffFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~DiffFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
Public Member Functions inherited from Chroma::FermAct5D< T, P, Q > | |
virtual | ~FermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual int | size () const =0 |
Expected length of array index. More... | |
virtual | ~FermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual int | size () const =0 |
Expected length of array index. More... | |
SystemSolverArray< LatticeFermion > * | qpropT (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const |
Public Member Functions inherited from Chroma::FermionAction< T, P, Q > | |
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, 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, 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 unpreconditioned domain-wall-like fermion actions.
Unprecondition domain-wall fermion action. The conventions used here are specified in Phys.Rev.D63:094505,2001 (hep-lat/0005002).
Definition at line 25 of file eoprec_dwf_fermact_base_array_w.h.
|
inlinevirtual |
Produce a DeltaLs = 1-epsilon^2(H) operator.
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 84 of file eoprec_dwf_fermact_base_array_w.h.
References Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp4D(), and Chroma::state.
|
inline |
Apply the Dminus operator on a fermion.
Slightly more than a convenience function, it avoids specifying the type of the linOp. Used in the dwf_quarkProp routine.
Definition at line 102 of file eoprec_dwf_fermact_base_array_w.h.
References Chroma::A(), Chroma::chi(), Chroma::isign, Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp(), Chroma::psi, and Chroma::state.
|
pure virtual |
Return the quark mass.
Implements Chroma::FermAct5D< T, P, Q >.
Implemented in Chroma::EvenOddPrecZoloNEFFermActArray, Chroma::EvenOddPrecOvDWFermActArray, Chroma::EvenOddPrecNEFFermActArray, Chroma::EvenOddPrecKNOFermActArray, and Chroma::EvenOddPrecDWFermActArray.
Referenced by Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp().
|
inlinevirtual |
Produce a hermitian version of the linear operator.
This code is generic
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 55 of file eoprec_dwf_fermact_base_array_w.h.
|
inlinevirtual |
Override to produce a DWF-link even-odd prec. linear operator for this action.
Covariant return rule - override base class function
Implements Chroma::EvenOddPrecConstDetWilsonTypeFermAct5D< T, P, Q >.
Definition at line 41 of file eoprec_dwf_fermact_base_array_w.h.
References Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::getQuarkMass(), Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::precLinOp(), and Chroma::state.
Referenced by Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::Dminus(), and main().
|
inlinevirtual |
Produce an unpreconditioned linear operator projecting 5D to 4D (the inverse of qprop below)
Use the fact that linOp4D(m_q) = [P^{-1} (D^{(5)}(1))^{-1} D^{(5)}(m_q) P]_{11}
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 71 of file eoprec_dwf_fermact_base_array_w.h.
References Chroma::GroupXML_t::path, Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::precLinOp(), Chroma::state, and Chroma::GroupXML_t::xml.
Referenced by Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::DeltaLs().
|
inlinevirtual |
Override to produce a DWF-link even-odd prec. Pauli-Villars linear operator for this action.
Covariant return rule - override base class function
Implements Chroma::EvenOddPrecConstDetWilsonTypeFermAct5D< T, P, Q >.
Definition at line 48 of file eoprec_dwf_fermact_base_array_w.h.
References Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::precLinOp(), and Chroma::state.
|
pure virtual |
Produce an even-odd preconditioned linear operator for this action with arbitrary quark mass.
Implemented in Chroma::EvenOddPrecZoloNEFFermActArray, Chroma::EvenOddPrecOvDWFermActArray, Chroma::EvenOddPrecNEFFermActArray, Chroma::EvenOddPrecKNOFermActArray, and Chroma::EvenOddPrecDWFermActArray.
Referenced by Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp(), Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp4D(), and Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOpPV().
SystemSolver< LF > * Chroma::EvenOddPrecDWFermActBaseArray< LF, LCM, LCM >::qprop | ( | Handle< FermState< LF, LCM, LCM > > | state, |
const GroupXML_t & | invParam | ||
) | const |
Definition at line 116 of file dwf_fermact_qprop_array_w.cc.
References Chroma::state.
|
virtual |
Define quark propagator routine for 4D fermions.
Default implementation provided
Implements Chroma::FermionAction< T, P, Q >.
Referenced by main().
|
pure virtual |
Produce an unpreconditioned linear operator for this action with arbitrary quark mass.
Implemented in Chroma::EvenOddPrecZoloNEFFermActArray, Chroma::EvenOddPrecOvDWFermActArray, Chroma::EvenOddPrecNEFFermActArray, Chroma::EvenOddPrecKNOFermActArray, and Chroma::EvenOddPrecDWFermActArray.