kwant.rmt
– Random matrix theory Hamiltonians¶kwant.rmt.
gaussian
(n, sym='A', v=1.0, rng=None)[source]¶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
rng: int or rng (optional)


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 sigmaindex, then tauindex.
This implementation should be sufficiently efficient for large matrices, since it avoids any matrix multiplication.
kwant.rmt.
circular
(n, sym='A', charge=None, rng=None)[source]¶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
rng: int or rng (optional)


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 sigmaindex.
This function uses QR decomposition to probe symmetric compact groups, as detailed in arXiv:mathph/0609050. For a reason as yet unknown, scipy implementation of QR decomposition also works for symplectic matrices.