Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::ILinearSolver Class Referenceabstract

Linear solver interface. More...

#include <core/alien/expression/solver/ILinearSolver.h>

Inheritance diagram for Alien::ILinearSolver:
Collaboration diagram for Alien::ILinearSolver:

Public Types

typedef SolverStatus Status
 Type of the solver status.

Public Member Functions

 ILinearSolver ()
 Constructor.
virtual ~ILinearSolver ()
 Free resources.
virtual Arccore::String getBackEndName () const =0
virtual void init ()=0
 Initialization.
virtual void end ()=0
 Finalization.
virtual void updateParallelMng (Arccore::MessagePassing::IMessagePassingMng *pm)=0
 update parallel_mng, required for redistribution
virtual bool solve (const IMatrix &A, const IVector &b, IVector &x)=0
 Solves a linear system.
virtual SolverStat const & getSolverStat () const =0
virtual std::shared_ptr< ILinearAlgebraalgebra () 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 const SolverStatusgetStatus () const =0
 Get resolution information.
virtual void setNullSpaceConstantOption (bool flag)=0
 Option to add an extra-equation.

Detailed Description

Linear solver interface.

Definition at line 70 of file ILinearSolver.h.

Member Typedef Documentation

◆ Status

Type of the solver status.

Todo
Change to a more abstract implementation based on CaseOptions

Definition at line 77 of file ILinearSolver.h.

Constructor & Destructor Documentation

◆ ILinearSolver()

Alien::ILinearSolver::ILinearSolver ( )
inline

Constructor.

Definition at line 81 of file ILinearSolver.h.

Referenced by setNullSpaceConstantOption().

Here is the caller graph for this function:

◆ ~ILinearSolver()

virtual Alien::ILinearSolver::~ILinearSolver ( )
inlinevirtual

Free resources.

Definition at line 84 of file ILinearSolver.h.

Member Function Documentation

◆ algebra()

virtual std::shared_ptr< ILinearAlgebra > Alien::ILinearSolver::algebra ( ) const
pure virtual

Get a compatible linear algebra, i.e. a linear algebra matching the solver kernel.

Returns
A compatible linear algebra

Implemented in Alien::LinearSolver< Tag >.

◆ end()

virtual void Alien::ILinearSolver::end ( )
pure virtual

Finalization.

Implemented in Alien::LinearSolver< Tag >.

◆ getBackEndName()

virtual Arccore::String Alien::ILinearSolver::getBackEndName ( ) const
pure virtual

Implemented in Alien::LinearSolver< Tag >.

◆ getSolverStat()

virtual SolverStat const & Alien::ILinearSolver::getSolverStat ( ) const
pure virtual

Implemented in Alien::LinearSolver< Tag >.

◆ getStatus()

virtual const SolverStatus & Alien::ILinearSolver::getStatus ( ) const
pure virtual

Get resolution information.

Returns
Information about the solve process

Implemented in Alien::LinearSolver< Tag >.

◆ hasParallelSupport()

virtual bool Alien::ILinearSolver::hasParallelSupport ( ) const
pure virtual

Whether or not the solver support parallel solve.

Returns
Whether or not the solver is parallel

Implemented in Alien::LinearSolver< Tag >.

◆ init()

virtual void Alien::ILinearSolver::init ( )
pure virtual

Initialization.

Implemented in Alien::LinearSolver< Tag >.

◆ setNullSpaceConstantOption()

virtual void Alien::ILinearSolver::setNullSpaceConstantOption ( bool flag)
pure virtual

Option to add an extra-equation.

Option to add an extra-equation to the linear system such as a constraint equation

Parameters
[in]flagIf the option is activated
Todo
Implement this method

Implemented in Alien::LinearSolver< Tag >.

References ILinearSolver().

Here is the call graph for this function:

◆ solve()

virtual bool Alien::ILinearSolver::solve ( const IMatrix & A,
const IVector & b,
IVector & x )
pure virtual

Solves a linear system.

Parameters
[in]AThe matrix
[in]bThe rhs
[in,out]Thesolution
Returns
Whether or not the solver succeeded

Implemented in Alien::LinearSolver< Tag >.

◆ updateParallelMng()

virtual void Alien::ILinearSolver::updateParallelMng ( Arccore::MessagePassing::IMessagePassingMng * pm)
pure virtual

update parallel_mng, required for redistribution

Parameters
[in]pm: new parallel mng

Implemented in Alien::LinearSolver< Tag >.


The documentation for this class was generated from the following file: