15#include <arccore/message_passing/MessagePassingGlobal.h>
16#include <alien/utils/Precomp.h>
91 virtual Arccore::String getBackEndName()
const = 0;
97 virtual void end() = 0;
118 virtual SolverStat const& getSolverStat()
const = 0;
124 virtual std::shared_ptr<ILinearAlgebra>
algebra()
const = 0;
149#ifdef USE_MULTI_SOLVER_INSTANCE
170 virtual void setDiagScaling(
const IMatrix& matrix) = 0 ;
Interface for linear algebra.
ILinearSolverWithDiagScaling()
Constructor.
virtual ~ILinearSolverWithDiagScaling()
Free resources.
virtual void updateParallelMng(Arccore::MessagePassing::IMessagePassingMng *pm)=0
update parallel_mng, required for redistribution
SolverStatus Status
Type of the solver status.
virtual void init()=0
Initialization.
virtual ~ILinearSolver()
Free resources.
ILinearSolver()
Constructor.
virtual void end()=0
Finalization.
virtual bool solve(const IMatrix &A, const IVector &b, IVector &x)=0
Solves a linear system.
virtual std::shared_ptr< ILinearAlgebra > algebra() const =0
Get a compatible linear algebra, i.e. a linear algebra matching the solver kernel.
virtual bool hasParallelSupport() const =0
Whether or not the solver support parallel solve.
virtual void setNullSpaceConstantOption(bool flag)=0
Option to add an extra-equation.
virtual const SolverStatus & getStatus() const =0
Get resolution information.
Interface for all matrices.
Interface for all vectors.
Implementation of an algebraic space.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Structure to store a solver status.
Arccore::Integer iteration_count
The number of iterations.
Arccore::Real residual
The residual.
bool succeeded
Whether or not the solver succeeded.
SolverStatus()
Constructor.
Arccore::Integer error
The error.