Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::EigenValueAndVectorComputer Class Reference

Class to calculate the eigenvalues and eigenvectors of a matrix. More...

Collaboration diagram for Arcane::EigenValueAndVectorComputer:

Classes

struct  PowerResult
 Result of applying the power method. More...

Public Member Functions

void computeForMatrix (const Real3x3 &orig_matrix)
 Calculates the eigenvalues and eigenvectors of orig_matrix.
Real3 eigenValues () const
 Returns the eigenvalues of the matrix in ascending order.
Real3x3 eigenVectors () const
 Returns the eigenvectors of the matrix in ascending order.

Static Private Member Functions

static void _deflateMatrix (Real3x3 &matrix, double eigenvalue, Real3 eigenvector)
static PowerResult _applyPowerIteration (const Real3x3 &matrix)

Private Attributes

Real3 m_eigen_values
 Eigenvalues.
Real3x3 m_eigen_vectors
 Eigenvectors.

Detailed Description

Class to calculate the eigenvalues and eigenvectors of a matrix.

The calculation is done using the power method. This is not the fastest or most robust method numerically, but we do not need high precision in the calculation of eigenvalues and eigenvectors. If needed, we could use the Jacobi algorithm or a QR method.

The eigenvalues are sorted in ascending order.

Note
Since the algorithm is iterative, it may happen that the order is not strictly increasing if two eigenvalues are close.

Definition at line 55 of file ArcaneGeometricMeshPartitionerService.cc.

Member Function Documentation

◆ _applyPowerIteration()

PowerResult Arcane::EigenValueAndVectorComputer::_applyPowerIteration ( const Real3x3 & matrix)
inlinestaticprivate

Definition at line 111 of file ArcaneGeometricMeshPartitionerService.cc.

◆ _deflateMatrix()

void Arcane::EigenValueAndVectorComputer::_deflateMatrix ( Real3x3 & matrix,
double eigenvalue,
Real3 eigenvector )
inlinestaticprivate

Definition at line 101 of file ArcaneGeometricMeshPartitionerService.cc.

◆ computeForMatrix()

void Arcane::EigenValueAndVectorComputer::computeForMatrix ( const Real3x3 & orig_matrix)
inline

Calculates the eigenvalues and eigenvectors of orig_matrix.

Definition at line 71 of file ArcaneGeometricMeshPartitionerService.cc.

References m_eigen_values, and m_eigen_vectors.

◆ eigenValues()

Real3 Arcane::EigenValueAndVectorComputer::eigenValues ( ) const
inline

Returns the eigenvalues of the matrix in ascending order.

Definition at line 94 of file ArcaneGeometricMeshPartitionerService.cc.

References m_eigen_values.

◆ eigenVectors()

Real3x3 Arcane::EigenValueAndVectorComputer::eigenVectors ( ) const
inline

Returns the eigenvectors of the matrix in ascending order.

Definition at line 96 of file ArcaneGeometricMeshPartitionerService.cc.

References m_eigen_vectors.

Member Data Documentation

◆ m_eigen_values

Real3 Arcane::EigenValueAndVectorComputer::m_eigen_values
private

Eigenvalues.

Definition at line 145 of file ArcaneGeometricMeshPartitionerService.cc.

Referenced by computeForMatrix(), and eigenValues().

◆ m_eigen_vectors

Real3x3 Arcane::EigenValueAndVectorComputer::m_eigen_vectors
private

Eigenvectors.

Definition at line 148 of file ArcaneGeometricMeshPartitionerService.cc.

Referenced by computeForMatrix(), and eigenVectors().


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