Skip to content

rgf_dist#

Includes the distributed selected inversion solver.

Classes:

  • RGFDist

    Distributed selected inversion solver.

RGFDist #

RGFDist(max_batch_size: int = 100)

Bases: GFSolver

Distributed selected inversion solver.

Parameters:

  • max_batch_size (int, default: 100 ) –

    Maximum batch size to use when inverting the matrix, by default 100.

Methods:

  • selected_inv

    Performs selected inversion of a block-tridiagonal matrix.

  • selected_solve

    Performs selected inversion of a block-tridiagonal matrix.

selected_inv #

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 #

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

Performs selected inversion of a block-tridiagonal matrix.

Can optionally solve the quadratic system associated with the lesser and greater right-hand-sides.

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. Note that this is currently only partially supported, and only the boundary currents are computed correctly.

Returns:

  • None | NDArray

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