From 352029bf226229816ab11165febd15046828a5f2 Mon Sep 17 00:00:00 2001 From: Thomas Fischer <thomas.fischer@ufz.de> Date: Mon, 20 Dec 2021 10:44:49 +0100 Subject: [PATCH] [MaL/LA] EigenLisLinearSolver constr. using string lis_options. --- .../LinAlg/EigenLis/EigenLisLinearSolver.cpp | 6 ++++++ .../LinAlg/EigenLis/EigenLisLinearSolver.h | 20 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp index b671f04fe07..6fa9e83fc53 100644 --- a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp +++ b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp @@ -29,6 +29,12 @@ EigenLisLinearSolver::EigenLisLinearSolver( { } +EigenLisLinearSolver::EigenLisLinearSolver(std::string const& /*solver_name*/, + std::string const& lis_options) + : lis_option_(nullptr), lis_options_(lis_options) +{ +} + bool EigenLisLinearSolver::solve(EigenMatrix& A_, EigenVector& b_, EigenVector& x_) { diff --git a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h index a29668dede7..cb7daf450af 100644 --- a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h +++ b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.h @@ -10,10 +10,10 @@ #pragma once -#include <vector> - #include <lis.h> +#include <vector> + #include "BaseLib/ConfigTree.h" #include "MathLib/LinAlg/Lis/LisOption.h" @@ -40,15 +40,31 @@ public: EigenLisLinearSolver(const std::string solver_name, BaseLib::ConfigTree const*const option); + /** + * Constructor + * @param solver_name A name used as a prefix for command line options + * if there are such options available. + * @param lis_options string containing the options for LIS library; options + * will be applied in the solve method. + */ + EigenLisLinearSolver(std::string const& solver_name, + std::string const& lis_options); /** * copy linear solvers options + * @param lis_options string containing the options for LIS library; options + * will be applied in the solve method. */ void setOption(const LisOption& option) { lis_option_ = option; } + void setOption(std::string const& lis_options) + { + lis_options_ = lis_options; + } bool solve(EigenMatrix &A, EigenVector& b, EigenVector &x); private: LisOption lis_option_; + std::string lis_options_; }; } // MathLib -- GitLab