Chroma::OvlapPartFrac4DFermAct Class Reference
[Fermion actions]

4D Zolotarev variant of Overlap-Dirac operator More...

#include <ovlap_partfrac4d_fermact_w.h>

Inheritance diagram for Chroma::OvlapPartFrac4DFermAct:

Chroma::OverlapFermActBase Chroma::UnprecWilsonTypeFermAct< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > List of all members.

Public Types

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

Public Member Functions

 OvlapPartFrac4DFermAct (Handle< FermBC< T, P, Q > > fbc_, const OvlapPartFrac4DFermActParams &params)
 Constructor.
OvlapPartFrac4DFermActclone () const
 Virtual copy constructor.
Real getQuarkMass () const
 Return the quark mass.
bool isChiral () const
 Is the operator Chiral.
EigenConnectStatecreateState (const multi1d< LatticeColorMatrix > &u, XMLReader &state_info_xml, const string &state_info_path) const
 Create OverlapConnectState from XML.
EigenConnectStatecreateState (const multi1d< LatticeColorMatrix > &u_) const
 Create a ConnectState with just the gauge fields.
UnprecLinearOperator< T, P,
Q > * 
unprecLinOp (Handle< FermState< T, P, Q > > state, const Real &m_q) const
 Produce a linear operator for this action.
