25#include <alien/utils/Precomp.h>
29#include <arccore/base/NotImplementedException.h>
30#include <arccore/base/TraceInfo.h>
32#include <alien/core/backend/BackEnd.h>
33#include <alien/core/backend/IInternalLinearSolverT.h>
37#include <alien/expression/solver/SolverStater.h>
78 template <
typename... T>
143 std::shared_ptr<ILinearAlgebra>
algebra()
const;
162 throw NotImplementedException(A_FUNCINFO);
ILinearSolver()
Constructor.
Interface for all matrices.
Interface for all vectors.
void init()
Initialize the linear solver.
const SolverStatus & getStatus() const
Get solver resolution status.
std::unique_ptr< KernelSolver > m_solver
The linear solver kernel.
virtual ~LinearSolver()
Free resources.
void updateParallelMng(Arccore::MessagePassing::IMessagePassingMng *pm)
update parallel_mng, required for redistribution For some solver libraries, Solver is kind of a globa...
Arccore::String getBackEndName() const
Get package back end name.
LinearSolver(T... args)
Creates a linear solver.
KernelSolver * implem()
Get kernel solver implementation.
bool hasParallelSupport() const
Indicates if the kernel is parallel.
virtual void setNullSpaceConstantOption(bool flag)
Option to add an extra-equation.
void end()
Finalize the linear solver.
std::shared_ptr< ILinearAlgebra > algebra() const
Get compatible linear algebra.
const SolverStat & getSolverStat() const
Get statistics on the solve phase.
AlgebraTraits< Tag >::solver_type KernelSolver
The type of the solver.
bool solve(const IMatrix &A, const IVector &b, IVector &x)
Solve the linear system A * x = b.
Implementation of an algebraic space.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Structure to store a solver status.