CHROMA
Public Types | Public Member Functions | List of all members

Base class for unpreconditioned overlap-like fermion actions. More...

#include <overlap_fermact_base_w.h>

Inheritance diagram for Chroma::OverlapFermActBase:
Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::WilsonTypeFermAct< T, P, Q > Chroma::WilsonTypeFermAct< T, P, Q > Chroma::DiffFermAct4D< T, P, Q > Chroma::DiffFermAct4D< T, P, Q > Chroma::DiffFermAct4D< T, P, Q > Chroma::DiffFermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::FermAct4D< T, P, Q > Chroma::OvlapPartFrac4DFermAct

Public Types

typedef LatticeFermion T
 
typedef multi1d< LatticeColorMatrix > P
 
typedef multi1d< LatticeColorMatrix > Q
 

Public Member Functions

virtual OverlapFermActBaseclone () 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...
 

Detailed Description

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.

Member Typedef Documentation

◆ P

typedef multi1d<LatticeColorMatrix> Chroma::OverlapFermActBase::P

Definition at line 36 of file overlap_fermact_base_w.h.

◆ Q

typedef multi1d<LatticeColorMatrix> Chroma::OverlapFermActBase::Q

Definition at line 37 of file overlap_fermact_base_w.h.

◆ T

typedef LatticeFermion Chroma::OverlapFermActBase::T

Definition at line 35 of file overlap_fermact_base_w.h.

Member Function Documentation

◆ clone()

virtual OverlapFermActBase* Chroma::OverlapFermActBase::clone ( ) const
pure virtual

Virtual copy constructor.

Implemented in Chroma::OvlapPartFrac4DFermAct.

Referenced by qprop().

◆ DeltaLs()

virtual LinearOperator<T>* Chroma::OverlapFermActBase::DeltaLs ( Handle< FermState< T, P, Q > >  state) const
inlinevirtual

Definition at line 72 of file overlap_fermact_base_w.h.

References Chroma::state, and unprecLinOp().

◆ getQuarkMass()

virtual Real Chroma::OverlapFermActBase::getQuarkMass ( ) const
pure virtual

Return the quark mass.

Implemented in Chroma::OvlapPartFrac4DFermAct.

Referenced by linOp(), and multiQprop().

◆ hermitianLinOp()

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

◆ isChiral()

virtual bool Chroma::OverlapFermActBase::isChiral ( ) const
pure virtual

Does this object really satisfy the Ginsparg-Wilson relation?

Implemented in Chroma::OvlapPartFrac4DFermAct.

Referenced by multiQprop().

◆ lgamma5epsH()

virtual LinearOperator<T>* Chroma::OverlapFermActBase::lgamma5epsH ( Handle< FermState< T, P, Q > >  state) const
pure virtual

Produce a linear operator that gives back gamma_5 eps(H)

Implemented in Chroma::OvlapPartFrac4DFermAct.

Referenced by multiQprop().

◆ lgamma5epsHPrecondition()

virtual LinearOperator<T>* Chroma::OverlapFermActBase::lgamma5epsHPrecondition ( Handle< FermState< T, P, Q > >  state) const
pure virtual

Produce a linear operator that gives back gamma_5 eps(H)

Implemented in Chroma::OvlapPartFrac4DFermAct.

◆ linOp()

virtual UnprecLinearOperator<T,P,Q>* Chroma::OverlapFermActBase::linOp ( Handle< FermState< T, P, Q > >  state) const
inlinevirtual

Override to produce a DWF-link unprec. linear operator for this action.

Covariant return rule - override base class function

Implements Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

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

◆ linOpPrecondition()

virtual LinearOperator<T>* Chroma::OverlapFermActBase::linOpPrecondition ( Handle< FermState< T, P, Q > >  state) const
pure virtual

◆ lMdagM() [1/2]

virtual DiffLinearOperator<T,P,Q>* Chroma::OverlapFermActBase::lMdagM ( Handle< FermState< T, P, Q > >  state) const
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().

◆ lMdagM() [2/2]

virtual DiffLinearOperator<T,P,Q>* Chroma::OverlapFermActBase::lMdagM ( Handle< FermState< T, P, Q > >  state,
const Chirality chirality 
) const
pure virtual

◆ lMdagMPrecondition() [1/2]

virtual LinearOperator<T>* Chroma::OverlapFermActBase::lMdagMPrecondition ( Handle< FermState< T, P, Q > >  state) const
pure virtual

Robert's way: Produce a linear operator M^dag.M for this action to be applied

Implemented in Chroma::OvlapPartFrac4DFermAct.

◆ lMdagMPrecondition() [2/2]

virtual LinearOperator<T>* Chroma::OverlapFermActBase::lMdagMPrecondition ( Handle< FermState< T, P, Q > >  state,
const Chirality chirality 
) const
pure virtual

◆ multiQprop()

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

◆ qprop()

SystemSolver< LatticeFermion > * Chroma::OverlapFermActBase::qprop ( Handle< FermState< T, P, Q > >  state,
const GroupXML_t invParam 
) const
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().

◆ unprecLinOp()

virtual UnprecLinearOperator<T,P,Q>* Chroma::OverlapFermActBase::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::OvlapPartFrac4DFermAct.

Referenced by DeltaLs(), and linOp().


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