CHROMA
|
Base class for unpreconditioned overlap-like fermion actions. More...
#include <overlap_fermact_base_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
virtual OverlapFermActBase * | clone () const =0 |
Virtual copy constructor. More... | |
virtual Real | getQuarkMass () const =0 |
Return the quark mass. More... | |
virtual bool | isChiral () const =0 |
Does this object really satisfy the Ginsparg-Wilson relation? More... | |
virtual UnprecLinearOperator< 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 UnprecLinearOperator< T, P, Q > * | linOp (Handle< FermState< T, P, Q > > state) const |
Override to produce a DWF-link unprec. linear operator for this action. More... | |
virtual DiffLinearOperator< T, P, Q > * | lMdagM (Handle< FermState< T, P, Q > > state) const =0 |
virtual DiffLinearOperator< T, P, Q > * | lMdagM (Handle< FermState< T, P, Q > > state, const Chirality &chirality) const =0 |
virtual LinearOperator< T > * | hermitianLinOp (Handle< FermState< T, P, Q > > state) const |
Produce a hermitian version of the linear operator. More... | |
virtual LinearOperator< T > * | DeltaLs (Handle< FermState< T, P, Q > > state) const |
virtual LinearOperator< T > * | lgamma5epsH (Handle< FermState< T, P, Q > > state) const =0 |
Produce a linear operator that gives back gamma_5 eps(H) More... | |
virtual LinearOperator< T > * | lgamma5epsHPrecondition (Handle< FermState< T, P, Q > > state) const =0 |
Produce a linear operator that gives back gamma_5 eps(H) More... | |
virtual LinearOperator< T > * | linOpPrecondition (Handle< FermState< T, P, Q > > state) const =0 |
virtual LinearOperator< T > * | lMdagMPrecondition (Handle< FermState< T, P, Q > > state) const =0 |
virtual LinearOperator< T > * | lMdagMPrecondition (Handle< FermState< T, P, Q > > state, const Chirality &chirality) const =0 |
SystemSolver< T > * | qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Redefine quark propagator routine for 4D fermions. More... | |
void | multiQprop (multi1d< T > &psi, const multi1d< Real > &masses, Handle< FermState< T, P, Q > > state, const T &chi, const GroupXML_t &invParam, const int n_soln, int &ncg_had) const |
Define a multi mass qprop. More... | |
void | multiQuarkProp (multi1d< LatticePropagator > &q_sol, XMLWriter &xml_out, const LatticePropagator &q_src, Handle< FermState< T, P, Q > > state, const multi1d< Real > &masses, const GroupXML_t &invParam, const int n_soln, int &ncg_had) |
Define a multi mass qprop. More... | |
Public Member Functions inherited from Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
virtual | ~UnprecWilsonTypeFermAct () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~UnprecWilsonTypeFermAct () |
Virtual destructor to help with cleanup;. More... | |
Public Member Functions inherited from Chroma::WilsonTypeFermAct< T, P, Q > | |
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... | |
Public Member Functions inherited from Chroma::DiffFermAct4D< T, P, Q > | |
virtual | ~DiffFermAct4D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~DiffFermAct4D () |
Virtual destructor to help with cleanup;. More... | |
Public Member Functions inherited from Chroma::FermAct4D< T, P, Q > | |
virtual | ~FermAct4D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~FermAct4D () |
Virtual destructor to help with cleanup;. 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 |
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 overlap-like fermion actions.
Unpreconditioned overlap-like fermion action. The conventions used here are specified in some Nucl.Phys.B. article by Edwards,Heller, Narayanan
NOTE: for now we assume the kernel is a fund. rep. fermion type, but that is not necessary
Definition at line 29 of file overlap_fermact_base_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::OverlapFermActBase::P |
Definition at line 36 of file overlap_fermact_base_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::OverlapFermActBase::Q |
Definition at line 37 of file overlap_fermact_base_w.h.
typedef LatticeFermion Chroma::OverlapFermActBase::T |
Definition at line 35 of file overlap_fermact_base_w.h.
|
pure virtual |
|
inlinevirtual |
Definition at line 72 of file overlap_fermact_base_w.h.
References Chroma::state, and unprecLinOp().
|
pure virtual |
Return the quark mass.
Implemented in Chroma::OvlapPartFrac4DFermAct.
Referenced by linOp(), and multiQprop().
|
inlinevirtual |
Produce a hermitian version of the linear operator.
Implements Chroma::WilsonTypeFermAct< T, P, Q >.
Definition at line 67 of file overlap_fermact_base_w.h.
References linOp(), and Chroma::state.
|
pure virtual |
Does this object really satisfy the Ginsparg-Wilson relation?
Implemented in Chroma::OvlapPartFrac4DFermAct.
Referenced by multiQprop().
|
pure virtual |
Produce a linear operator that gives back gamma_5 eps(H)
Implemented in Chroma::OvlapPartFrac4DFermAct.
Referenced by multiQprop().
|
pure virtual |
Produce a linear operator that gives back gamma_5 eps(H)
Implemented in Chroma::OvlapPartFrac4DFermAct.
|
inlinevirtual |
Override to produce a DWF-link unprec. linear operator for this action.
Covariant return rule - override base class function
Definition at line 54 of file overlap_fermact_base_w.h.
References getQuarkMass(), Chroma::state, and unprecLinOp().
Referenced by hermitianLinOp(), Chroma::OvlapPartFrac4DFermAct::lMdagM(), and multiQprop().
|
pure virtual |
Implemented in Chroma::OvlapPartFrac4DFermAct.
|
pure virtual |
Robert's way: Produce a linear operator M^dag.M for this action to be applied
Reimplemented from Chroma::WilsonTypeFermAct< T, P, Q >.
Implemented in Chroma::OvlapPartFrac4DFermAct.
Referenced by multiQprop().
|
pure virtual |
Implemented in Chroma::OvlapPartFrac4DFermAct.
|
pure virtual |
Robert's way: Produce a linear operator M^dag.M for this action to be applied
Implemented in Chroma::OvlapPartFrac4DFermAct.
|
pure virtual |
Implemented in Chroma::OvlapPartFrac4DFermAct.
void Chroma::OverlapFermActBase::multiQprop | ( | multi1d< T > & | psi, |
const multi1d< Real > & | masses, | ||
Handle< FermState< T, P, Q > > | state, | ||
const T & | chi, | ||
const GroupXML_t & | invParam, | ||
const int | n_soln, | ||
int & | ncg_had | ||
) | const |
Define a multi mass qprop.
this should be possible for most 4D operators of the form (1/2)[ (1 + Mass ) + (1 - Mass) gamma_5 psi
Definition at line 387 of file overlap_fermact_base_w.cc.
References Chroma::CH_NONE, Chroma::chi(), getQuarkMass(), Chroma::i, isChiral(), Chroma::isChiralVector(), j, lgamma5epsH(), linOp(), lMdagM(), Chroma::MultiSysSolverCGParams::MaxCG, Chroma::MINUS, Chroma::MInvCG(), Chroma::MInvMR(), Chroma::MInvRelCG(), Chroma::MInvRelSUMR(), Chroma::MInvSUMR(), n, Chroma::n_count, Chroma::GroupXML_t::path, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, r_norm, Chroma::MultiSysSolverCGParams::RsdCG, Chroma::RsdCG, Chroma::s(), Chroma::state, Chroma::GroupXML_t::xml, and Chroma::zero.
|
virtual |
Redefine quark propagator routine for 4D fermions.
Default implementation provided
Reimplemented from Chroma::FermAct4D< T, P, Q >.
Definition at line 355 of file overlap_fermact_base_w.cc.
References clone(), Chroma::GroupXML_t::path, Chroma::state, and Chroma::GroupXML_t::xml.
Referenced by main().
|
pure virtual |
Produce an unpreconditioned linear operator for this action with arbitrary quark mass.
Implemented in Chroma::OvlapPartFrac4DFermAct.