Implement leads with symmetries or conservation laws
Right now we aren't treating leads with a conservation law or an anti-unitary symmetry in any special way. By preprocessing the Hamiltonian and using user-supplied information about the symmetries present in the leads, we could enforce a more physically relevant choice of basis in the leads. This would also greatly simplify the calculations that involve superconductivity, and are currently solved in the tutorial by requiring two sublattices.
Relevant bits of code include:
-
TRIInfiniteSystem
implemented in http://arxiv.org/src/1408.1563v2/anc/trijunction.py and enforcing time-reversal symmetry. - An analogous solution for electron-hole degrees of freedom in Nambu space.
I imagine the implementation parts would be:
-
Designing a SymmetricInfiniteSystem
, or extending the current one. -
Extending the ScatteringMatrix
interface such that symmetry-related properties can be manipulated efficiently. -
Updating the documentation and tutorial.
This feature was requested both in the mailing list and Kwant survey.