15 #include "lattice/solver.h"
16 #include "lattice/fgmres_common.h"
17 #include "lattice/fine_qdpxx/invfgmres_qdpxx.h"
23 namespace LinOpSysSolverMGProtoCloverEnv
41 Handle<
FermState< LatticeFermion, multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> > >
state,
84 QDPIO::cout <<
"Jolly Greetings from Multigridland" << std::endl;
96 QDPIO::cout <<
"MG Preconditioner not found in Named Obj. Creating" << std::endl;
106 MG::FGMRESParams fine_solve_params;
112 shared_ptr<const MG::QDPWilsonCloverLinearOperator > M_ptr = (mg_pointer->mg_levels->fine_level).M;
114 MG::FGMRESSolverQDPXX FGMRESOuter(*M_ptr, fine_solve_params, (mg_pointer->v_cycle).get());
119 MG::LinearSolverResults res=FGMRESOuter(
psi,
chi, RELATIVE);
129 QDPIO::cout <<
"MG_PROTO_CLOVER_INVERTER: iters = "<< res.n_count <<
" rel resid = " << sqrt(n2rel) << std::endl;
132 QDPIO::cout <<
"MG_PROTO_CLOVER_INVERTER_TIME: call_time = "<< swatch2.getTimeInSeconds() <<
" sec. total_time=" << swatch.getTimeInSeconds() <<
" sec." << std::endl;
Primary include file for CHROMA library code.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Handle< FermState< T, Q, Q > > state
SystemSolverResults_t operator()(T &psi, const T &chi) const
Solve It!
MGProtoSolverParams invParam
~LinOpSysSolverMGProtoClover()
const Subset & subset() const
Return the subset on which the operator acts.
Handle< LinearOperator< T > > A
Class for counted reference semantics.
static bool registered
Local registration flag.
const std::string name
Name to be used.
LinOpSystemSolver< LatticeFermion > * createFerm(XMLReader &xml_in, const std::string &path, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, Handle< LinearOperator< LatticeFermion > > A)
bool registerAll()
Register all the factories.
shared_ptr< MGPreconditioner > getMGPreconditioner(const std::string &subspaceId)
void createMGPreconditioner(const MGProtoSolverParams ¶ms, const multi1d< LatticeColorMatrix > &u)
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::Q Q
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
FloatingPoint< double > Double
Support class for fermion actions and linear operators.
Double OuterSolverRsdTarget
Holds return info from SystemSolver call.
Factory for solving M*psi=chi where M is not hermitian or pos. def.