version 0.4.1
generalizedeigensolverfactory.hh File Reference

Factory for classes solving a generalized eigenvalue problem. More...

Go to the source code of this file.

Namespaces

namespace  Ikarus
 

Functions

template<EigenValueSolverType tag, typename MATA , typename MATB >
requires (Concepts::DenseOrSparseEigenMatrix<std::remove_cvref_t<MATA>> && std::same_as<std::remove_cvref_t<MATA>, std::remove_cvref_t<MATB>> && not(tag == EigenValueSolverType::Eigen && Concepts::SparseEigenMatrix<std::remove_cvref_t<MATA>>))
auto Ikarus::makeGeneralizedSymEigenSolver (MATA &&A, MATB &&B)
 Factory function to create a GeneralizedSymEigenSolver for a specific backend (Eigen or Spectra) with provided matrices for both quantities. More...
 
template<EigenValueSolverType tag, Concepts::FlatAssembler AssemblerA, Concepts::FlatAssembler AssemblerB>
requires (std::same_as<typename AssemblerA::MatrixType, typename AssemblerB::MatrixType> && not(tag == EigenValueSolverType::Eigen && Concepts::SparseEigenMatrix<typename AssemblerA::MatrixType>))
auto Ikarus::makeGeneralizedSymEigenSolver (const std::shared_ptr< AssemblerA > assemblerA, const std::shared_ptr< AssemblerB > assemblerB)
 Factory function to create a GeneralizedSymEigenSolver for a specific backend (Eigen or Spectra) with provided assemblers for both quantities. More...
 
template<EigenValueSolverType tag, typename MATA >
requires (Concepts::DenseOrSparseEigenMatrix<std::remove_cvref_t<MATA>> && not(tag == EigenValueSolverType::Eigen && Concepts::SparseEigenMatrix<std::remove_cvref_t<MATA>>))
auto Ikarus::makeIdentitySymEigenSolver (MATA &&A)
 Factory function to create a GeneralizedSymEigenSolver with a provided matrix and an identity matrix. More...
 
template<EigenValueSolverType tag, Concepts::FlatAssembler AssemblerA>
requires (Concepts::DenseOrSparseEigenMatrix<typename AssemblerA::MatrixType> && not(tag == EigenValueSolverType::Eigen && Concepts::SparseEigenMatrix<typename AssemblerA::MatrixType>))
auto Ikarus::makeIdentitySymEigenSolver (const std::shared_ptr< AssemblerA > &assemblerA)
 Factory function to create a GeneralizedSymEigenSolver with a provided matrix from an assembler and an identity matrix. More...
 
template<Concepts::FlatAssembler AssemblerA, Concepts::FlatAssembler AssemblerB>
requires (std::same_as<typename AssemblerA::MatrixType, typename AssemblerB::MatrixType>)
auto Ikarus::makePartialGeneralizedSymEigenSolver (std::shared_ptr< AssemblerA > assemblerA, std::shared_ptr< AssemblerB > assemblerB, Eigen::Index nev)
 Factory function to create a PartialGeneralizedSymEigenSolver with provided assemblers for both quantities. More...
 
template<typename MATA , typename MATB >
requires (Concepts::DenseOrSparseEigenMatrix<std::remove_cvref_t<MATA>> && std::same_as<std::remove_cvref_t<MATA>, std::remove_cvref_t<MATB>>)
auto Ikarus::makePartialGeneralizedSymEigenSolver (MATA &&A, MATB &&B, Eigen::Index nev)
 Factory function to create a PartialGeneralizedSymEigenSolver with provided matrices for both quantities. More...
 
template<typename MATA >
requires (Concepts::DenseOrSparseEigenMatrix<std::remove_cvref_t<MATA>>)
auto Ikarus::makePartialIdentitySymEigenSolver (MATA &&A, Eigen::Index nev)
 Factory function to create a PartialGeneralizedSymEigenSolver with a provided matrix and an identity matrix. More...
 
template<Concepts::FlatAssembler AssemblerA>
auto Ikarus::makePartialIdentitySymEigenSolver (const std::shared_ptr< AssemblerA > &assemblerA, Eigen::Index nev)
 Factory function to create a PartialGeneralizedSymEigenSolver with a provided matrix from an assembler and an identity matrix. More...