Alien  1.3.0
User documentation
Loading...
Searching...
No Matches
Alien::EigenSolver< Tag > Class Template Reference

Eigen solver. More...

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

Public Types

typedef AlgebraTraits< Tag >::eigen_solver_type KernelSolver
 Type of the eigen solver used.
Public Types inherited from Alien::IEigenSolver
enum  eEigenValuesOrder {
  SmallestMagnitude , LargestMagnitude , SmallestReal , LargestReal ,
  SmallestImaginary , LargestImaginary
}
 Eigen values order. More...

Public Member Functions

 EigenSolver (Arccore::MessagePassing::IMessagePassingMng *parallel_mng=nullptr, IOptions *options=nullptr)
 Eigen solver constructor.
virtual ~EigenSolver ()
 Free resources.
Arccore::String getBackEndName () const
 Get kernel back end name.
void init ()
 Initialize the eigen solver.
bool solve (EigenProblem &p)
 Solve the eigen problem.
bool hasParallelSupport () const
 Indicates if the kernel is parallel.
const IEigenSolver::StatusgetStatus () const
 Get solver resolution status.
KernelSolverimplem ()
 Get kernel solver implementation.
Public Member Functions inherited from Alien::IEigenSolver
 IEigenSolver ()
 Constructor.
virtual ~IEigenSolver ()
 Free resources.

Detailed Description

template<class Tag>
class Alien::EigenSolver< Tag >

Eigen solver.

Solves an eigen problem and retrieve eigen vectors

Template Parameters
TagThe type of kernel used to compute eigen values

Definition at line 192 of file EigenSolver.h.

Member Typedef Documentation

◆ KernelSolver

template<class Tag>
typedef AlgebraTraits<Tag>::eigen_solver_type Alien::EigenSolver< Tag >::KernelSolver

Type of the eigen solver used.

Definition at line 196 of file EigenSolver.h.

Constructor & Destructor Documentation

◆ EigenSolver()

template<class Tag>
Alien::EigenSolver< Tag >::EigenSolver ( Arccore::MessagePassing::IMessagePassingMng * parallel_mng = nullptr,
IOptions * options = nullptr )

Eigen solver constructor.

Parameters
[in]parallel_mngThe parallel manager for parallel solve
[in]optionsOptions passed to the eigen solver

Definition at line 93 of file EigenSolverT.h.

◆ ~EigenSolver()

template<class Tag>
virtual Alien::EigenSolver< Tag >::~EigenSolver ( )
inlinevirtual

Free resources.

Definition at line 208 of file EigenSolver.h.

Member Function Documentation

◆ getBackEndName()

template<class Tag>
String Alien::EigenSolver< Tag >::getBackEndName ( ) const
virtual

Get kernel back end name.

Returns
The kernel name as a string

Implements Alien::IEigenSolver.

Definition at line 102 of file EigenSolverT.h.

◆ getStatus()

template<class Tag>
const IEigenSolver::Status & Alien::EigenSolver< Tag >::getStatus ( ) const
virtual

Get solver resolution status.

Returns
The solver status

Implements Alien::IEigenSolver.

Definition at line 139 of file EigenSolverT.h.

◆ hasParallelSupport()

template<class Tag>
bool Alien::EigenSolver< Tag >::hasParallelSupport ( ) const
virtual

Indicates if the kernel is parallel.

Returns
Parallel support capability

Implements Alien::IEigenSolver.

Definition at line 129 of file EigenSolverT.h.

◆ implem()

template<class Tag>
EigenSolver< Tag >::KernelSolver * Alien::EigenSolver< Tag >::implem ( )

Get kernel solver implementation.

Returns
Eigen solver actual implementation

Definition at line 149 of file EigenSolverT.h.

◆ init()

template<class Tag>
void Alien::EigenSolver< Tag >::init ( )
virtual

Initialize the eigen solver.

Implements Alien::IEigenSolver.

Definition at line 111 of file EigenSolverT.h.

◆ solve()

template<class Tag>
bool Alien::EigenSolver< Tag >::solve ( EigenProblem & p)
virtual

Solve the eigen problem.

Parameters
[in,out]pThe eigen problem
Returns
Solver success status

Implements Alien::IEigenSolver.

Definition at line 120 of file EigenSolverT.h.


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