Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::IInternalLinearSolver< Matrix, Vector > Class Template Referenceabstract

Internal linear solver interface. More...

#include <core/alien/core/backend/IInternalLinearSolverT.h>

Collaboration diagram for Alien::IInternalLinearSolver< Matrix, Vector >:

Public Member Functions

virtual ~IInternalLinearSolver ()
 Free resources.
virtual void updateParallelMng (Arccore::MessagePassing::IMessagePassingMng *pm)
 Update parallel manager.
virtual void init ()
 Initialize the linear solver.
virtual void end ()
 Finalize the linear solver.
virtual bool solve (const Matrix &A, const Vector &b, Vector &x)=0
 Solve the linear system A * x = b.
virtual SolverStat const & getSolverStat () const =0
 Get statistics on the solve phase.
virtual SolverStatgetSolverStat ()=0
 Get statistics on the solve phase.
virtual bool hasParallelSupport () const =0
 Indicates if the kernel is parallel.
virtual const SolverStatusgetStatus () const =0
 Get solver resolution status.
virtual std::shared_ptr< ILinearAlgebraalgebra () const
 Get compatible linear algebra.

Detailed Description

template<class Matrix, class Vector>
class Alien::IInternalLinearSolver< Matrix, Vector >

Internal linear solver interface.

Internal interface for all linear solver package

Template Parameters
MatrixThe type of matrix used
VectorThe type of vector used

Definition at line 36 of file IInternalLinearSolverT.h.

Constructor & Destructor Documentation

◆ ~IInternalLinearSolver()

template<class Matrix, class Vector>
virtual Alien::IInternalLinearSolver< Matrix, Vector >::~IInternalLinearSolver ( )
inlinevirtual

Free resources.

Definition at line 40 of file IInternalLinearSolverT.h.

Member Function Documentation

◆ algebra()

template<class Matrix, class Vector>
virtual std::shared_ptr< ILinearAlgebra > Alien::IInternalLinearSolver< Matrix, Vector >::algebra ( ) const
inlinevirtual

Get compatible linear algebra.

Returns
Linear algebra pointer

Definition at line 103 of file IInternalLinearSolverT.h.

◆ end()

template<class Matrix, class Vector>
virtual void Alien::IInternalLinearSolver< Matrix, Vector >::end ( )
inlinevirtual

Finalize the linear solver.

Definition at line 56 of file IInternalLinearSolverT.h.

◆ getSolverStat() [1/2]

template<class Matrix, class Vector>
virtual SolverStat const & Alien::IInternalLinearSolver< Matrix, Vector >::getSolverStat ( ) const
pure virtual

Get statistics on the solve phase.

Get statistics on the solver phase, such as iteration count, initialization time, solve time, etc.

Returns
Solver statistics

◆ getSolverStat() [2/2]

template<class Matrix, class Vector>
virtual SolverStat & Alien::IInternalLinearSolver< Matrix, Vector >::getSolverStat ( )
pure virtual

Get statistics on the solve phase.

Get statistics on the solver phase, such as iteration count, initialization time, solve time, etc.

Returns
Solver statistics

◆ getStatus()

template<class Matrix, class Vector>
virtual const SolverStatus & Alien::IInternalLinearSolver< Matrix, Vector >::getStatus ( ) const
pure virtual

Get solver resolution status.

Returns
The solver status

◆ hasParallelSupport()

template<class Matrix, class Vector>
virtual bool Alien::IInternalLinearSolver< Matrix, Vector >::hasParallelSupport ( ) const
pure virtual

Indicates if the kernel is parallel.

Returns
Parallel support capability

◆ init()

template<class Matrix, class Vector>
virtual void Alien::IInternalLinearSolver< Matrix, Vector >::init ( )
inlinevirtual

Initialize the linear solver.

Definition at line 53 of file IInternalLinearSolverT.h.

◆ solve()

template<class Matrix, class Vector>
virtual bool Alien::IInternalLinearSolver< Matrix, Vector >::solve ( const Matrix & A,
const Vector & b,
Vector & x )
pure virtual

Solve the linear system A * x = b.

Parameters
[in]AThe matrix to invert
[in]bThe right hand side
[in,out]xThe solution
Returns
Solver success or failure

◆ updateParallelMng()

template<class Matrix, class Vector>
virtual void Alien::IInternalLinearSolver< Matrix, Vector >::updateParallelMng ( Arccore::MessagePassing::IMessagePassingMng * pm)
inlinevirtual

Update parallel manager.

Allows to change parallel manager in cases where it changes, like solves in a redistributed environment

Parameters
[in]pmThe new parallel manager

Definition at line 50 of file IInternalLinearSolverT.h.


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