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.
List of all members
Kratos::EigenDenseJacobiSVD< TDenseSpace > Class Template Reference

#include <eigen_dense_jacobi_svd_decomposition.h>

Inheritance diagram for Kratos::EigenDenseJacobiSVD< TDenseSpace >:
Collaboration diagram for Kratos::EigenDenseJacobiSVD< TDenseSpace >:

Public Member Functions

Life Cycle
 EigenDenseJacobiSVD ()=default
 
- Public Member Functions inherited from Kratos::DenseSingularValueDecomposition< TDenseSpace >
 DenseSingularValueDecomposition ()=default
 
virtual ~DenseSingularValueDecomposition ()=default
 
 KRATOS_CLASS_POINTER_DEFINITION (DenseSingularValueDecomposition)
 Definition of the shared pointer of the class. More...
 
virtual void Compute (MatrixType &rInputMatrix, Parameters Settings)=0
 Compute the SVD Computes the Singular Value Decomposition (SVD) of the given imput matrix. More...
 
virtual void Compute (MatrixType &rInputMatrix, VectorType &rVectorS, MatrixType &rMatrixU, MatrixType &rMatrixV, Parameters Settings)=0
 Compute the SVD Computes the Singular Value Decomposition (SVD) of the given input matrix. More...
 
virtual void MatrixU (MatrixType &rMatrixU)=0
 Left singular vectors matrix getter If computed, this method sets the left singular vectors matrix in the provided array. More...
 
virtual void MatrixV (MatrixType &rMatrixV)=0
 Right singular vectors matrix getter If computed, this method sets the right singular vectors matrix in the provided array Note that this method is understood to return V (not its transpose). This means that this matrix needs to be transposed in order to reconstruct the input matrix. More...
 
virtual void SingularValues (VectorType &rVectorS)=0
 Singular values vector getter This method sets the singular values vector in the provided array. More...
 

Type Definitions

typedef TDenseSpace::DataType DataType
 
typedef TDenseSpace::VectorType VectorType
 
typedef TDenseSpace::MatrixType MatrixType
 
using EigenVector = Kratos::EigenDynamicVector< DataType >
 
using EigenMatrix = Kratos::EigenDynamicMatrix< DataType >
 
using DecompositionOptions = Eigen::DecompositionOptions
 
 KRATOS_CLASS_POINTER_DEFINITION (EigenDenseJacobiSVD)
 Definition of the shared pointer of the class. More...
 

Operations

void Compute (MatrixType &rInputMatrix, Parameters Settings) override
 
void Compute (MatrixType &rInputMatrix, VectorType &rVectorS, MatrixType &rMatrixU, MatrixType &rMatrixV, Parameters Settings) override
 
void MatrixU (MatrixType &rMatrixU) override
 
void MatrixV (MatrixType &rMatrixV) override
 
void SingularValues (VectorType &rVectorS) override
 
std::size_t NonZeroSingularValues () override
 Number of non-zero singular values This method returns the number of non-zero singular values. More...
 
void SetThreshold (const double RelTolerance) override
 Set the relative threshold tolerance This method sets the relative threshold tolerance to consider singular values as non-zero This is required by some methods like Rank() or Solve(), which is not available yet Non-zero values are checed as sing_val > rel_tol * max_sing_val. More...
 
std::size_t Rank () override
 Rank of the provided array Calculates and returns the rank of the array decomposed with the SVD. More...
 
void PrintInfo (std::ostream &rOStream) const override
 SVD information Outputs the SVD class information. More...
 
static std::string Name ()
 

Additional Inherited Members

- Public Types inherited from Kratos::DenseSingularValueDecomposition< TDenseSpace >
typedef TDenseSpaceType::DataType DataType
 
typedef TDenseSpaceType::VectorType VectorType
 
typedef TDenseSpaceType::MatrixType MatrixType
 
- Static Public Member Functions inherited from Kratos::DenseSingularValueDecomposition< TDenseSpace >
static std::string Name ()
 Name of the SVD Returns a string containing the name of the current SVD decomposition. More...
 

