22 namespace EvenOddPrecZoloNEFFermActArrayEnv
26 multi1d<LatticeColorMatrix>,
37 multi1d<LatticeColorMatrix>,
69 XMLReader paramtop(xml, path);
78 if( paramtop.count(
"ApproximationType") == 1 )
99 QDPIO::cerr <<
"Caught Exception : " << e << std::endl;
114 multi1d<Real>& c5_arr)
const
124 zolotarev_data *rdata;
129 epsilon = approxMin / approxMax;
130 QDPIO::cout <<
"Initing Linop with Zolotarev Coefficients: epsilon = " <<
epsilon << std::endl;
132 scale_fac = approxMax;
137 QDPIO::cout <<
"Initing Linop with Higham Rep tanh Coefficients" << std::endl;
151 QDPIO::cerr <<
"Error:rdata->n != N5" << std::endl;
157 gamma[
i] = Real(rdata->gamma[
i])*scale_fac;
160 Real maxerr=rdata->Delta;
163 QDPIO::cout <<
"Initing Zolo NEF Linop: N5=" <<
params.
N5
167 <<
" scale=" << approxMax
168 <<
" maxerr=" << maxerr << std::endl;
172 Real
omega = Real(1)/gamma[
i];
177 QDPIO::cout <<
"i=" <<
i <<
" omega["<<
i<<
"]=" <<
omega
178 <<
" b5["<<
i <<
"] ="<< b5_arr[
i]
179 <<
" c5["<<
i <<
"] ="<< c5_arr[
i] << std::endl;
180 QDPIO::cout <<
"i=" <<
i
181 <<
" b5["<<
i<<
"]+c5["<<
i<<
"]/omega["<<
i<<
"] ="
183 <<
" b5["<<
i<<
"]-c5["<<
i<<
"]=" << b5_arr[
i]-c5_arr[
i] << std::endl;
191 multi1d<LatticeColorMatrix>,
192 multi1d<LatticeColorMatrix> >*
194 const Real& m_q)
const
196 multi1d<Real> b5_arr;
197 multi1d<Real> c5_arr;
207 multi1d<LatticeColorMatrix>,
208 multi1d<LatticeColorMatrix> >*
210 const Real& m_q)
const
212 multi1d<Real> b5_arr;
213 multi1d<Real> c5_arr;
225 const LatticePropagator& q_src,
Primary include file for CHROMA library code.
SystemSolver< LatticeFermion > * qprop(Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const
Define quark propagator routine for 4D fermions.
4D Even Odd preconditioned domain-wall Dirac operator
4D Even Odd preconditioned NEF domain-wall Dirac operator
EvenOddPreconditioned NEF fermion action.
EvenOddPrecZoloNEFFermActArrayParams params
EvenOddPrecDWLikeLinOpBaseArray< T, P, Q > * precLinOp(Handle< FermState< T, P, Q > > state, const Real &m_q) const
Produce an even-odd preconditioned linear operator for this action with arbitrary quark mass.
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.
void initCoeffs(multi1d< Real > &b5_arr, multi1d< Real > &c5_arr) const
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.
Support class for fermion actions and linear operators.
Base class for quadratic matter actions (e.g., fermions)
Class for counted reference semantics.
Unpreconditioned domain-wall Dirac operator.
Unpreconditioned domain-wall Dirac operator.
Wilson-like fermion actions.
4D Even Odd preconditioned NEF domain-wall fermion linear operator generalised to take array of b_5 a...
Unpreconditioned NEF domain-wall fermion action.
All ferm create-state method.
Fermion action factories.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
QuarkSpinType
Quark spin type.
@ COEFF_TYPE_TANH_UNSCALED
void nef_quarkProp4(LatticePropagator &q_sol, XMLWriter &xml_out, const LatticePropagator &q_src, int t_src, int j_decay, const UnprecDWFermActBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &S_f, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam, int &ncg_had)
Given a complete propagator as a source, this does all the inversions needed.
void quarkProp4(LatticeStaggeredPropagator &q_sol, XMLWriter &xml_out, const LatticeStaggeredPropagator &q_src, const StaggeredTypeFermAct< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &S_f, Handle< FermState< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam, QuarkSpinType quarkSpinType, int &ncg_had)
Given a complete propagator as a source, this does all the inversions needed.
Handle< CreateFermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > reader(XMLReader &xml_in, const std::string &path)
Helper function for the CreateFermState readers.
static bool registered
Local registration flag.
bool registerAll()
Register all the factories.
WilsonTypeFermAct5D< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFermAct5D(XMLReader &xml_in, const std::string &path)
Callback function.
FermionAction< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFermAct(XMLReader &xml_in, const std::string &path)
Callback function.
const std::string name
Name to be used.
int epsilon(int i, int j, int k)
Asqtad Staggered-Dirac operator.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Full quark propagator solver for domain wall fermions.
Full quark propagator solver.
Real ApproxMax
Approximate max eigenvalue of H_T.
Real OverMass
Mass of auxiliary Wilson action.
Real ApproxMin
Approximate min eigenvalue of H_T.
Real b5
b5 in H_T expression
EvenOddPrecZoloNEFFermActArrayParams()
Real c5
c5 in H_T expression
CoeffType approximation_type
ZOLOTAREV | TANH | Other approximation coeffs.
Hold group xml and type id.
Unpreconditioned NEF domain-wall fermion linear operator.
Unpreconditioned Wilson fermion action.
void zolotarev_free(ZOLOTAREV_DATA *f)
ZOLOTAREV_DATA * higham(PRECISION epsilon, int n)
ZOLOTAREV_DATA * zolotarev(PRECISION epsilon, int n, int type)