CHROMA
Public Member Functions | List of all members
Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q > Class Template Referenceabstract

Base class for unpreconditioned domain-wall-like fermion actions. More...

#include <eoprec_dwf_fermact_base_array_w.h>

Inheritance diagram for Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >:
Chroma::EvenOddPrecConstDetWilsonTypeFermAct5D< T, P, Q > Chroma::EvenOddPrecWilsonTypeFermAct5D< T, P, Q > Chroma::EvenOddPrecWilsonTypeFermAct5D< T, P, Q > Chroma::WilsonTypeFermAct5D< T, P, Q > Chroma::WilsonTypeFermAct5D< T, P, Q > Chroma::WilsonTypeFermAct5D< T, P, Q > Chroma::WilsonTypeFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q > Chroma::DiffFermAct5D< T, P, Q >

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...
 

Detailed Description

template<typename T, typename P, typename Q>
class Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >

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.

Member Function Documentation

◆ DeltaLs()

template<typename T , typename P , typename Q >
virtual LinearOperator<T>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::DeltaLs ( Handle< FermState< T, P, Q > >  state,
const GroupXML_t invParam 
) const
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.

◆ Dminus()

template<typename T , typename P , typename Q >
void Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::Dminus ( T chi,
const T psi,
Handle< FermState< T, P, Q > >  state,
enum PlusMinus  isign,
int  s5 
) const
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.

◆ getQuarkMass()

template<typename T , typename P , typename Q >
virtual Real Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::getQuarkMass ( ) const
pure virtual

◆ hermitianLinOp()

template<typename T , typename P , typename Q >
virtual LinearOperatorArray<T>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::hermitianLinOp ( Handle< FermState< T, P, Q > >  state) const
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.

◆ linOp()

template<typename T , typename P , typename Q >
virtual EvenOddPrecDWLikeLinOpBaseArray<T,P,Q>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp ( Handle< FermState< T, P, Q > >  state) const
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().

◆ linOp4D()

template<typename T , typename P , typename Q >
virtual LinearOperator<T>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOp4D ( Handle< FermState< T, P, Q > >  state,
const Real &  m_q,
const GroupXML_t invParam 
) const
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().

◆ linOpPV()

template<typename T , typename P , typename Q >
virtual EvenOddPrecDWLikeLinOpBaseArray<T,P,Q>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::linOpPV ( Handle< FermState< T, P, Q > >  state) const
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.

◆ precLinOp()

template<typename T , typename P , typename Q >
virtual EvenOddPrecDWLikeLinOpBaseArray<T,P,Q>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::precLinOp ( Handle< FermState< T, P, Q > >  state,
const Real &  m_q 
) const
pure virtual

◆ qprop() [1/2]

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.

◆ qprop() [2/2]

template<typename T , typename P , typename Q >
SystemSolver<T>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::qprop ( Handle< FermState< T, P, Q > >  state,
const GroupXML_t invParam 
) const
virtual

Define quark propagator routine for 4D fermions.

Default implementation provided

Implements Chroma::FermionAction< T, P, Q >.

Referenced by main().

◆ unprecLinOp()

template<typename T , typename P , typename Q >
virtual UnprecDWLikeLinOpBaseArray<T,P,Q>* Chroma::EvenOddPrecDWFermActBaseArray< T, P, Q >::unprecLinOp ( Handle< FermState< T, P, Q > >  state,
const Real &  m_q 
) const
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.


The documentation for this class was generated from the following file: