diff --git a/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp b/MathLib/LinAlg/EigenLis/EigenLisLinearSolver.cpp index b671f04fe07960ca3a68720c1d94aae408bc31d3..6fa9e83fc53d70e7caffeef71db662a2cd029e45 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 a29668dede7a5d7e5db4bc106b803875fcfe3651..cb7daf450af36b04992f03dd2c8d15b77409965b 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