Skip to content

solver#

Includes the abstract base class for the Green's function solvers.

Classes:

  • OBCBlocks

    Class to hold the OBC blocks used in the GF solvers.

  • GFSolver

    Abstract base class for the Green's function solvers.

OBCBlocks #

OBCBlocks(num_blocks: int)

Class to hold the OBC blocks used in the GF solvers.

This class holds the OBC blocks for lesser, greater and retarded Green's functions. These are lists of NDArray objects.

Parameters:

  • num_blocks (int) –

    Number of blocks in the structure.

GFSolver #

Bases: ABC

Abstract base class for the Green's function solvers.

Methods:

  • selected_inv

    Performs selected inversion of a block-tridiagonal matrix.

  • selected_solve

    Produces elements of the solution to the congruence equation.

selected_inv abstractmethod #

selected_inv(a: DSDBSparse, out: DSDBSparse, obc_blocks: OBCBlocks | None = None) -> None

Performs selected inversion of a block-tridiagonal matrix.

Parameters:

  • a (DSDBSparse) –

    Matrix to invert.

  • out (DSDBSparse) –

    Preallocated output matrix.

  • obc_blocks (OBCBlocks, default: None ) –

    OBC blocks for lesser, greater and retarded Green's functions. By default None.

selected_solve abstractmethod #

selected_solve(a: DSDBSparse, sigma_lesser: DSDBSparse, sigma_greater: DSDBSparse, out: tuple[DSDBSparse, ...], obc_blocks: OBCBlocks | None = None, return_retarded: bool = False, return_current: bool = False) -> None | NDArray

Produces elements of the solution to the congruence equation.

This method produces selected elements of the solution to the relation:

\[ X^{\lessgtr} = A^{-1} \Sigma^{\lessgtr} A^{-\dagger} \]

Parameters:

  • a (DSDBSparse) –

    Matrix to invert.

  • sigma_lesser (DSDBSparse) –

    Lesser matrix. This matrix is expected to be skew-hermitian, i.e. \(\Sigma_{ij} = -\Sigma_{ji}^*\).

  • sigma_greater (DSDBSparse) –

    Greater matrix. This matrix is expected to be skew-hermitian, i.e. \(\Sigma_{ij} = -\Sigma_{ji}^*\).

  • out (tuple[DSDBSparse, ...]) –

    Preallocated output matrices

  • obc_blocks (dict[int, OBCBlocks], default: None ) –

    OBC blocks for lesser, greater and retarded Green's functions, by default None.

  • return_retarded (bool, default: False ) –

    Wether the retarded Green's function should be returned along with lesser and greater, by default False

  • return_current (bool, default: False ) –

    Whether to compute and return the current for each layer via the Meir-Wingreen formula. By default False.

Returns:

  • None | NDArray

    If return_current is True, returns the current for each layer.