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:
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_currentis True, returns the current for each layer.