dyson.representations.spectral#
Container for an spectral representation (eigenvalues and eigenvectors) of a matrix.
Classes
|
Spectral representation matrix with a known number of physical degrees of freedom. |
- class dyson.representations.spectral.Spectral(eigvals: Array, eigvecs: Array, nphys: int, sort: bool = False, chempot: float | None = None)[source]#
Bases:
BaseRepresentationSpectral representation matrix with a known number of physical degrees of freedom.
The eigendecomposition (spectral decomposition) of a matrix consists of the eigenvalues \(\lambda_k\) and eigenvectors \(v_{pk}\) that represent the matrix as
\[\sum_{k} \lambda_k v_{pk} u_{qk}^*,\]where the eigenvectors have right-handed components \(v\) and left-handed components \(u\).
Note that the order of eigenvectors is
(left, right), whilst they act in the order(right, left)in the above equation. The naming convention is chosen to be consistent with the eigenvalue decomposition, where \(v\) may be an eigenvector acting on the right of a matrix, and \(u\) is an eigenvector acting on the left of a matrix.- classmethod from_matrix(matrix: Array, nphys: int, hermitian: bool = True, chempot: float | None = None) Spectral[source]#
Create a spectrum from a matrix by diagonalising it.
- Parameters:
matrix – Matrix to diagonalise.
nphys – Number of physical degrees of freedom.
hermitian – Whether the matrix is Hermitian.
chempot – Chemical potential to be used in the Lehmann representations of the self-energy and Green’s function.
- Returns:
Spectrum object.
- classmethod from_self_energy(static: Array, self_energy: Lehmann, overlap: Array | None = None) Spectral[source]#
Create a spectrum from a self-energy.
- Parameters:
static – Static part of the self-energy.
self_energy – Self-energy.
overlap – Overlap matrix for the physical space.
- Returns:
Spectrum object.
- get_static_self_energy() Array[source]#
Get the static part of the self-energy.
- Returns:
Static self-energy.
Note
The static part of the self-energy is defined as the physical space part of the matrix from which the spectrum is derived.
- get_auxiliaries() tuple[Array, Array][source]#
Get the auxiliary energies and couplings contributing to the dynamic self-energy.
- Returns:
Auxiliary energies and couplings.
Note
The auxiliary energies are the eigenvalues of the auxiliary subspace, and the couplings are the eigenvectors projected back to the auxiliary subspace using the physical-auxiliary block of the matrix from which the spectrum is derived.
- get_overlap() Array[source]#
Get the overlap matrix in the physical space.
- Returns:
Overlap matrix.
Note
The overlap matrix is defined as the zeroth moment of the Green’s function, and is given by the inner product of the Dyson orbitals.
- get_self_energy(chempot: float | None = None) Lehmann[source]#
Get the Lehmann representation of the self-energy.
- Parameters:
chempot – Chemical potential.
- Returns:
Lehmann representation of the self-energy.
- get_greens_function(chempot: float | None = None) Lehmann[source]#
Get the Lehmann representation of the Green’s function.
- Parameters:
chempot – Chemical potential.
- Returns:
Lehmann representation of the Green’s function.
- combine(*args: Spectral, chempot: float | None = None) Spectral[source]#
Combine multiple spectral representations.
- Parameters:
args – Spectral representations to combine.
chempot – Chemical potential to be used in the Lehmann representations of the self-energy and Green’s function.
- Returns:
Combined spectral representation.
- property overlap: Array#
Get the overlap matrix (the zeroth moment of the Green’s function).
- property eigvals: Array#
Get the eigenvalues.
- property eigvecs: Array#
Get the eigenvectors.