6 #ifndef __syssolver_linop_rel_bicgstab_multiprec_h__
7 #define __syssolver_linop_rel_bicgstab_multiprec_h__
29 namespace LinOpSysSolverReliableBiCGStabCloverEnv
45 typedef LatticeFermion
T;
46 typedef LatticeColorMatrix
U;
47 typedef multi1d<LatticeColorMatrix>
Q;
49 typedef LatticeFermionF
TF;
50 typedef LatticeColorMatrixF
UF;
51 typedef multi1d<LatticeColorMatrixF>
QF;
53 typedef LatticeFermionD
TD;
54 typedef LatticeColorMatrixD
UD;
55 typedef multi1d<LatticeColorMatrixD>
QD;
69 QF links_single; links_single.resize(
Nd);
70 QD links_double; links_double.resize(
Nd);
72 const Q& links = state_->getLinks();
74 links_single[
mu] = links[
mu];
75 links_double[
mu] = links[
mu];
97 const Subset&
subset()
const {
return A->subset();}
134 double time = swatch.getTimeInSeconds();
141 r[
A->subset()] -=
tmp;
142 res.
resid = sqrt(norm2(
r,
A->subset()));
144 QDPIO::cout <<
"RELIABLE_BICGSTAB_SOLVER: " << res.
n_count <<
" iterations. Rsd = " << res.
resid <<
" Relative Rsd = " << res.
resid/sqrt(norm2(
chi,
A->subset())) << std::endl;
145 QDPIO::cout <<
"RELIABLE_BICGSTAB_SOLVER_TIME: "<<time<<
" sec" << std::endl;
Even-odd preconditioned Clover-Dirac operator.
Even-odd preconditioned Clover-Dirac operator.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Solve a system using Richardson iteration.
const SysSolverReliableBiCGStabCloverParams invParam
LinOpSysSolverReliableBiCGStabClover()
Handle< LinearOperator< T > > A
SystemSolverResults_t operator()(T &psi, const T &chi) const
Solver the linear system.
~LinOpSysSolverReliableBiCGStabClover()
Destructor is automatic.
LinOpSysSolverReliableBiCGStabClover(Handle< LinearOperator< T > > A_, Handle< FermState< T, Q, Q > > state_, const SysSolverReliableBiCGStabCloverParams &invParam_)
Constructor.
Handle< LinearOperator< TF > > M_single
Handle< FermState< TF, QF, QF > > fstate_single
multi1d< LatticeColorMatrix > Q
Handle< LinearOperator< TD > > M_double
multi1d< LatticeColorMatrixD > QD
Handle< FermState< TD, QD, QD > > fstate_double
multi1d< LatticeColorMatrixF > QF
const Subset & subset() const
Return the subset on which the operator acts.
SystemSolver disambiguator.
Periodic version of FermState.
Parameters for Clover fermion action.
Even-odd preconditioned Clover fermion linear operator.
SystemSolverResults_t InvBiCGStabReliable(const LinearOperator< LatticeFermionF > &A, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)
Bi-CG stabilized.
Class for counted reference semantics.
M^dag*M composition of a linear operator.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)
Periodic ferm state and a creator.
BiCGStab Solver with reliable updates.
Support class for fermion actions and linear operators.
CloverFermActParams clovParams
Holds return info from SystemSolver call.
Factory for solving M*psi=chi where M is not hermitian or pos. def.
Disambiguator for MdagM system solvers.