CHROMA
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members

Chebyshev Polynomial fermion action. More...

#include <poly_cheb_fermact_w.h>

Inheritance diagram for Chroma::PolyChebFermAct:
Chroma::PolyWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::WilsonTypeFermAct< 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::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q > Chroma::FermionAction< T, P, Q >

Public Types

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

Public Member Functions

 PolyChebFermAct (Handle< CreateFermState< T, P, Q > > cfs_, const PolyChebFermActParams &param_)
 General FermBC. More...
 
DiffLinearOperator< T, P, Q > * linOp (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator for this action. More...
 
DiffLinearOperator< T, P, Q > * lMdagM (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator M^dag.M for this action. More...
 
LinearOperator< T > * hermitianLinOp (Handle< FermState< T, P, Q > > state) const
 Produce the gamma_5 hermitian operator H_w. More...
 
DiffLinearOperator< T, P, Q > * polyPrecLinOp (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator for this action. More...
 
PolyLinearOperator< T, P, Q > * polyLinOp (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator M^dag.M for this action. More...
 
PolyPrecSystemSolver< T > * invPolyPrec (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...
 
 ~PolyChebFermAct ()
 Destructor is automatic. More...
 
- Public Member Functions inherited from Chroma::PolyWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~PolyWilsonTypeFermAct ()
 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 SystemSolver< T > * qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
 Return quark prop solver, solution of unpreconditioned system. More...
 
virtual ~FermAct4D ()
 Virtual destructor to help with cleanup;. More...
 
virtual SystemSolver< T > * qprop (Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
 Return quark prop solver, solution of unpreconditioned system. 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 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 factory object that produces a state. More...
 
 PolyChebFermAct ()
 
void operator= (const PolyChebFermAct &a)
 Assignment. More...
 

Private Attributes

Handle< CreateFermState< T, P, Q > > cfs
 
PolyChebFermActParams param
 
Handle< WilsonTypeFermAct< T, P, Q > > fermact
 

Detailed Description

Chebyshev Polynomial fermion action.

Definition at line 52 of file poly_cheb_fermact_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 59 of file poly_cheb_fermact_w.h.

◆ Q

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

Definition at line 60 of file poly_cheb_fermact_w.h.

◆ T

typedef LatticeFermion Chroma::PolyChebFermAct::T

Definition at line 58 of file poly_cheb_fermact_w.h.

Constructor & Destructor Documentation

◆ PolyChebFermAct() [1/2]

Chroma::PolyChebFermAct::PolyChebFermAct ( Handle< CreateFermState< T, P, Q > >  cfs_,
const PolyChebFermActParams param_ 
)

◆ ~PolyChebFermAct()

Chroma::PolyChebFermAct::~PolyChebFermAct ( )
inline

Destructor is automatic.

Definition at line 96 of file poly_cheb_fermact_w.h.

◆ PolyChebFermAct() [2/2]

Chroma::PolyChebFermAct::PolyChebFermAct ( )
inlineprotected

The user will supply the FermState in a derived class

Definition at line 103 of file poly_cheb_fermact_w.h.

Member Function Documentation

◆ getCreateState()

const CreateFermState<T,P,Q>& Chroma::PolyChebFermAct::getCreateState ( ) const
inlineprotectedvirtual

Return the factory object that produces a state.

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

Definition at line 100 of file poly_cheb_fermact_w.h.

References cfs.

◆ hermitianLinOp()

LinearOperator<T>* Chroma::PolyChebFermAct::hermitianLinOp ( Handle< FermState< T, P, Q > >  state) const
inlinevirtual

Produce the gamma_5 hermitian operator H_w.

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

Definition at line 79 of file poly_cheb_fermact_w.h.

References fermact, and Chroma::state.

◆ invPolyPrec()

PolyPrecSystemSolver< LatticeFermion > * Chroma::PolyChebFermAct::invPolyPrec ( Handle< FermState< T, P, Q > >  state,
const GroupXML_t invParam 
) const
virtual

◆ linOp()

DiffLinearOperator<T,P,Q>* Chroma::PolyChebFermAct::linOp ( Handle< FermState< T, P, Q > >  state) const
inlinevirtual

Produce a linear operator for this action.

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

Definition at line 67 of file poly_cheb_fermact_w.h.

References fermact, and Chroma::state.

◆ lMdagM()

DiffLinearOperator<T,P,Q>* Chroma::PolyChebFermAct::lMdagM ( Handle< FermState< T, P, Q > >  state) const
inlinevirtual

Produce a linear operator M^dag.M for this action.

Reimplemented from Chroma::WilsonTypeFermAct< T, P, Q >.

Definition at line 73 of file poly_cheb_fermact_w.h.

References fermact, and Chroma::state.

◆ operator=()

void Chroma::PolyChebFermAct::operator= ( const PolyChebFermAct a)
inlineprotected

Assignment.

Definition at line 105 of file poly_cheb_fermact_w.h.

◆ polyLinOp()

PolyLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::PolyChebFermAct::polyLinOp ( Handle< FermState< T, P, Q > >  state) const
virtual

◆ polyPrecLinOp()

DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::PolyChebFermAct::polyPrecLinOp ( Handle< FermState< T, P, Q > >  state) const
virtual

Produce a linear operator for this action.

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

Definition at line 161 of file poly_cheb_fermact_w.cc.

References fermact, polyLinOp(), and Chroma::state.

Referenced by invPolyPrec().

Member Data Documentation

◆ cfs

Handle< CreateFermState<T,P,Q> > Chroma::PolyChebFermAct::cfs
private

fermion state creator

Definition at line 108 of file poly_cheb_fermact_w.h.

Referenced by getCreateState().

◆ fermact

Handle< WilsonTypeFermAct<T,P,Q> > Chroma::PolyChebFermAct::fermact
private

◆ param

PolyChebFermActParams Chroma::PolyChebFermAct::param
private

Definition at line 109 of file poly_cheb_fermact_w.h.

Referenced by PolyChebFermAct(), and polyLinOp().


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