diff --git a/kwant/lattice.py b/kwant/lattice.py index 1d4855b843a8a9dd5a5c1a71814d07df841a7182..4b1b67d3cbb1114ff3099a8806a15435e91a84f4 100644 --- a/kwant/lattice.py +++ b/kwant/lattice.py @@ -239,6 +239,9 @@ class TranslationalSymmetry(builder.Symmetry): msg = "TranslationalSymmetry takes 1d sequences as parameters.\n" \ "See What's new in kwant 0.2 in the documentation." raise ValueError(msg) + if np.linalg.matrix_rank(periods) < len(periods): + raise ValueError("Translational symmetry periods must be " + "linearly independent") # A dictionary containing cached data required for applying the # symmetry to different site groups. self.site_group_data = {} diff --git a/kwant/tests/test_lattice.py b/kwant/tests/test_lattice.py index 45e0d2797ec4de315275e161a12e179d285076f8..dd5dac799ebd251c9c012891ad12391232216c4d 100644 --- a/kwant/tests/test_lattice.py +++ b/kwant/tests/test_lattice.py @@ -46,8 +46,7 @@ def test_translational_symmetry(): g2 = lattice.make_lattice(np.identity(2)) g3 = lattice.make_lattice(np.identity(3)) - sym = ts((0, 0, 4), (0, 5, 0), (0, 0, 2)) - assert_raises(ValueError, sym.add_site_group, g3) + assert_raises(ValueError, ts, (0, 0, 4), (0, 5, 0), (0, 0, 2)) sym = ts((3.3, 0)) assert_raises(ValueError, sym.add_site_group, g2)