LinearOperator< T > * linOpPrecondition (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator for this action.
DiffLinearOperator< T, P,
Q > * 
lMdagM (Handle< FermState< T, P, Q > > state) const
 Produce a conventional MdagM operator for this action.
DiffLinearOperator< T, P,
Q > * 
lMdagM (Handle< FermState< T, P, Q > > state, const Chirality &chirality) const
 Produce a linear operator for this action.
LinearOperator< T > * lMdagMPrecondition (Handle< FermState< T, P, Q > > state) const
 Produce a conventional MdagM operator for this action.
LinearOperator< T > * lMdagMPrecondition (Handle< FermState< T, P, Q > > state, const Chirality &chirality) const
 Produce a linear operator for this action.
LinearOperator< T > * lgamma5epsH (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator for gamma5 epsilon(H) psi.
LinearOperator< T > * lgamma5epsHPrecondition (Handle< FermState< T, P, Q > > state) const
 Produce a linear operator for gamma5 epsilon(H) psi.
 ~OvlapPartFrac4DFermAct ()
 Destructor is automatic.

Protected Member Functions

const CreateFermState< T,
P, Q > & 
getCreateState () const
 Return the factory object that produces a state.
void init (int &numroot, Real &coeffP, multi1d< Real > &resP, multi1d< Real > &rootQ, int &NEig, multi1d< Real > &EigValFunc, const EigenConnectState &state) const
 Creation routine.
void initPrec (int &numroot, Real &coeffP, multi1d< Real > &resP, multi1d< Real > &rootQ, int &NEig, multi1d< Real > &EigValFunc, const EigenConnectState &state) const
 Construct stuff but use RatPolyDegPrec in the polynomial.

Private Member Functions

 OvlapPartFrac4DFermAct ()
 Partial constructor not allowed.
void operator= (const OvlapPartFrac4DFermAct &a)

Private Attributes

Handle< FermBC< T, P, Q > > fbc
Handle< CreateFermState< T,
P, Q > > 
cfs
Handle< UnprecWilsonTypeFermAct<
T, P, Q > > 
Mact
OvlapPartFrac4DFermActParams params

Detailed Description

4D Zolotarev variant of Overlap-Dirac operator

This routine is specific to Wilson-like fermions!

NOTE: for now we assume the kernel is a fund. rep. fermion type, but that is not necessary

Definition at line 76 of file ovlap_partfrac4d_fermact_w.h.


Member Typedef Documentation

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

Reimplemented from Chroma::OverlapFermActBase.

Definition at line 81 of file ovlap_partfrac4d_fermact_w.h.

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

Reimplemented from Chroma::OverlapFermActBase.

Definition at line 82 of file ovlap_partfrac4d_fermact_w.h.

typedef LatticeFermion Chroma::OvlapPartFrac4DFermAct::T

Reimplemented from Chroma::OverlapFermActBase.

Definition at line 80 of file ovlap_partfrac4d_fermact_w.h.


Constructor & Destructor Documentation

Chroma::OvlapPartFrac4DFermAct::OvlapPartFrac4DFermAct ( Handle< FermBC< T, P, Q > >  fbc_,
const OvlapPartFrac4DFermActParams params 
)

Constructor.

Definition at line 188 of file ovlap_partfrac4d_fermact_w.cc.

References Chroma::OvlapPartFrac4DFermActParams::AuxFermAct, Chroma::OvlapPartFrac4DFermActParams::AuxMass, cfs, fbc, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Mact, Chroma::OvlapPartFrac4DFermActEnv::name, params, Chroma::read(), and Chroma::S_f.

Chroma::OvlapPartFrac4DFermAct::~OvlapPartFrac4DFermAct (  )  [inline]

Destructor is automatic.

Definition at line 164 of file ovlap_partfrac4d_fermact_w.h.

Chroma::OvlapPartFrac4DFermAct::OvlapPartFrac4DFermAct (  )  [private]

Partial constructor not allowed.

Referenced by clone().


Member Function Documentation

OvlapPartFrac4DFermAct* Chroma::OvlapPartFrac4DFermAct::clone (  )  const [inline, virtual]

Virtual copy constructor.

Implements Chroma::OverlapFermActBase.

Definition at line 90 of file ovlap_partfrac4d_fermact_w.h.

References OvlapPartFrac4DFermAct().

EigenConnectState * Chroma::OvlapPartFrac4DFermAct::createState ( const multi1d< LatticeColorMatrix > &  u_  )  const

Create a ConnectState with just the gauge fields.

Override the parent

Definition at line 1302 of file ovlap_partfrac4d_fermact_w.cc.

References fbc.

EigenConnectState * Chroma::OvlapPartFrac4DFermAct::createState ( const multi1d< LatticeColorMatrix > &  u,
XMLReader &  state_info_xml,
const string &  state_info_path 
) const

Create OverlapConnectState from XML.

Definition at line 1310 of file ovlap_partfrac4d_fermact_w.cc.

References fbc, Chroma::EigenConnectState::getEvalues(), Chroma::EigenConnectState::getEvectors(), Chroma::EigenConnectState::getNEig(), Mact, Chroma::PLUS, and Chroma::read().

const CreateFermState<T,P,Q>& Chroma::OvlapPartFrac4DFermAct::getCreateState (  )  const [inline, protected]

Return the factory object that produces a state.

Definition at line 168 of file ovlap_partfrac4d_fermact_w.h.

References cfs.

Real Chroma::OvlapPartFrac4DFermAct::getQuarkMass ( void   )  const [inline, virtual]

Return the quark mass.

Implements Chroma::OverlapFermActBase.

Definition at line 93 of file ovlap_partfrac4d_fermact_w.h.

References Chroma::OvlapPartFrac4DFermActParams::Mass, and params.

void Chroma::OvlapPartFrac4DFermAct::init ( int &  numroot,
Real &  coeffP,
multi1d< Real > &  resP,
multi1d< Real > &  rootQ,
int &  NEig,
multi1d< Real > &  EigValFunc,
const EigenConnectState state 
) const [protected]

Creation routine.

Definition at line 263 of file ovlap_partfrac4d_fermact_w.cc.

References Chroma::StagPhases::alpha(), Chroma::OvlapPartFrac4DFermActParams::approximation_type, Chroma::OvlapPartFrac4DFermActParams::approxMax, Chroma::OvlapPartFrac4DFermActParams::approxMin, Chroma::COEFF_TYPE_TANH, Chroma::COEFF_TYPE_TANH_UNSCALED, Chroma::COEFF_TYPE_ZOLOTAREV, Chroma::StaggeredFlavorOperators::AntiSymmetricTensor4D::eps, higham(), Chroma::OvlapPartFrac4DFermActParams::invParamInner, Chroma::OvlapPartFrac4DFermActParams::Mass, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, params, Chroma::OvlapPartFrac4DFermActParams::RatPolyDeg, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, Chroma::state, and zolotarev().

Referenced by lgamma5epsH(), lMdagM(), and unprecLinOp().

void Chroma::OvlapPartFrac4DFermAct::initPrec ( int &  numroot,
Real &  coeffP,
multi1d< Real > &  resP,
multi1d< Real > &  rootQ,
int &  NEig,
multi1d< Real > &  EigValFunc,
const EigenConnectState state 
) const [protected]

Construct stuff but use RatPolyDegPrec in the polynomial.

Definition at line 550 of file ovlap_partfrac4d_fermact_w.cc.

References Chroma::StagPhases::alpha(), Chroma::OvlapPartFrac4DFermActParams::approximation_type, Chroma::OvlapPartFrac4DFermActParams::approxMax, Chroma::OvlapPartFrac4DFermActParams::approxMin, Chroma::COEFF_TYPE_TANH, Chroma::COEFF_TYPE_TANH_UNSCALED, Chroma::COEFF_TYPE_ZOLOTAREV, Chroma::StaggeredFlavorOperators::AntiSymmetricTensor4D::eps, higham(), Chroma::OvlapPartFrac4DFermActParams::invParamInner, Chroma::OvlapPartFrac4DFermActParams::Mass, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, params, Chroma::OvlapPartFrac4DFermActParams::RatPolyDeg, Chroma::OvlapPartFrac4DFermActParams::RatPolyDegPrecond, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, Chroma::state, and zolotarev().

Referenced by lgamma5epsHPrecondition(), linOpPrecondition(), and lMdagMPrecondition().

bool Chroma::OvlapPartFrac4DFermAct::isChiral (  )  const [inline, virtual]

Is the operator Chiral.

The operator is chiral if it satisfies the GW relation (or a massive version of it). It is certainly the intention that this operator be chiral in this sense. However, setting it up wrongly may make it non chiral. that would need a run-time check. So this is a hack below, signifying intent

Implements Chroma::OverlapFermActBase.

Definition at line 103 of file ovlap_partfrac4d_fermact_w.h.

References Chroma::OvlapPartFrac4DFermActParams::isChiralP, and params.

LinearOperator< LatticeFermion > * Chroma::OvlapPartFrac4DFermAct::lgamma5epsH ( Handle< FermState< T, P, Q > >  state_  )  const [virtual]

Produce a linear operator for gamma5 epsilon(H) psi.

The operator acts on the entire lattice

Parameters:
state_ gauge field state (Read)

Implements Chroma::OverlapFermActBase.

Definition at line 990 of file ovlap_partfrac4d_fermact_w.cc.

References END_CODE, init(), Chroma::OvlapPartFrac4DFermActParams::inner_solver_type, Chroma::OvlapPartFrac4DFermActParams::invParamInner, Mact, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, Chroma::OVERLAP_INNER_CG_DOUBLE_PASS, Chroma::OVERLAP_INNER_CG_SINGLE_PASS, params, Chroma::OvlapPartFrac4DFermActParams::ReorthFreqInner, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, START_CODE, and Chroma::state.

LinearOperator< LatticeFermion > * Chroma::OvlapPartFrac4DFermAct::lgamma5epsHPrecondition ( Handle< FermState< T, P, Q > >  state_  )  const [virtual]

Produce a linear operator for gamma5 epsilon(H) psi.

The operator acts on the entire lattice

Parameters:
state_ gauge field state (Read)

Implements Chroma::OverlapFermActBase.

Definition at line 1063 of file ovlap_partfrac4d_fermact_w.cc.

References END_CODE, initPrec(), Chroma::OvlapPartFrac4DFermActParams::inner_solver_type, Chroma::OvlapPartFrac4DFermActParams::invParamInner, Mact, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, Chroma::OVERLAP_INNER_CG_DOUBLE_PASS, Chroma::OVERLAP_INNER_CG_SINGLE_PASS, params, Chroma::OvlapPartFrac4DFermActParams::ReorthFreqInner, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, START_CODE, and Chroma::state.

LinearOperator< LatticeFermion > * Chroma::OvlapPartFrac4DFermAct::linOpPrecondition ( Handle< FermState< T, P, Q > >  state_  )  const [virtual]

Produce a linear operator for this action.

The operator acts on the entire lattice

Parameters:
state_ gauge field state (Read)

Implements Chroma::OverlapFermActBase.

Definition at line 917 of file ovlap_partfrac4d_fermact_w.cc.

References END_CODE, initPrec(), Chroma::OvlapPartFrac4DFermActParams::inner_solver_type, Chroma::OvlapPartFrac4DFermActParams::invParamInner, Mact, Chroma::OvlapPartFrac4DFermActParams::Mass, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, Chroma::OVERLAP_INNER_CG_DOUBLE_PASS, Chroma::OVERLAP_INNER_CG_SINGLE_PASS, params, Chroma::OvlapPartFrac4DFermActParams::ReorthFreqInner, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, START_CODE, and Chroma::state.

Referenced by lMdagMPrecondition().

DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::OvlapPartFrac4DFermAct::lMdagM ( Handle< FermState< T, P, Q > >  state_,
const Chirality ichiral 
) const [virtual]

Produce a linear operator for this action.

The operator acts on the entire lattice

Parameters:
state_ gauge field state (Read)

Implements Chroma::OverlapFermActBase.

Definition at line 1149 of file ovlap_partfrac4d_fermact_w.cc.

References Chroma::CH_NONE, END_CODE, init(), Chroma::OvlapPartFrac4DFermActParams::inner_solver_type, Chroma::OvlapPartFrac4DFermActParams::invParamInner, lMdagM(), Mact, Chroma::OvlapPartFrac4DFermActParams::Mass, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, Chroma::OVERLAP_INNER_CG_DOUBLE_PASS, Chroma::OVERLAP_INNER_CG_SINGLE_PASS, params, Chroma::OvlapPartFrac4DFermActParams::ReorthFreqInner, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, and Chroma::state.

DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::OvlapPartFrac4DFermAct::lMdagM ( Handle< FermState< T, P, Q > >  state  )  const [virtual]

Produce a conventional MdagM operator for this action.

NOTE: the arg MUST be the original base because C++ requires it for a virtual func! The function will have to downcast to get the correct state

Implements Chroma::OverlapFermActBase.

Definition at line 1131 of file ovlap_partfrac4d_fermact_w.cc.

References Chroma::OverlapFermActBase::linOp().

Referenced by lMdagM(), and lMdagMPrecondition().

LinearOperator< LatticeFermion > * Chroma::OvlapPartFrac4DFermAct::lMdagMPrecondition ( Handle< FermState< T, P, Q > >  state_,
const Chirality ichiral 
) const [virtual]

Produce a linear operator for this action.

The operator acts on the entire lattice

Parameters:
state_ gauge field state (Read)

Implements Chroma::OverlapFermActBase.

Definition at line 1220 of file ovlap_partfrac4d_fermact_w.cc.

References Chroma::CH_NONE, END_CODE, initPrec(), Chroma::OvlapPartFrac4DFermActParams::inner_solver_type, Chroma::OvlapPartFrac4DFermActParams::invParamInner, lMdagM(), Mact, Chroma::OvlapPartFrac4DFermActParams::Mass, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, Chroma::OVERLAP_INNER_CG_DOUBLE_PASS, Chroma::OVERLAP_INNER_CG_SINGLE_PASS, params, Chroma::OvlapPartFrac4DFermActParams::ReorthFreqInner, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, and Chroma::state.

LinearOperator< LatticeFermion > * Chroma::OvlapPartFrac4DFermAct::lMdagMPrecondition ( Handle< FermState< T, P, Q > >  state  )  const [virtual]

Produce a conventional MdagM operator for this action.

NOTE: the arg MUST be the original base because C++ requires it for a virtual func! The function will have to downcast to get the correct state

Implements Chroma::OverlapFermActBase.

Definition at line 1291 of file ovlap_partfrac4d_fermact_w.cc.

References linOpPrecondition().

void Chroma::OvlapPartFrac4DFermAct::operator= ( const OvlapPartFrac4DFermAct a  )  [inline, private]

Definition at line 193 of file ovlap_partfrac4d_fermact_w.h.

UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * Chroma::OvlapPartFrac4DFermAct::unprecLinOp ( Handle< FermState< T, P, Q > >  state,
const Real &  m_q 
) const [virtual]

Produce a linear operator for this action.

NOTE: the arg MUST be the original base because C++ requires it for a virtual func! The function will have to downcast to get the correct state

Implements Chroma::OverlapFermActBase.

Definition at line 838 of file ovlap_partfrac4d_fermact_w.cc.

References END_CODE, init(), Chroma::OvlapPartFrac4DFermActParams::inner_solver_type, Chroma::OvlapPartFrac4DFermActParams::invParamInner, Mact, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::MaxCG, Chroma::OVERLAP_INNER_CG_DOUBLE_PASS, Chroma::OVERLAP_INNER_CG_SINGLE_PASS, params, Chroma::OvlapPartFrac4DFermActParams::ReorthFreqInner, Chroma::OvlapPartFrac4DFermActParams::InvParamInner::RsdCG, START_CODE, and Chroma::state.


Member Data Documentation

Handle< CreateFermState<T,P,Q> > Chroma::OvlapPartFrac4DFermAct::cfs [private]

Definition at line 197 of file ovlap_partfrac4d_fermact_w.h.

Referenced by getCreateState(), and OvlapPartFrac4DFermAct().

Handle< FermBC<T,P,Q> > Chroma::OvlapPartFrac4DFermAct::fbc [private]

Definition at line 196 of file ovlap_partfrac4d_fermact_w.h.

Referenced by createState(), and OvlapPartFrac4DFermAct().

Handle< UnprecWilsonTypeFermAct<T,P,Q> > Chroma::OvlapPartFrac4DFermAct::Mact [private]

Definition at line 199 of file ovlap_partfrac4d_fermact_w.h.

Referenced by createState(), lgamma5epsH(), lgamma5epsHPrecondition(), linOpPrecondition(), lMdagM(), lMdagMPrecondition(), OvlapPartFrac4DFermAct(), and unprecLinOp().

OvlapPartFrac4DFermActParams Chroma::OvlapPartFrac4DFermAct::params [private]

Definition at line 200 of file ovlap_partfrac4d_fermact_w.h.

Referenced by getQuarkMass(), init(), initPrec(), isChiral(), lgamma5epsH(), lgamma5epsHPrecondition(), linOpPrecondition(), lMdagM(), lMdagMPrecondition(), OvlapPartFrac4DFermAct(), and unprecLinOp().


The documentation for this class was generated from the following files:
Generated on Sun Nov 22 04:40:03 2009 for CHROMA by  doxygen 1.4.7