6 #ifndef __syssolver_linop_ibicgstab_h__
7 #define __syssolver_linop_ibicgstab_h__
21 namespace LinOpSysSolverIBiCGStabEnv
49 const Subset&
subset()
const {
return A->subset();}
78 double time = swatch.getTimeInSeconds();
85 r[
A->subset()] -=
tmp;
86 res.
resid = sqrt(norm2(
r,
A->subset()));
88 QDPIO::cout <<
"IBICGSTAB_SOLVER: " << res.
n_count <<
" iterations. Rsd = " << res.
resid <<
" Relative Rsd = " << res.
resid/sqrt(norm2(
chi,
A->subset())) << std::endl;
89 QDPIO::cout <<
"IBICGSTAB_SOLVER_TIME: "<<time<<
" sec" << std::endl;
Class for counted reference semantics.
Solve a M*psi=chi linear system by IBICGSTAB.
Handle< LinearOperator< T > > A
LinOpSysSolverIBiCGStab()
LinOpSysSolverIBiCGStab(Handle< LinearOperator< T > > A_, const SysSolverBiCGStabParams &invParam_)
Constructor.
const Subset & subset() const
Return the subset on which the operator acts.
SysSolverBiCGStabParams invParam
~LinOpSysSolverIBiCGStab()
Destructor is automatic.
SystemSolverResults_t operator()(T &psi, const T &chi) const
Solver the linear system.
SystemSolver disambiguator.
Class for counted reference semantics.
Conjugate-Gradient algorithm for a generic Linear Operator.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
SystemSolverResults_t InvIBiCGStab(const LinearOperator< LatticeFermionF > &A, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdBiCGStab, int MaxBiCGStab, enum PlusMinus isign)
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
Params for BiCGStab inverter.
Holds return info from SystemSolver call.
Disambiguator for LinOp system solvers.