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

Unpreconditioned NEF fermion action. More...

#include <unprec_nef_fermact_array_w.h>

Inheritance diagram for Chroma::UnprecNEFFermActArray:
Chroma::UnprecDWFermActBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > 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

 UnprecNEFFermActArray (Handle< CreateFermState< T, P, Q > > cfs_, const Real &OverMass_, const Real &b5_, const Real &c5_, const Real &Mass_, int N5_)
 General FermBC. More...
 
 UnprecNEFFermActArray (Handle< CreateFermState< T, P, Q > > cfs_, const UnprecNEFFermActArrayParams &param)
 General FermBC. More...
 
 UnprecNEFFermActArray (const UnprecNEFFermActArray &a)
 Copy constructor. More...
 
int size () const
 Length of DW flavor index/space. More...
 
Real getQuarkMass () const
 Return the quark mass. More...
 
UnprecDWLikeLinOpBaseArray< T, P, Q > * unprecLinOp (Handle< FermState< T, P, Q > > state, const Real &m_q) const
 Produce an unpreconditioned linear operator for this action with arbitrary quark mass. More...
 
 ~UnprecNEFFermActArray ()
 Destructor is automatic. More...
 
void quarkProp (LatticePropagator &q_sol, XMLWriter &xml_out, const LatticePropagator &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...
 
- Public Member Functions inherited from Chroma::UnprecDWFermActBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual UnprecDWLikeLinOpBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * linOp (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state) const
 Override to produce a DWF-link unprec. linear operator for this action. More...
 
virtual UnprecDWLikeLinOpBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * linOpPV (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state) const
 Override to produce a DWF-link unprec. Pauli-Villars linear operator for this action. More...
 
virtual LinearOperatorArray< LatticeFermion > * hermitianLinOp (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state) const
 Produce a hermitian version of the linear operator. More...
 
virtual LinearOperator< LatticeFermion > * linOp4D (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > 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< LatticeFermion > * DeltaLs (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const
 Produce a DeltaLs = 1-epsilon^2(H) operator. More...
 
SystemSolver< LatticeFermion > * qprop (Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const
 Define quark propagator routine for 4D fermions. More...
 
SystemSolver< LF > * qprop (Handle< FermState< LF, LCM, LCM > > state, const GroupXML_t &invParam) const
 
void Dminus (LatticeFermion &chi, const LatticeFermion &psi, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, enum PlusMinus isign, int s5) const
 Apply the Dminus operator on a fermion. 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 BC object for this action. More...
 

Private Member Functions

 UnprecNEFFermActArray ()
 Partial constructor. More...
 
void operator= (const UnprecNEFFermActArray &a)
 Hide =. More...
 

Private Attributes

Handle< CreateFermState< T, P, Q > > cfs
 
Real OverMass
 
Real b5
 
Real c5
 
Real Mass
 
int N5
 

Detailed Description

Unpreconditioned NEF fermion action.

Unprecondition NEF fermion action. The conventions used here are specified in Phys.Rev.D63:094505,2001 (hep-lat/0005002). See also Brower et.al. LATTICE04

Definition at line 49 of file unprec_nef_fermact_array_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 55 of file unprec_nef_fermact_array_w.h.

◆ Q

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

Definition at line 56 of file unprec_nef_fermact_array_w.h.

◆ T

typedef LatticeFermion Chroma::UnprecNEFFermActArray::T

Definition at line 54 of file unprec_nef_fermact_array_w.h.

Constructor & Destructor Documentation

◆ UnprecNEFFermActArray() [1/4]

Chroma::UnprecNEFFermActArray::UnprecNEFFermActArray ( Handle< CreateFermState< T, P, Q > >  cfs_,
const Real &  OverMass_,
const Real &  b5_,
const Real &  c5_,
const Real &  Mass_,
int  N5_ 
)
inline

General FermBC.

Definition at line 59 of file unprec_nef_fermact_array_w.h.

◆ UnprecNEFFermActArray() [2/4]

Chroma::UnprecNEFFermActArray::UnprecNEFFermActArray ( Handle< CreateFermState< T, P, Q > >  cfs_,
const UnprecNEFFermActArrayParams param 
)
inline

General FermBC.

Definition at line 66 of file unprec_nef_fermact_array_w.h.

◆ UnprecNEFFermActArray() [3/4]

Chroma::UnprecNEFFermActArray::UnprecNEFFermActArray ( const UnprecNEFFermActArray a)
inline

Copy constructor.

Definition at line 71 of file unprec_nef_fermact_array_w.h.

◆ ~UnprecNEFFermActArray()

Chroma::UnprecNEFFermActArray::~UnprecNEFFermActArray ( )
inline

Destructor is automatic.

Definition at line 86 of file unprec_nef_fermact_array_w.h.

◆ UnprecNEFFermActArray() [4/4]

Chroma::UnprecNEFFermActArray::UnprecNEFFermActArray ( )
inlineprivate

Partial constructor.

Definition at line 117 of file unprec_nef_fermact_array_w.h.

Member Function Documentation

◆ getCreateState()

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

Return the fermion BC object for this action.

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

Definition at line 113 of file unprec_nef_fermact_array_w.h.

References cfs.

◆ getQuarkMass()

Real Chroma::UnprecNEFFermActArray::getQuarkMass ( void  ) const
inlinevirtual

◆ operator=()

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

Hide =.

Definition at line 119 of file unprec_nef_fermact_array_w.h.

◆ quarkProp()

void Chroma::UnprecNEFFermActArray::quarkProp ( LatticePropagator &  q_sol,
XMLWriter &  xml_out,
const LatticePropagator &  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.

This routine is actually generic to Domain Wall fermions (Array) fermions

Parameters
q_solquark propagator ( Write )
q_srcsource ( Read )
xml_outdiagnostic output ( Modify )
stategauge connection state ( Read )
t_srctime slice of source ( Read )
j_decaydirection of decay ( Read )
invParaminverter parameters ( Read )
ncg_hadnumber of CG iterations ( Write )

Definition at line 102 of file unprec_nef_fermact_array_w.cc.

References j_decay, Chroma::nef_quarkProp4(), Chroma::UnprecDWFermActBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >::qprop(), Chroma::QUARK_SPIN_TYPE_FULL, Chroma::quarkProp4(), and Chroma::state.

◆ size()

int Chroma::UnprecNEFFermActArray::size ( void  ) const
inlinevirtual

Length of DW flavor index/space.

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

Definition at line 76 of file unprec_nef_fermact_array_w.h.

References N5.

◆ unprecLinOp()

UnprecDWLikeLinOpBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::UnprecNEFFermActArray::unprecLinOp ( Handle< FermState< T, P, Q > >  state,
const Real &  m_q 
) const
virtual

Produce an unpreconditioned linear operator for this action with arbitrary quark mass.

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

Definition at line 88 of file unprec_nef_fermact_array_w.cc.

References b5, c5, N5, OverMass, and Chroma::state.

Member Data Documentation

◆ b5

Real Chroma::UnprecNEFFermActArray::b5
private

Definition at line 124 of file unprec_nef_fermact_array_w.h.

Referenced by unprecLinOp().

◆ c5

Real Chroma::UnprecNEFFermActArray::c5
private

Definition at line 125 of file unprec_nef_fermact_array_w.h.

Referenced by unprecLinOp().

◆ cfs

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

Definition at line 122 of file unprec_nef_fermact_array_w.h.

Referenced by getCreateState().

◆ Mass

Real Chroma::UnprecNEFFermActArray::Mass
private

Definition at line 126 of file unprec_nef_fermact_array_w.h.

Referenced by getQuarkMass().

◆ N5

int Chroma::UnprecNEFFermActArray::N5
private

Definition at line 127 of file unprec_nef_fermact_array_w.h.

Referenced by size(), and unprecLinOp().

◆ OverMass

Real Chroma::UnprecNEFFermActArray::OverMass
private

Definition at line 123 of file unprec_nef_fermact_array_w.h.

Referenced by unprecLinOp().


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