1 #include <eigen3/Eigen/Core>
23 for (
int i = 0; i < AMREX_SPACEDIM; i++)
24 for (
int j = 0; j < AMREX_SPACEDIM; j++)
25 if (mask(i,j)) r(i,j) = 0.0;
26 if (std::sqrt(r.lpNorm<2>()) < 1E-8)
33 for (
int k = 0; k < 10; k++)
35 Set::Scalar alpha = (r.transpose()*r).trace() / (p.transpose() * (A*p)).trace();
39 for (
int i = 0; i < AMREX_SPACEDIM; i++)
40 for (
int j = 0; j < AMREX_SPACEDIM; j++)
41 if (mask(i,j)) rnew(i,j) = 0.0;
43 if (verbose)
Util::Message(
INFO,
"Iteration ", k,
": Resid=" , std::sqrt(rnew.lpNorm<2>()));
44 if (std::sqrt(rnew.lpNorm<2>()) < 1E-8)
return x;
46 Set::Scalar beta = (rnew.transpose()*rnew).trace() / (r.transpose()*r).trace();