version 0.4.4
Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT > Struct Template Reference

This class implements a wrapper to the Eigen generalized eigen solver for square real symmetric matrices, i.e. to solve \( Ax = \lambda Bx\), where A is symmetric and B is positive definite. A and B have to be dense matrices. More...

#include <ikarus/solver/eigenvaluesolver/generalizedeigensolver.hh>

Public Types

using ScalarType = typename MT::Scalar
 
using MatrixType = MT
 
using SolverType = Eigen::GeneralizedSelfAdjointEigenSolver< MatrixType >
 

Public Member Functions

template<typename MATA , typename MATB >
requires (Concepts::EigenMatrix<std::remove_cvref_t<MATA>>)
 GeneralizedSymEigenSolver (MATA &&A, MATB &&B)
 Construct a new GeneralizedSymEigenSolver object. More...
 
template<Concepts::FlatAssembler AssemblerA, Concepts::FlatAssembler AssemblerB>
 GeneralizedSymEigenSolver (std::shared_ptr< AssemblerA > assemblerA, std::shared_ptr< AssemblerB > assemblerB)
 Construct a new GeneralSymEigenSolver object. More...
 
bool compute (int options=Eigen::ComputeEigenvectors)
 Starts the computation of the eigenvalue solver. More...
 
auto & eigenvalues () const
 Returns the eigenvalues of the generalized eigenvalue problem. More...
 
auto & eigenvectors () const
 Returns the eigenvectors of the generalized eigenvalue problem. More...
 
Eigen::Index nev () const
 Returns the number of eigenvalues of the problem. More...
 

Detailed Description

template<Concepts::EigenMatrix MT>
struct Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >

Under the hood it uses the Eigen::GeneralizedSelfAdjointEigenSolver

Template Parameters
MTthe used Matrix Type, can be a dense Eigen::Matrix

Member Typedef Documentation

◆ MatrixType

template<Concepts::EigenMatrix MT>
using Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::MatrixType = MT

◆ ScalarType

template<Concepts::EigenMatrix MT>
using Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::ScalarType = typename MT::Scalar

◆ SolverType

template<Concepts::EigenMatrix MT>
using Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::SolverType = Eigen::GeneralizedSelfAdjointEigenSolver<MatrixType>

Constructor & Destructor Documentation

◆ GeneralizedSymEigenSolver() [1/2]

template<Concepts::EigenMatrix MT>
template<typename MATA , typename MATB >
requires (Concepts::EigenMatrix<std::remove_cvref_t<MATA>>)
Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::GeneralizedSymEigenSolver ( MATA &&  A,
MATB &&  B 
)
inline
Template Parameters
MATAthe deduced type of the matrix A
MATBthe deduced type of the matrix B
Parameters
Athe matrix A
Bthe matrix B

◆ GeneralizedSymEigenSolver() [2/2]

template<Concepts::EigenMatrix MT>
template<Concepts::FlatAssembler AssemblerA, Concepts::FlatAssembler AssemblerB>
Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::GeneralizedSymEigenSolver ( std::shared_ptr< AssemblerA >  assemblerA,
std::shared_ptr< AssemblerB >  assemblerB 
)
inline
Template Parameters
AssemblerAthe type of the assembler for matrix A.
AssemblerBthe type of the assembler for matrix B.
Parameters
assemblerAassembler for matrix A.
assemblerBassembler for matrix B.

Member Function Documentation

◆ compute()

template<Concepts::EigenMatrix MT>
bool Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::compute ( int  options = Eigen::ComputeEigenvectors)
inline
Parameters
optionsdefaults to Eigen::ComputeEigenvectors, can be set to Eigen::EigenvaluesOnly, accessing eigenvectors in that case will results in an error
Returns
true solving was successful
false solving was not successful

◆ eigenvalues()

template<Concepts::EigenMatrix MT>
auto & Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::eigenvalues ( ) const
inline
Returns
Reference to the vector of eigenvalues

◆ eigenvectors()

template<Concepts::EigenMatrix MT>
auto & Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::eigenvectors ( ) const
inline
Returns
Reference to the matrix with the eigevectors as columns

◆ nev()

template<Concepts::EigenMatrix MT>
Eigen::Index Ikarus::GeneralizedSymEigenSolver< EigenValueSolverType::Eigen, MT >::nev ( ) const
inline

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