Member Typedef Documentation

◆ DataType

template<class TDenseSpace >
typedef TDenseSpace::DataType Kratos::EigenDenseJacobiSVD< TDenseSpace >::DataType

◆ DecompositionOptions

template<class TDenseSpace >
using Kratos::EigenDenseJacobiSVD< TDenseSpace >::DecompositionOptions = Eigen::DecompositionOptions

◆ EigenMatrix

template<class TDenseSpace >
using Kratos::EigenDenseJacobiSVD< TDenseSpace >::EigenMatrix = Kratos::EigenDynamicMatrix<DataType>

◆ EigenVector

template<class TDenseSpace >
using Kratos::EigenDenseJacobiSVD< TDenseSpace >::EigenVector = Kratos::EigenDynamicVector<DataType>

◆ MatrixType

template<class TDenseSpace >
typedef TDenseSpace::MatrixType Kratos::EigenDenseJacobiSVD< TDenseSpace >::MatrixType

◆ VectorType

template<class TDenseSpace >
typedef TDenseSpace::VectorType Kratos::EigenDenseJacobiSVD< TDenseSpace >::VectorType

Constructor & Destructor Documentation

◆ EigenDenseJacobiSVD()

template<class TDenseSpace >
Kratos::EigenDenseJacobiSVD< TDenseSpace >::EigenDenseJacobiSVD ( )
default

Member Function Documentation

◆ Compute() [1/2]

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::Compute ( MatrixType rInputMatrix,
Parameters  Settings 
)
inlineoverride

◆ Compute() [2/2]

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::Compute ( MatrixType rInputMatrix,
VectorType rVectorS,
MatrixType rMatrixU,
MatrixType rMatrixV,
Parameters  Settings 
)
inlineoverride

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TDenseSpace >
Kratos::EigenDenseJacobiSVD< TDenseSpace >::KRATOS_CLASS_POINTER_DEFINITION ( EigenDenseJacobiSVD< TDenseSpace >  )

Definition of the shared pointer of the class.

◆ MatrixU()

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::MatrixU ( MatrixType rMatrixU)
inlineoverride

◆ MatrixV()

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::MatrixV ( MatrixType rMatrixV)
inlineoverride

◆ Name()

template<class TDenseSpace >
static std::string Kratos::EigenDenseJacobiSVD< TDenseSpace >::Name ( )
inlinestatic

◆ NonZeroSingularValues()

template<class TDenseSpace >
std::size_t Kratos::EigenDenseJacobiSVD< TDenseSpace >::NonZeroSingularValues ( )
inlineoverridevirtual

Number of non-zero singular values This method returns the number of non-zero singular values.

Returns
std::size_t Number of non-zero singular values

Implements Kratos::DenseSingularValueDecomposition< TDenseSpace >.

◆ PrintInfo()

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

SVD information Outputs the SVD class information.

Parameters
rOStreamInformation output

Implements Kratos::DenseSingularValueDecomposition< TDenseSpace >.

◆ Rank()

template<class TDenseSpace >
std::size_t Kratos::EigenDenseJacobiSVD< TDenseSpace >::Rank ( )
inlineoverridevirtual

Rank of the provided array Calculates and returns the rank of the array decomposed with the SVD.

Returns
std::size_t Rank of the provided array

Implements Kratos::DenseSingularValueDecomposition< TDenseSpace >.

◆ SetThreshold()

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::SetThreshold ( const double  RelTolerance)
inlineoverridevirtual

Set the relative threshold tolerance This method sets the relative threshold tolerance to consider singular values as non-zero This is required by some methods like Rank() or Solve(), which is not available yet Non-zero values are checed as sing_val > rel_tol * max_sing_val.

Parameters
RelTolerance

Implements Kratos::DenseSingularValueDecomposition< TDenseSpace >.

◆ SingularValues()

template<class TDenseSpace >
void Kratos::EigenDenseJacobiSVD< TDenseSpace >::SingularValues ( VectorType rVectorS)
inlineoverride

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