kwant.rmt
– Random matrix theory Hamiltonians¶kwant.rmt.
gaussian
(n, sym='A', v=1.0)¶Make a n * n random Gaussian Hamiltonian.
Parameters: | n : int
sym : one of ‘A’, ‘AI’, ‘AII’, ‘AIII’, ‘BDI’, ‘CII’, ‘D’, ‘DIII’, ‘C’, ‘CI’
v : float
|
---|---|
Returns: | h : numpy.ndarray
|
Notes
The representations of symmetry operators are chosen according to Phys. Rev. B 85, 165409.
Matrix indices are grouped first according to orbital number, then sigma-index, then tau-index.
This implementation should be sufficiently efficient for large matrices, since it avoids any matrix multiplication.
kwant.rmt.
circular
(n, sym='A', charge=None)¶Make a n * n matrix belonging to a symmetric circular ensemble.
Parameters: | n : int
sym : one of ‘A’, ‘AI’, ‘AII’, ‘AIII’, ‘BDI’, ‘CII’, ‘D’, ‘DIII’, ‘C’, ‘CI’
charge : int or None
|
---|---|
Returns: | s : numpy.ndarray
|
Notes
The representations of symmetry operators are chosen according to Phys. Rev. B 85, 165409, except class D.
Matrix indices are grouped first according to channel number, then sigma-index.
This function uses QR decomposition to probe symmetric compact groups, as detailed in arXiv:math-ph/0609050. For a reason as yet unknown, scipy implementation of QR decomposition also works for symplectic matrices.