21 namespace UnprecZoloNEFFermActArrayEnv
25 multi1d<LatticeColorMatrix>,
36 multi1d<LatticeColorMatrix>,
68 XMLReader paramtop(xml, path);
77 if( paramtop.count(
"ApproximationType") == 1 )
98 QDPIO::cerr <<
"Caught Exception : " << e << std::endl;
113 multi1d<Real>& c5_arr)
const
121 zolotarev_data *rdata;
128 epsilon = approxMin / approxMax;
129 QDPIO::cout <<
"Initing Linop with Zolotarev Coefficients: epsilon = " <<
epsilon << std::endl;
131 scale_fac = approxMax;
136 QDPIO::cout <<
"Initing Linop with Higham Rep tanh Coefficients" << std::endl;
150 QDPIO::cerr <<
"Error:rdata->n != N5" << std::endl;
154 Real maxerr = rdata->Delta;
158 gamma[
i] = Real(rdata->gamma[
i])*scale_fac;
163 QDPIO::cout <<
"Initing Zolo NEF Linop: N5=" <<
params.
N5
167 <<
" scale=" << approxMax
168 <<
" Maxerr=" << maxerr << std::endl;
171 QDPIO::cout <<
"gamma[" <<
i <<
"] = " << gamma[
i] << std::endl;
175 Real
omega = Real(1)/gamma[
i];
180 QDPIO::cout <<
"i=" <<
i <<
" omega["<<
i<<
"]=" <<
omega
181 <<
" b5["<<
i <<
"] ="<< b5_arr[
i]
182 <<
" c5["<<
i <<
"] ="<< c5_arr[
i] << std::endl;
183 QDPIO::cout <<
"i=" <<
i <<
" b5["<<
i<<
"]+c5["<<
i<<
"]/omega["<<
i<<
"] ="
185 <<
" b5["<<
i<<
"]-c5["<<
i<<
"]=" << b5_arr[
i]-c5_arr[
i] << std::endl;
192 multi1d<LatticeColorMatrix>,
193 multi1d<LatticeColorMatrix> >*
195 const Real& m_q)
const
197 multi1d<Real> b5_arr;
198 multi1d<Real> c5_arr;
211 const LatticePropagator& q_src,
Primary include file for CHROMA library code.
Support class for fermion actions and linear operators.
Base class for quadratic matter actions (e.g., fermions)
Class for counted reference semantics.
SystemSolver< LatticeFermion > * qprop(Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const GroupXML_t &invParam) const
Define quark propagator routine for 4D fermions.
Unpreconditioned domain-wall Dirac operator.
Unpreconditioned domain-wall Dirac operator.
Unpreconditioned NEF fermion action.
UnprecZoloNEFFermActArrayParams params
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.
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
Hide =.
Wilson-like fermion actions.
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.
int epsilon(int i, int j, int k)
FermionAction< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFermAct(XMLReader &xml_in, const std::string &path)
Callback function.
const std::string name
Name to be used.
WilsonTypeFermAct5D< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > * createFermAct5D(XMLReader &xml_in, const std::string &path)
Callback function.
bool registerAll()
Register all the factories.
static bool registered
Local registration flag.
Asqtad Staggered-Dirac operator.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Full quark propagator solver for domain wall fermions.
Full quark propagator solver.
Hold group xml and type id.
Real c5
c5 in H_T expression
CoeffType approximation_type
ZOLOTAREV | TANH | Other approximation coeffs.
UnprecZoloNEFFermActArrayParams()
Real ApproxMax
Approximate max eigenvalue of H_T.
Real OverMass
Mass of auxiliary Wilson action.
Real b5
b5 in H_T expression
Real ApproxMin
Approximate min eigenvalue of H_T.
Unpreconditioned NEF domain-wall fermion linear operator.
Unpreconditioned Wilson fermion action.
Unpreconditioned NEF domain-wall fermion action.
void zolotarev_free(ZOLOTAREV_DATA *f)
ZOLOTAREV_DATA * higham(PRECISION epsilon, int n)
ZOLOTAREV_DATA * zolotarev(PRECISION epsilon, int n, int type)