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

Unpreconditioned Extended-Overlap (N&N) linear operator. More...

#include <unprec_ovext_fermact_array_w.h>

Inheritance diagram for Chroma::UnprecOvExtFermActArray:
Chroma::UnprecWilsonTypeFermAct5D< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > 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::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q > Chroma::FermAct5D< T, P, Q >

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 &param_)
 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< AbsOvExtTuningStrategytheTuningStrategy
 
UnprecOvExtFermActArrayParams param
 

Detailed Description

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.

Member Typedef Documentation

◆ P

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

Definition at line 64 of file unprec_ovext_fermact_array_w.h.

◆ Q

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

Definition at line 65 of file unprec_ovext_fermact_array_w.h.

◆ T

typedef LatticeFermion Chroma::UnprecOvExtFermActArray::T

Definition at line 63 of file unprec_ovext_fermact_array_w.h.

Constructor & Destructor Documentation

◆ UnprecOvExtFermActArray() [1/3]

Chroma::UnprecOvExtFermActArray::UnprecOvExtFermActArray ( Handle< CreateFermState< T, P, Q > >  cfs_,
const UnprecOvExtFermActArrayParams param_ 
)

◆ UnprecOvExtFermActArray() [2/3]

Chroma::UnprecOvExtFermActArray::UnprecOvExtFermActArray ( const UnprecOvExtFermActArray a)
inline

Copy constructor.

Definition at line 72 of file unprec_ovext_fermact_array_w.h.

◆ ~UnprecOvExtFermActArray()

Chroma::UnprecOvExtFermActArray::~UnprecOvExtFermActArray ( )
inline

Destructor is automatic.

Definition at line 127 of file unprec_ovext_fermact_array_w.h.

◆ UnprecOvExtFermActArray() [3/3]

Chroma::UnprecOvExtFermActArray::UnprecOvExtFermActArray ( )
inlineprivate

Definition at line 144 of file unprec_ovext_fermact_array_w.h.

Member Function Documentation

◆ DeltaLs()

LinearOperator<T>* Chroma::UnprecOvExtFermActArray::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 112 of file unprec_ovext_fermact_array_w.h.

References linOp4D(), and Chroma::state.

◆ getCreateState()

const CreateFermState<T,P,Q>& Chroma::UnprecOvExtFermActArray::getCreateState ( ) const
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.

◆ getN5FromRatPolyDeg()

int Chroma::UnprecOvExtFermActArray::getN5FromRatPolyDeg ( const int &  RatPolyDeg) const
private

Initializer.

Definition at line 150 of file unprec_ovext_fermact_array_w.cc.

References RatPolyDeg.

Referenced by init(), and size().

◆ getQuarkMass()

Real Chroma::UnprecOvExtFermActArray::getQuarkMass ( void  ) const
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().

◆ hermitianLinOp()

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

◆ init()

void Chroma::UnprecOvExtFermActArray::init ( int &  Npoles,
Real &  coeffP,
multi1d< Real > &  resP,
multi1d< Real > &  rootQ 
) const
private

◆ linOp()

UnprecLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::UnprecOvExtFermActArray::linOp ( Handle< FermState< T, P, Q > >  state) const
virtual

◆ linOp4D()

LinearOperator<T>* Chroma::UnprecOvExtFermActArray::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)

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

Definition at line 101 of file unprec_ovext_fermact_array_w.h.

Referenced by DeltaLs().

◆ linOpPV()

UnprecLinearOperatorArray<T,P,Q>* Chroma::UnprecOvExtFermActArray::linOpPV ( Handle< FermState< T, P, Q > >  state) const
inlinevirtual

Produce a Pauli-Villars linear operator for this action.

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

Definition at line 85 of file unprec_ovext_fermact_array_w.h.

◆ operator=()

void Chroma::UnprecOvExtFermActArray::operator= ( const UnprecOvExtFermActArray a)
inlineprivate

Hide =.

Definition at line 146 of file unprec_ovext_fermact_array_w.h.

◆ qprop()

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

◆ size()

int Chroma::UnprecOvExtFermActArray::size ( void  ) const
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.

Member Data Documentation

◆ cfs

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

Definition at line 149 of file unprec_ovext_fermact_array_w.h.

Referenced by getCreateState().

◆ param

UnprecOvExtFermActArrayParams Chroma::UnprecOvExtFermActArray::param
private

◆ theTuningStrategy

Handle< AbsOvExtTuningStrategy > Chroma::UnprecOvExtFermActArray::theTuningStrategy
private

Definition at line 150 of file unprec_ovext_fermact_array_w.h.

Referenced by UnprecOvExtFermActArray().


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