Inelastica.math.SpectralMatrix

class Inelastica.math.SpectralMatrix(A=None, cutoff=1e-08)[source]

Matrix class for spectral matrices.

Idea: Split a spectral matrix \(\mathbf{A}^{(mxm)}\) into two smaller matrices \(\mathbf{A} = \mathbf{L}.\mathbf{R}\) where \(\mathbf{L}^{(mxn)} = [\lambda_1 \mathbf{v}_1, ..., \lambda_n \mathbf{v}_n]\) and \(\mathbf{R}^{(nxm)} = [\mathbf{v}_1, ..., \mathbf{v}_n]^\dagger\) are constructed from a call to LA.eigh(A) keeping only \(n\) eigensolutions with eigenvalues above the specified cutoff.

The magic takes place in Matrix multiply function.

Todo: Adding two gives full matrix! Should be easy to fix.

Parameters:
Andarray
Attributes:
Lndarray
Rndarray
__init__(A=None, cutoff=1e-08)[source]

Methods

__init__([A, cutoff])

full()

Returns the dense ndarray via matrix multiplication \(\mathbf{A}^{(mxm)} = \mathbf{L}.\mathbf{R}\).