KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Public Types | Public Member Functions | List of all members
Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut > Class Template Reference

#include <feast_eigensystem_solver.h>

Inheritance diagram for Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >:
Collaboration diagram for Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >:

Public Types

typedef LinearSolver< TSparseSpaceTypeIn, TDenseSpaceTypeIn > BaseType
 
typedef TSparseSpaceTypeIn::MatrixType SparseMatrixType
 
typedef TDenseSpaceTypeOut::VectorType DenseVectorType
 
typedef TDenseSpaceTypeOut::MatrixType DenseMatrixType
 
typedef matrix< TScalarOut, column_major > FEASTMatrixType
 
typedef TScalarIn ValueTypeIn
 
typedef TScalarOut ValueTypeOut
 
- Public Types inherited from Kratos::LinearSolver< TUblasSparseSpace< TScalarIn >, TUblasDenseSpace< TScalarOut > >
typedef TSparseSpaceType::MatrixType SparseMatrixType
 
typedef TSparseSpaceType::MatrixPointerType SparseMatrixPointerType
 
typedef TSparseSpaceType::VectorType VectorType
 
typedef TSparseSpaceType::VectorPointerType VectorPointerType
 
typedef TDenseSpaceType::MatrixType DenseMatrixType
 
typedef TDenseSpaceType::VectorType DenseVectorType
 
typedef std::size_t SizeType
 
typedef TSparseSpaceType::IndexType IndexType
 The index type definition to be consistent. More...
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (FEASTEigensystemSolver)
 
 FEASTEigensystemSolver (Parameters param)
 
 ~FEASTEigensystemSolver () override=default
 
void Solve (SparseMatrixType &rK, SparseMatrixType &rM, DenseVectorType &rEigenvalues, DenseMatrixType &rEigenvectors) override
 
void PrintInfo (std::ostream &rOStream) const override
 
void PrintData (std::ostream &rOStream) const override
 
- Public Member Functions inherited from Kratos::LinearSolver< TUblasSparseSpace< TScalarIn >, TUblasDenseSpace< TScalarOut > >
 LinearSolver ()
 Default constructor. More...
 
 LinearSolver (Reorderer< TUblasSparseSpace< TScalarIn >, TUblasDenseSpace< TScalarOut > > NewReorderer)
 Constructor with specific reorderer. More...
 
 LinearSolver (const LinearSolver &Other)
 Copy constructor. More...
 
virtual ~LinearSolver ()
 Destructor. More...
 
LinearSolveroperator= (const LinearSolver &Other)
 Assignment operator. More...
 
virtual void Initialize (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void InitializeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void PerformSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void FinalizeSolutionStep (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual void Clear ()
 
virtual bool Solve (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 
virtual bool Solve (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB)
 
virtual void Solve (SparseMatrixType &K, SparseMatrixType &M, DenseVectorType &Eigenvalues, DenseMatrixType &Eigenvectors)
 
virtual bool AdditionalPhysicalDataIsNeeded ()
 
virtual void ProvideAdditionalData (SparseMatrixType &rA, VectorType &rX, VectorType &rB, typename ModelPart::DofsArrayType &rDoFSet, ModelPart &rModelPart)
 
virtual TReordererType::Pointer GetReorderer ()
 
virtual void SetReorderer (typename TReordererType::Pointer pNewReorderer)
 
virtual void SetTolerance (double NewTolerance)
 This method allows to set the tolerance in the linear solver. More...
 
virtual double GetTolerance ()
 This method allows to get the tolerance in the linear solver. More...
 
virtual IndexType GetIterationsNumber ()
 
virtual bool IsConsistent (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 This method checks if the dimensions of the system of equations are consistent. More...
 
virtual bool IsConsistent (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB)
 This method checks if the dimensions of the system of equations are consistent (dense matrix for RHS and unknowns version) More...
 
virtual bool IsNotConsistent (SparseMatrixType &rA, VectorType &rX, VectorType &rB)
 This method checks if the dimensions of the system of equations are not consistent. More...
 
virtual bool IsNotConsistent (SparseMatrixType &rA, DenseMatrixType &rX, DenseMatrixType &rB)
 This method checks if the dimensions of the system of equations are not consistent. More...
 
virtual std::string Info () const
 Turn back information as a string. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (LinearSolver)
 Pointer definition of LinearSolver. More...
 

Member Typedef Documentation

◆ BaseType

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef LinearSolver<TSparseSpaceTypeIn, TDenseSpaceTypeIn> Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::BaseType

◆ DenseMatrixType

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef TDenseSpaceTypeOut::MatrixType Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::DenseMatrixType

◆ DenseVectorType

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef TDenseSpaceTypeOut::VectorType Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::DenseVectorType

◆ FEASTMatrixType

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef matrix<TScalarOut, column_major> Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::FEASTMatrixType

◆ SparseMatrixType

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef TSparseSpaceTypeIn::MatrixType Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::SparseMatrixType

◆ ValueTypeIn

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef TScalarIn Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::ValueTypeIn

◆ ValueTypeOut

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
typedef TScalarOut Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::ValueTypeOut

Constructor & Destructor Documentation

◆ FEASTEigensystemSolver()

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::FEASTEigensystemSolver ( Parameters  param)
inline

◆ ~FEASTEigensystemSolver()

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::~FEASTEigensystemSolver ( )
overridedefault

Member Function Documentation

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::KRATOS_CLASS_POINTER_DEFINITION ( FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >  )

◆ PrintData()

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
void Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ PrintInfo()

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
void Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::LinearSolver< TUblasSparseSpace< TScalarIn >, TUblasDenseSpace< TScalarOut > >.

◆ Solve()

template<bool TSymmetric, typename TScalarIn , typename TScalarOut , class TSparseSpaceTypeIn = TUblasSparseSpace<TScalarIn>, class TDenseSpaceTypeIn = TUblasDenseSpace<TScalarIn>, class TSparseSpaceTypeOut = TUblasSparseSpace<TScalarOut>, class TDenseSpaceTypeOut = TUblasDenseSpace<TScalarOut>>
void Kratos::FEASTEigensystemSolver< TSymmetric, TScalarIn, TScalarOut, TSparseSpaceTypeIn, TDenseSpaceTypeIn, TSparseSpaceTypeOut, TDenseSpaceTypeOut >::Solve ( SparseMatrixType rK,
SparseMatrixType rM,
DenseVectorType rEigenvalues,
DenseMatrixType rEigenvectors 
)
inlineoverride

Solve the generalized eigenvalue problem using FEAST

Parameters
rKfirst input matrix
rMsecond input matrix
rEigenvalueseigenvalues
rEigenvectorsrow-aligned eigenvectors [n_evs,n_dofs]

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