dyson.solvers.static.mblgf#

Moment block Lanczos for moments of the Green’s function [1].

Classes

MBLGF(*args, **kwargs)

Moment block Lanczos for moments of the Green's function.

RecursionCoefficients(nphys[, hermitian, ...])

Recursion coefficients for the moment block Lanczos algorithm for the Green's function.

class dyson.solvers.static.mblgf.RecursionCoefficients(nphys: int, hermitian: bool = True, force_orthogonality: bool = True)[source]#

Bases: BaseRecursionCoefficients

Recursion coefficients for the moment block Lanczos algorithm for the Green’s function.

Parameters:

nphys – Number of physical degrees of freedom.

class dyson.solvers.static.mblgf.MBLGF(*args: Any, **kwargs: Any)[source]#

Bases: BaseMBL

Moment block Lanczos for moments of the Green’s function.

Parameters:

moments – Moments of the Green’s function.

Coefficients#

alias of RecursionCoefficients

classmethod from_self_energy(static: Array, self_energy: Lehmann, overlap: Array | None = None, **kwargs: Any) MBLGF[source]#

Create a solver from a self-energy.

Parameters:
  • static – Static part of the self-energy.

  • self_energy – Self-energy.

  • overlap – Overlap matrix for the physical space.

  • kwargs – Additional keyword arguments for the solver.

Returns:

Solver instance.

classmethod from_expression(expression: BaseExpression, **kwargs: Any) MBLGF[source]#

Create a solver from an expression.

Parameters:
  • expression – Expression to be solved.

  • kwargs – Additional keyword arguments for the solver.

Returns:

Solver instance.

reconstruct_moments(iteration: int) Array[source]#

Reconstruct the moments.

Parameters:

iteration – The iteration number.

Returns:

The reconstructed moments.

initialise_recurrence() tuple[float | None, float | None, float | None][source]#

Initialise the recurrence (zeroth iteration).

Returns:

If calculate_errors, the error metrics in the square root of the off-diagonal block, the inverse square root of the off-diagonal block, and the error in the recovered moments. If not, all three are None.

solve(iteration: int | None = None) Spectral[source]#

Solve the eigenvalue problem at a given iteration.

Parameters:

iteration – The iteration to get the results for.

Returns:

The Spectral object.

property coefficients: tuple[BaseRecursionCoefficients, BaseRecursionCoefficients]#

Get the recursion coefficients.

property on_diagonal: dict[int, Array]#

Get the on-diagonal blocks of the self-energy.

property off_diagonal_upper: dict[int, Array]#

Get the upper off-diagonal blocks of the self-energy.

kernel(*args: Any, **kwargs: Any) Any#

Run the solver.

property off_diagonal_lower: dict[int, Array]#

Get the lower off-diagonal blocks of the self-energy.