Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::GeneralizedEigenSolver< Tag > Class Template Reference

Generalized eigen solver. More...

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

Inheritance diagram for Alien::GeneralizedEigenSolver< Tag >:
Collaboration diagram for Alien::GeneralizedEigenSolver< Tag >:

Public Types

typedef AlgebraTraits< Tag >::generalized_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

 GeneralizedEigenSolver (IMessagePassingMng *parallel_mng=nullptr, IOptions *options=nullptr)
 Eigen solver constructor.
virtual ~GeneralizedEigenSolver ()
 Free resources.
Arccore::String getBackEndName () const
 Get kernel back end name.
void init ()
 Initialize the eigen solver.
bool solve (GeneralizedEigenProblem &A)
 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::IGeneralizedEigenSolver
 IGeneralizedEigenSolver ()
 Constructor.
virtual ~IGeneralizedEigenSolver ()
 Free resources.
virtual bool solve (EigenProblem &problem)=0
 Solve an eigen problem.
Public Member Functions inherited from Alien::IEigenSolver
 IEigenSolver ()
 Constructor.
virtual ~IEigenSolver ()
 Free resources.

Private Types

typedef AlgebraTraits< Tag >::matrix_type KernelMatrix
 Type of the matrix used.
typedef AlgebraTraits< Tag >::vector_type KernelVector
 Type of the vector used.

Private Attributes

std::unique_ptr< KernelSolverm_solver
 The generalized eigen solver.

Detailed Description

template<class Tag>
class Alien::GeneralizedEigenSolver< Tag >

Generalized eigen solver.

Solves a generalized eigen problem and retrieve eigen vectors

Template Parameters
TagThe type of kernel used to compute eigen values

Definition at line 265 of file EigenSolver.h.

Member Typedef Documentation

◆ KernelMatrix

template<class Tag>
typedef AlgebraTraits<Tag>::matrix_type Alien::GeneralizedEigenSolver< Tag >::KernelMatrix
private

Type of the matrix used.

Definition at line 319 of file EigenSolver.h.

◆ KernelSolver

template<class Tag>
typedef AlgebraTraits<Tag>::generalized_eigen_solver_type Alien::GeneralizedEigenSolver< Tag >::KernelSolver

Type of the eigen solver used.

Definition at line 269 of file EigenSolver.h.

◆ KernelVector

template<class Tag>
typedef AlgebraTraits<Tag>::vector_type Alien::GeneralizedEigenSolver< Tag >::KernelVector
private

Type of the vector used.

Definition at line 321 of file EigenSolver.h.

Constructor & Destructor Documentation

◆ GeneralizedEigenSolver()

template<class Tag>
Alien::GeneralizedEigenSolver< Tag >::GeneralizedEigenSolver ( 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 158 of file EigenSolverT.h.

References m_solver.

◆ ~GeneralizedEigenSolver()

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

Free resources.

Definition at line 281 of file EigenSolver.h.

Member Function Documentation

◆ getBackEndName()

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

Get kernel back end name.

Returns
The kernel name as a string

Implements Alien::IEigenSolver.

Definition at line 168 of file EigenSolverT.h.

◆ getStatus()

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

Get solver resolution status.

Returns
The solver status

Implements Alien::IEigenSolver.

Definition at line 196 of file EigenSolverT.h.

References m_solver.

◆ hasParallelSupport()

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

Indicates if the kernel is parallel.

Returns
Parallel support capability

Implements Alien::IEigenSolver.

◆ implem()

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

Get kernel solver implementation.

Returns
Eigen solver actual implementation

Definition at line 206 of file EigenSolverT.h.

References m_solver.

◆ init()

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

Initialize the eigen solver.

Implements Alien::IEigenSolver.

Definition at line 177 of file EigenSolverT.h.

References m_solver.

◆ solve()

template<class Tag>
bool Alien::GeneralizedEigenSolver< Tag >::solve ( GeneralizedEigenProblem & A)
virtual

Solve the eigen problem.

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

Implements Alien::IGeneralizedEigenSolver.

Definition at line 186 of file EigenSolverT.h.

References m_solver.

Member Data Documentation

◆ m_solver

template<class Tag>
std::unique_ptr<KernelSolver> Alien::GeneralizedEigenSolver< Tag >::m_solver
private

The generalized eigen solver.

Definition at line 323 of file EigenSolver.h.

Referenced by GeneralizedEigenSolver(), getStatus(), implem(), init(), and solve().


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