140#ifndef Foam_EigenMatrix_H
141#define Foam_EigenMatrix_H
157template<
class cmptType>
162 std::is_floating_point_v<cmptType>,
163 "EigenMatrix operates only with scalar base type."
172 DiagonalMatrix<cmptType> EValsRe_;
189 void tridiagonaliseSymmMatrix();
192 void symmTridiagonalQL();
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
A templated (N x N) diagonal matrix of objects of <Type>, effectively containing N elements,...
EigenMatrix (i.e. eigendecomposition or spectral decomposition) decomposes a diagonalisable nonsymmet...
cmptType value_type
The value type the Matrix contains.
const DiagonalMatrix< cmptType > & EValsIm() const noexcept
Return zero-matrix for real eigenvalues or imaginary part of complex eigenvalues.
EigenMatrix(const EigenMatrix &)=delete
No copy construct.
const DiagonalMatrix< cmptType > & EValsRe() const noexcept
Return real eigenvalues or real part of complex eigenvalues.
EigenMatrix()=delete
No default construct.
const SquareMatrix< cmptType > & EVecs() const noexcept
Return right eigenvectors matrix where each column is a right eigenvector that corresponds to an eige...
EigenMatrix & operator=(const EigenMatrix &)=delete
No copy assignment.
const SquareMatrix< complex > complexEVecs() const
Return right eigenvectors in unpacked form.
A templated (N x N) square matrix of objects of <Type>, containing N*N elements, derived from Matrix.