Skip to content

qttools.greens_function_solver.solver#

source module qttools.greens_function_solver.solver

Classes

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

  • GFSolver Abstract base class for the Green's function solvers.

source class 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.

source class 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.

source method GFSolver.selected_inv(a: DSDBSparse, obc_blocks: OBCBlocks | None = None, out: DSDBSparse = None)None | DSDBSparse

Performs selected inversion of a block-tridiagonal matrix.

Parameters

  • a : DSDBSparse Matrix to invert.

  • obc_blocks : OBCBlocks, optional OBC blocks for lesser, greater and retarded Green's functions. By default None.

  • out : DSDBSparse, optional Preallocated output matrix, by default None.

Returns

  • None | DSDBSparse If out is None, returns None. Otherwise, returns the inverted matrix as a DSDBSparse object.

source method GFSolver.selected_solve(a: DSDBSparse, sigma_lesser: DSDBSparse, sigma_greater: DSDBSparse, obc_blocks: OBCBlocks | None = None, out: tuple | None = None, return_retarded: bool = False, return_current: bool = False)None | tuple

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}^*\).

  • obc_blocks : dict[int, OBCBlocks], optional OBC blocks for lesser, greater and retarded Green's functions, by default None.

  • out : tuple[DSDBSparse, ...] | None, optional Preallocated output matrices, by default None

  • return_retarded : bool, optional Wether the retarded Green's function should be returned along with lesser and greater, by default False

  • return_current : bool, optional Whether to compute and return the current for each layer via the Meir-Wingreen formula. By default False.

Returns

  • None | tuple If out is None, returns None. Otherwise, the solutions are returned as DSBParse matrices. If return_retarded is True, returns a tuple with the retarded Green's function as the last element.