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