6 #include <amdis/linearalgebra/RunnerInterface.hpp> 7 #include <amdis/linearalgebra/SolverInfo.hpp> 8 #include <amdis/linearalgebra/eigen/SolverConfig.hpp> 17 template <
class Mat,
class Vec,
template <
class>
class Solver>
21 using M =
typename Mat::BaseMatrix;
22 using X =
typename Vec::BaseVector;
23 using Y =
typename Vec::BaseVector;
26 using EigenSolver = Solver<M>;
38 void init(M
const& A)
override 40 if (!reusePattern_ || !initialized_) {
41 solver_.analyzePattern(A);
46 test_exit(solver_.info() == Eigen::Success,
47 "Error in solver.compute(matrix)");
68 return solver_.info() == Eigen::Success ? 0 : 1;
73 bool reusePattern_ =
false;
74 bool initialized_ =
false;
DirectRunner(std::string const &prefix)
Constructor.
Definition: DirectRunner.hpp:30
void setAbsResidual(double r)
Sets absResidual_.
Definition: SolverInfo.hpp:80
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Definition: DirectRunner.hpp:18
void init(M const &A) override
Implements RunnerInterface::init()
Definition: DirectRunner.hpp:38
static std::optional< T > get(std::string const &key)
Get parameter-values from parameter-tree.
Definition: Initfile.hpp:25
int solve(M const &A, X &x, Y const &b, SolverInfo &solverInfo)
Implements RunnerInterface::solve()
Definition: DirectRunner.hpp:57
void exit() override
Implements RunnerInterface::exit()
Definition: DirectRunner.hpp:51
void setError(int e)
Sets error_.
Definition: SolverInfo.hpp:98
Definition: SolverInfo.hpp:11
Definition: SolverConfig.hpp:13
void test_exit(bool condition, std::string const &str, Args &&... args)
test for condition and in case of failure print message and exit
Definition: Output.hpp:163
Interface for Runner / Worker types used in solver classes.
Definition: RunnerInterface.hpp:11