cratepy.tensor.tensoroperations.spectral_decomposition¶
- spectral_decomposition(x, is_real_if_close=False)[source]¶
Perform spectral decomposition of symmetric second-order tensor.
The computational implementation of the spectral decomposition follows the Appendix A of Computational Methods for Plasticity [1].
- Parameters:
x (numpy.ndarray (2d)) – Second-order tensor (square array) whose eigenvalues and eigenvectors are computed.
is_real_if_close (bool, default=False) – If True, then drop imaginary parts of eigenvalues and eigenvectors if these are close to zero (tolerance with respect to machine epsilon for input type) and convert to real type.
- Returns:
eigenvals (numpy.ndarray (1d)) – Eigenvalues of second-order tensor sorted in descending order.
eigenvectors (numpy.ndarray (2d)) – Eigenvectors of second-order tensor stored columnwise according with eigenvalues.
eig_multiplicity (dict) – Multiplicity (item, int) of the eigenvalue stored at given index (key, str).
eigenprojections (list[tuple]) – Eigenprojections of second-order tensor stored as tuples (item) as (eigenvalue, eigenprojection) and sorted in descending order of eigenvalues. Only available for 2x2 and 3x3 second-order tensors, otherwise an empty list is returned.