frtrg.reservoirmatrix
#
Kondo FRTRG, module defining vertice in RG equations
Module defining class ReservoirMatrix and some functions for efficient handling of matrices of Floquet matrices as used for the Kondo model.
See also: rtrg.py
Module Contents#
Classes#
Object owning a copy of |
Functions#
|
Compute |
|
A_34 B_12 C_43 , A_34 B_12 D_43 |
|
Equivalent to: |
- class frtrg.reservoirmatrix.ReservoirMatrix(global_properties, symmetry=0)#
Bases:
frtrg.rtrg.RGobj
Object owning a copy of
GlobalRGproperties
that has a symmetry attribute.- Parameters:
global_properties (
GlobalRGProperties
object) – shared properties containing information about the physical system and the numerical parameterssymmetry ({0, 1, -1}) – symmetry of the object under Floquet transposition (taking the adjoint and reverting the indices)
- __getitem__(arg)#
- __setitem__(indices, value)#
- __add__(other)#
- __iadd__(other)#
- __sub__(other)#
- __isub__(other)#
- __neg__()#
- __mul__(other)#
- __imul__(other)#
- __rmul__(other)#
- __matmul__(other)#
- __rmatmul__(other)#
- __imatmul__(other)#
- __mod__(other)#
Transpose multiplication: Given A, B return C such that
- C = A B
12 32 13
- tr()#
- copy()#
- __eq__(other)#
Return self==value.
- to_numpy_array()#
- check_symmetry()#
- frtrg.reservoirmatrix.einsum_34_12_43(a: ReservoirMatrix, b: frtrg.rtrg.RGobj, c: ReservoirMatrix) frtrg.rtrg.RGobj #
Compute
A_{34} B_{12} C_{43}
with (implicit) summation over indices 3 and 4. B can be either a scalar or a reservoir matrix.
8 multiplications if b is a scalar, 32 multiplications if b is a reservoir matrix without symmetry, 20 multiplications if b is a reservoir matrix with symmetry and xL != xR, 10 multiplications if b is a reservoir matrix with symmetry and xL == xR.
- frtrg.reservoirmatrix.einsum_34_12_43_double(a: ReservoirMatrix, b: ReservoirMatrix, c: ReservoirMatrix, d: ReservoirMatrix)#
A_34 B_12 C_43 , A_34 B_12 D_43
48 multiplications if b is a reservoir matrix, 30 multiplications with symmetries if xL != xR, 15 multiplications with symmetries if xL == xR.
- frtrg.reservoirmatrix.product_combinations(a: ReservoirMatrix, b: ReservoirMatrix)#
Equivalent to: >>> lambda a, b: a @ b, a % b
but more efficient. Arguments must be two ReservoirMatrices.
12 multiplications (instead of 16) without symmetry, 1 ReservoirMatrix multiplication with symmetry Number of multiplications when using symmetries:
4 multiplications with xL == xR,
7 multiplications with xL != xR,
8 multiplications without symmetry