CHROMA
|
Unpreconditioned Extended-Overlap (N&N) linear operator. More...
#include <unprec_ovext_fermact_array_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
UnprecOvExtFermActArray (Handle< CreateFermState< T, P, Q > > cfs_, const UnprecOvExtFermActArrayParams ¶m_) | |
General FermBC. More... | |
UnprecOvExtFermActArray (const UnprecOvExtFermActArray &a) | |
Copy constructor. More... | |
int | size () const |
Length of DW flavor index/space. More... | |
Real | getQuarkMass () const |
Return the quark mass. More... | |
UnprecLinearOperatorArray< T, P, Q > * | linOp (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator for this action. More... | |
UnprecLinearOperatorArray< T, P, Q > * | linOpPV (Handle< FermState< T, P, Q > > state) const |
Produce a Pauli-Villars linear operator for this action. More... | |
LinearOperatorArray< T > * | hermitianLinOp (Handle< FermState< T, P, Q > > state) const |
Produce a hermitian version of the linear operator. More... | |
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... | |
LinearOperator< T > * | DeltaLs (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Produce a DeltaLs = 1-epsilon^2(H) operator. More... | |
SystemSolver< LatticeFermion > * | qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Compute quark propagator over base type. More... | |
~UnprecOvExtFermActArray () | |
Destructor is automatic. More... | |
Public Member Functions inherited from Chroma::UnprecWilsonTypeFermAct5D< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
virtual | ~UnprecWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~UnprecWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. 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 SystemSolverArray< T > * | qpropT (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const |
Return quark prop solver, solution of unpreconditioned system. More... | |
virtual | ~FermAct5D () |
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< 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 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 fermion create state for this action. More... | |
Private Member Functions | |
int | getN5FromRatPolyDeg (const int &RatPolyDeg) const |
Initializer. More... | |
void | init (int &Npoles, Real &coeffP, multi1d< Real > &resP, multi1d< Real > &rootQ) const |
Get the rational approximation coefficients. More... | |
UnprecOvExtFermActArray () | |
void | operator= (const UnprecOvExtFermActArray &a) |
Hide =. More... | |
Private Attributes | |
Handle< CreateFermState< T, P, Q > > | cfs |
Handle< AbsOvExtTuningStrategy > | theTuningStrategy |
UnprecOvExtFermActArrayParams | param |
Unpreconditioned Extended-Overlap (N&N) linear operator.
This operator applies the extended version of the hermitian overlap operator Chi = ((1+Mass)/(1-Mass)*gamma_5 + B) . Psi where B is the continued fraction of the pole approx. to eps(H(m))
Definition at line 58 of file unprec_ovext_fermact_array_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::UnprecOvExtFermActArray::P |
Definition at line 64 of file unprec_ovext_fermact_array_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::UnprecOvExtFermActArray::Q |
Definition at line 65 of file unprec_ovext_fermact_array_w.h.
typedef LatticeFermion Chroma::UnprecOvExtFermActArray::T |
Definition at line 63 of file unprec_ovext_fermact_array_w.h.
Chroma::UnprecOvExtFermActArray::UnprecOvExtFermActArray | ( | Handle< CreateFermState< T, P, Q > > | cfs_, |
const UnprecOvExtFermActArrayParams & | param_ | ||
) |
General FermBC.
Definition at line 129 of file unprec_ovext_fermact_array_w.cc.
References Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), param, Chroma::read(), theTuningStrategy, and Chroma::UnprecOvExtFermActArrayParams::tuning_strategy_xml.
|
inline |
Copy constructor.
Definition at line 72 of file unprec_ovext_fermact_array_w.h.
|
inline |
Destructor is automatic.
Definition at line 127 of file unprec_ovext_fermact_array_w.h.
|
inlineprivate |
Definition at line 144 of file unprec_ovext_fermact_array_w.h.
|
inlinevirtual |
Produce a DeltaLs = 1-epsilon^2(H) operator.
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 112 of file unprec_ovext_fermact_array_w.h.
References linOp4D(), and Chroma::state.
|
inlineprotectedvirtual |
Return the fermion create state for this action.
Implements Chroma::FermionAction< T, P, Q >.
Definition at line 131 of file unprec_ovext_fermact_array_w.h.
References cfs.
|
private |
|
inlinevirtual |
Return the quark mass.
Implements Chroma::FermAct5D< T, P, Q >.
Definition at line 79 of file unprec_ovext_fermact_array_w.h.
References Chroma::UnprecOvExtFermActArrayParams::Mass, and param.
Referenced by qprop().
|
inlinevirtual |
Produce a hermitian version of the linear operator.
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 93 of file unprec_ovext_fermact_array_w.h.
|
private |
Get the rational approximation coefficients.
Definition at line 166 of file unprec_ovext_fermact_array_w.cc.
References Chroma::StagPhases::alpha(), Chroma::UnprecOvExtFermActArrayParams::approximation_type, Chroma::UnprecOvExtFermActArrayParams::ApproxMax, Chroma::UnprecOvExtFermActArrayParams::ApproxMin, Chroma::COEFF_TYPE_TANH_UNSCALED, Chroma::COEFF_TYPE_ZOLOTAREV, Chroma::StaggeredFlavorOperators::AntiSymmetricTensor4D::eps, getN5FromRatPolyDeg(), higham(), Chroma::UnprecOvExtFermActArrayParams::Mass, n, param, Chroma::UnprecOvExtFermActArrayParams::RatPolyDeg, t, zolotarev(), and zolotarev_free().
Referenced by linOp().
|
virtual |
Produce a linear operator for this action.
The operator acts on the entire lattice
state | gauge field (Read) |
Definition at line 360 of file unprec_ovext_fermact_array_w.cc.
References Chroma::UnprecOvExtFermActArrayParams::b5, Chroma::StagPhases::beta(), Chroma::UnprecOvExtFermActArrayParams::c5, init(), Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::UnprecOvExtFermActArrayParams::Mass, Chroma::UnprecOvExtFermActArrayParams::OverMass, param, Chroma::read(), Chroma::state, and Chroma::UnprecOvExtFermActArrayParams::tuning_strategy_xml.
Referenced by qprop().
|
inlinevirtual |
Produce an unpreconditioned linear operator projecting 5D to 4D (the inverse of qprop below)
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 101 of file unprec_ovext_fermact_array_w.h.
Referenced by DeltaLs().
|
inlinevirtual |
Produce a Pauli-Villars linear operator for this action.
Definition at line 85 of file unprec_ovext_fermact_array_w.h.
|
inlineprivate |
Hide =.
Definition at line 146 of file unprec_ovext_fermact_array_w.h.
|
virtual |
Compute quark propagator over base type.
Propagator of an un-preconditioned Extended-Overlap linear operator.
Implements Chroma::FermionAction< T, P, Q >.
Definition at line 518 of file unprec_ovext_fermact_array_w.cc.
References a5, Chroma::UnprecOvExtFermActArrayParams::b5, Chroma::UnprecOvExtFermActArrayParams::c5, getQuarkMass(), linOp(), Chroma::UnprecOvExtFermActArrayParams::OverMass, param, Chroma::GroupXML_t::path, Chroma::state, and Chroma::GroupXML_t::xml.
|
inlinevirtual |
Length of DW flavor index/space.
Implements Chroma::FermAct5D< T, P, Q >.
Definition at line 76 of file unprec_ovext_fermact_array_w.h.
References getN5FromRatPolyDeg(), param, and Chroma::UnprecOvExtFermActArrayParams::RatPolyDeg.
|
private |
Definition at line 149 of file unprec_ovext_fermact_array_w.h.
Referenced by getCreateState().
|
private |
Definition at line 152 of file unprec_ovext_fermact_array_w.h.
Referenced by getQuarkMass(), init(), linOp(), qprop(), size(), and UnprecOvExtFermActArray().
|
private |
Definition at line 150 of file unprec_ovext_fermact_array_w.h.
Referenced by UnprecOvExtFermActArray().