19 static void init(std::string
const& prefix, Eigen::IterativeSolverBase<D>& solver)
21 using RealScalar =
typename Eigen::IterativeSolverBase<D>::RealScalar;
22 auto rtol = Parameters::get<RealScalar>(prefix +
"->relative tolerance");
24 solver.setTolerance(rtol.value());
28 solver.setMaxIterations(maxIter);
33 static void init(std::string
const&, Eigen::SparseSolverBase<D>&) {}
39 using Base = Eigen::IterativeSolverBase<Eigen::GMRES<M,P>>;
41 static void init(std::string
const& prefix, Eigen::GMRES<M,P>& solver)
45 auto restart = Parameters::get<int>(prefix +
"->restart");
47 solver.set_restart(restart.value());
54 using Base = Eigen::IterativeSolverBase<Eigen::DGMRES<M,P>>;
56 static void init(std::string
const& prefix, Eigen::DGMRES<M,P>& solver)
60 auto restart = Parameters::get<int>(prefix +
"->restart");
62 solver.set_restart(restart.value());
65 auto neigs = Parameters::get<int>(prefix +
"->num eigenvalues");
67 solver.setEigenv(neigs.value());
70 auto maxNeig = Parameters::get<int>(prefix +
"->max num eigenvalues");
72 solver.setMaxEigenv(maxNeig.value());
static std::optional< T > get(std::string const &key)
Get parameter-values from parameter-tree.
Definition Initfile.hpp:31