OGS
EigenLisLinearSolver.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <vector>
7
12
13namespace MathLib
14{
15class EigenVector;
16class EigenMatrix;
17class LisMatrix;
18class LisVector;
19
24{
25public:
33 EigenLisLinearSolver(std::string const& solver_name,
34 std::string const& lis_options);
40 void setOption(std::string const& lis_options)
41 {
42 lis_options_ = lis_options;
43 }
44
46
48 bool canSolveRectangular() const { return false; }
49
52 MathLib::LinearSolverBehaviour const /*linear_solver_behaviour*/) const
53 {
54 return true;
55 }
56
57private:
58 bool solve(LisMatrix& A, LisVector& b, LisVector& x);
59 std::string lis_options_;
60};
61
62} // namespace MathLib
EigenLisLinearSolver(std::string const &solver_name, std::string const &lis_options)
bool solve(EigenMatrix &A, EigenVector &b, EigenVector &x)
bool willCompute(MathLib::LinearSolverBehaviour const) const
Provided for compatibility with Eigen linear solvers.
void setOption(std::string const &lis_options)
bool canSolveRectangular() const
Get, if the solver can handle rectangular equation systems.
Global vector based on Eigen vector.
Definition EigenVector.h:19
LisMatrix is a wrapper class for matrix types of the linear iterative solvers library.
Definition LisMatrix.h:31
Lis vector wrapper class.
Definition LisVector.h:20