From 972ffd13c0e73a9c98f1ff3097a9610d41835a04 Mon Sep 17 00:00:00 2001 From: Anton Akhmerov <anton.akhmerov@gmail.com> Date: Thu, 21 Feb 2013 22:35:55 -0500 Subject: [PATCH] make TranslationalSymmetry.periods correct for reversed symmetries --- kwant/lattice.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kwant/lattice.py b/kwant/lattice.py index c0069ad1..376087f6 100644 --- a/kwant/lattice.py +++ b/kwant/lattice.py @@ -233,6 +233,7 @@ class TranslationalSymmetry(builder.Symmetry): """ def __init__(self, *periods): self.periods = ta.array(periods) + self._periods = self.periods if self.periods.ndim != 2: # TODO: remove the second part of the following message once # everybody got used to it. @@ -274,11 +275,11 @@ class TranslationalSymmetry(builder.Symmetry): raise KeyError('Group already processed, delete it from ' 'site_group_data first.') inv = np.linalg.pinv(gr.prim_vecs) - bravais_periods = [np.dot(i, inv) for i in self.periods] + bravais_periods = [np.dot(i, inv) for i in self._periods] if not np.allclose(bravais_periods, np.round(bravais_periods), rtol=0, atol=1e-8) or \ not np.allclose([gr.vec(i) for i in bravais_periods], - self.periods): + self._periods): msg = 'Site group {0} does not have commensurate periods with ' +\ 'symmetry {1}.' raise ValueError(msg.format(gr, self)) @@ -366,9 +367,10 @@ class TranslationalSymmetry(builder.Symmetry): The resulting symmetry has all the period vectors opposite to the original and an identical fundamental domain. """ - result = TranslationalSymmetry(*self.periods) + result = TranslationalSymmetry(*self._periods) result.site_group_data = self.site_group_data result.is_reversed = not self.is_reversed + result.periods = -self.periods return result -- GitLab