CHROMA
|
5D continued fraction overlap action (Borici,Wenger, Edwards) More...
#include <unprec_ovlap_contfrac5d_fermact_array_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
UnprecOvlapContFrac5DFermActArray (Handle< FermBC< T, P, Q > > fbc_, const UnprecOvlapContFrac5DFermActParams ¶m) | |
int | size (void) const |
5D size 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 > * | lnonHermLinOp (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator for this action. More... | |
LinearOperatorArray< T > * | lnonHermMdagM (Handle< FermState< T, P, Q > > state) const |
Produce a linear operator M^dag.M for this action. More... | |
LinearOperatorArray< T > * | hermitianLinOp (Handle< FermState< T, P, Q > > state) const |
Matrix is itself hermitian so just return linOp here. 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... | |
~UnprecOvlapContFrac5DFermActArray () | |
Destructor is automatic. More... | |
OverlapConnectState * | createState (const multi1d< LatticeColorMatrix > &u, XMLReader &state_info_xml, const std::string &state_info_path) const |
Create OverlapConnectState from XML. More... | |
OverlapConnectState * | createState (const multi1d< LatticeColorMatrix > &u_) const |
Given links, create the state needed for the linear operators. More... | |
OverlapConnectState * | createState (const multi1d< LatticeColorMatrix > &u_, const Real &approxMin_) const |
Create a ConnectState with just the gauge fields, and a lower. More... | |
OverlapConnectState * | createState (const multi1d< LatticeColorMatrix > &u_, const Real &approxMin_, const Real &approxMax_) const |
Create a connect State with just approximation range bounds. More... | |
OverlapConnectState * | createState (const multi1d< LatticeColorMatrix > &u_, const multi1d< Real > &lambda_lo_, const multi1d< LatticeFermion > &evecs_lo_, const Real &lambda_hi_) const |
Create OverlapConnectState with eigenvalues/vectors. More... | |
OverlapConnectState * | createState (const multi1d< LatticeColorMatrix > &u_, const OverlapStateInfo &state_info) const |
Create from OverlapStateInfo Structure. More... | |
![]() | |
virtual | ~UnprecWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~UnprecWilsonTypeFermAct5D () |
Virtual destructor to help with cleanup;. 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 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... | |
![]() | |
virtual | ~DiffFermAct5D () |
Virtual destructor to help with cleanup;. More... | |
virtual | ~DiffFermAct5D () |
Virtual destructor to help with cleanup;. 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... | |
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 |
![]() | |
virtual | ~FermionAction () |
Virtual destructor to help with cleanup;. 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 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... | |
void | init (Real &scale_fac, multi1d< Real > &alpha, multi1d< Real > &beta, int &NEig, multi1d< Real > &EigValFunc, const OverlapConnectState &state) const |
Helper in construction. More... | |
Private Member Functions | |
UnprecOvlapContFrac5DFermActArray () | |
void | operator= (const UnprecOvlapContFrac5DFermActArray &a) |
Hide =. More... | |
Private Attributes | |
Handle< FermBC< T, P, Q > > | fbc |
Handle< CreateFermState< T, P, Q > > | cfs |
Handle< UnprecWilsonTypeFermAct< T, P, Q > > | S_aux |
UnprecOvlapContFrac5DFermActParams | params |
int | N5 |
bool | isLastZeroP |
5D continued fraction overlap action (Borici,Wenger, Edwards)
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 zolotarev approx. to eps(H(m))
Definition at line 63 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::UnprecOvlapContFrac5DFermActArray::P |
Definition at line 69 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::UnprecOvlapContFrac5DFermActArray::Q |
Definition at line 70 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
typedef LatticeFermion Chroma::UnprecOvlapContFrac5DFermActArray::T |
Definition at line 68 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Chroma::UnprecOvlapContFrac5DFermActArray::UnprecOvlapContFrac5DFermActArray | ( | Handle< FermBC< T, P, Q > > | fbc_, |
const UnprecOvlapContFrac5DFermActParams & | param | ||
) |
Definition at line 150 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References Chroma::UnprecOvlapContFrac5DFermActParams::AuxFermAct, cfs, fbc, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), isLastZeroP, N5, Chroma::UnprecOvlapContFrac5DFermActArrayEnv::name, params, Chroma::UnprecOvlapContFrac5DFermActParams::RatPolyDeg, Chroma::read(), S_aux, and Chroma::S_f.
|
inline |
Destructor is automatic.
Definition at line 123 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
|
private |
|
virtual |
Create OverlapConnectState from XML.
Reimplemented from Chroma::FermionAction< T, P, Q >.
Definition at line 809 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
Referenced by main().
|
virtual |
Given links, create the state needed for the linear operators.
Create a ConnectState with just the gauge fields.
Override the parent Create a ConnectState with just the gauge fields
Reimplemented from Chroma::FermionAction< T, P, Q >.
Definition at line 742 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References fbc.
OverlapConnectState * Chroma::UnprecOvlapContFrac5DFermActArray::createState | ( | const multi1d< LatticeColorMatrix > & | u_, |
const multi1d< Real > & | lambda_lo_, | ||
const multi1d< LatticeFermion > & | evecs_lo_, | ||
const Real & | lambda_hi_ | ||
) | const |
Create OverlapConnectState with eigenvalues/vectors.
Definition at line 791 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References fbc.
OverlapConnectState * Chroma::UnprecOvlapContFrac5DFermActArray::createState | ( | const multi1d< LatticeColorMatrix > & | u_, |
const OverlapStateInfo & | state_info | ||
) | const |
Create from OverlapStateInfo Structure.
Create OverlapConnectState from XML.
Definition at line 830 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
OverlapConnectState * Chroma::UnprecOvlapContFrac5DFermActArray::createState | ( | const multi1d< LatticeColorMatrix > & | u_, |
const Real & | approxMin_ | ||
) | const |
Create a ConnectState with just the gauge fields, and a lower.
Create a ConnectState with just the gauge fields, and a lower approximation bound
Definition at line 758 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References fbc.
OverlapConnectState * Chroma::UnprecOvlapContFrac5DFermActArray::createState | ( | const multi1d< LatticeColorMatrix > & | u_, |
const Real & | approxMin_, | ||
const Real & | approxMax_ | ||
) | const |
Create a connect State with just approximation range bounds.
Definition at line 774 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References fbc.
|
inlinevirtual |
Produce a DeltaLs = 1-epsilon^2(H) operator.
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 111 of file unprec_ovlap_contfrac5d_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 171 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
References cfs.
|
inlinevirtual |
Return the quark mass.
Implements Chroma::FermAct5D< T, P, Q >.
Definition at line 80 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
References Chroma::UnprecOvlapContFrac5DFermActParams::Mass, and params.
Referenced by qprop().
|
inlinevirtual |
Matrix is itself hermitian so just return linOp here.
Implements Chroma::WilsonTypeFermAct5D< T, P, Q >.
Definition at line 95 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
References linOp(), and Chroma::state.
|
protected |
Helper in construction.
Definition at line 246 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References Chroma::StagPhases::alpha(), Chroma::UnprecOvlapContFrac5DFermActParams::approximation_type, Chroma::UnprecOvlapContFrac5DFermActParams::ApproxMax, Chroma::UnprecOvlapContFrac5DFermActParams::ApproxMin, Chroma::StagPhases::beta(), Chroma::COEFF_TYPE_TANH, Chroma::COEFF_TYPE_TANH_UNSCALED, Chroma::COEFF_TYPE_ZOLOTAREV, Chroma::ExternalFieldEnv::epsilon(), higham(), Chroma::i, Chroma::UnprecOvlapContFrac5DFermActParams::Mass, N5, params, Chroma::UnprecOvlapContFrac5DFermActParams::RatPolyDeg, Chroma::state, zolotarev(), and zolotarev_free().
Referenced by linOp(), linOpPV(), and lnonHermLinOp().
|
virtual |
Produce a linear operator for this action.
The operator acts on the entire lattice
state | gauge field (Read) |
Definition at line 414 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References Chroma::StagPhases::alpha(), Chroma::StagPhases::beta(), init(), isLastZeroP, Chroma::UnprecOvlapContFrac5DFermActParams::Mass, N5, params, S_aux, Chroma::START_CODE(), and Chroma::state.
Referenced by hermitianLinOp(), main(), and 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_ovlap_contfrac5d_fermact_array_w.h.
Referenced by DeltaLs().
|
virtual |
Produce a Pauli-Villars linear operator for this action.
Produce a linear operator for this action.
The operator acts on the entire lattice
state | gauge field (Read) |
Definition at line 478 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References Chroma::StagPhases::alpha(), Chroma::StagPhases::beta(), init(), isLastZeroP, Chroma::UnprecOvlapContFrac5DFermActParams::Mass, N5, params, S_aux, Chroma::START_CODE(), and Chroma::state.
LinearOperatorArray< LatticeFermion > * Chroma::UnprecOvlapContFrac5DFermActArray::lnonHermLinOp | ( | Handle< FermState< T, P, Q > > | state_ | ) | const |
Produce a linear operator for this action.
Produce the non-hermitian version of the operator.
The operator acts on the entire lattice
state | gauge field (Read) |
Definition at line 539 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References Chroma::StagPhases::alpha(), Chroma::StagPhases::beta(), init(), Chroma::UnprecOvlapContFrac5DFermActParams::Mass, N5, params, S_aux, Chroma::START_CODE(), and Chroma::state.
Referenced by lnonHermMdagM().
LinearOperatorArray< LatticeFermion > * Chroma::UnprecOvlapContFrac5DFermActArray::lnonHermMdagM | ( | Handle< FermState< T, P, Q > > | state | ) | const |
Produce a linear operator M^dag.M for this action.
Produce a M^dag.M linear operator for the non hermitian operator.
The operator acts on the entire lattice *
state | gauge field (Read) |
Definition at line 597 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References lnonHermLinOp(), and Chroma::state.
|
inlineprivate |
Hide =.
Definition at line 184 of file unprec_ovlap_contfrac5d_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 727 of file unprec_ovlap_contfrac5d_fermact_array_w.cc.
References getQuarkMass(), linOp(), Chroma::GroupXML_t::path, Chroma::state, and Chroma::GroupXML_t::xml.
|
inlinevirtual |
5D size
Implements Chroma::FermAct5D< T, P, Q >.
Definition at line 77 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
References N5.
Referenced by main().
|
private |
Definition at line 188 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Referenced by getCreateState(), and UnprecOvlapContFrac5DFermActArray().
Definition at line 187 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Referenced by createState(), and UnprecOvlapContFrac5DFermActArray().
|
private |
Definition at line 192 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Referenced by linOp(), linOpPV(), and UnprecOvlapContFrac5DFermActArray().
|
private |
Definition at line 191 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Referenced by init(), linOp(), linOpPV(), lnonHermLinOp(), size(), and UnprecOvlapContFrac5DFermActArray().
|
private |
Definition at line 190 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Referenced by getQuarkMass(), init(), linOp(), linOpPV(), lnonHermLinOp(), and UnprecOvlapContFrac5DFermActArray().
|
private |
Definition at line 189 of file unprec_ovlap_contfrac5d_fermact_array_w.h.
Referenced by createState(), linOp(), linOpPV(), lnonHermLinOp(), and UnprecOvlapContFrac5DFermActArray().