9#include <arccore/message_passing/MessagePassingGlobal.h>
10#include <alien/utils/Precomp.h>
35template <
class Matrix,
class Vector>
50 virtual void updateParallelMng([[maybe_unused]] Arccore::MessagePassing::IMessagePassingMng* pm) {}
103 virtual std::shared_ptr<ILinearAlgebra>
algebra()
const
105 return std::shared_ptr<ILinearAlgebra>();
Internal linear solver interface.
virtual void end()
Finalize the linear solver.
virtual void updateParallelMng(Arccore::MessagePassing::IMessagePassingMng *pm)
Update parallel manager.
virtual SolverStat const & getSolverStat() const =0
Get statistics on the solve phase.
virtual SolverStat & getSolverStat()=0
Get statistics on the solve phase.
virtual ~IInternalLinearSolver()
Free resources.
virtual const SolverStatus & getStatus() const =0
Get solver resolution status.
virtual void init()
Initialize the linear solver.
virtual bool hasParallelSupport() const =0
Indicates if the kernel is parallel.
virtual std::shared_ptr< ILinearAlgebra > algebra() const
Get compatible linear algebra.
virtual bool solve(const Matrix &A, const Vector &b, Vector &x)=0
Solve the linear system A * x = b.
Interface for linear algebra.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Structure to store a solver status.