From 8e59209acf4c711ded34ec15ce0e9cf4f1383cd9 Mon Sep 17 00:00:00 2001
From: Joseph Weston <joseph@weston.cloud>
Date: Tue, 1 Oct 2019 11:54:12 +0200
Subject: [PATCH] add guards in functionality that does not work for vectorized
 Builders

---
 kwant/builder.py    | 4 ++++
 kwant/wraparound.py | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/kwant/builder.py b/kwant/builder.py
index abf1cc69..9a0bfcff 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -1875,6 +1875,10 @@ def add_peierls_phase(syst, peierls_parameter='phi', fix_gauge=True):
 
         return f
 
+    if syst.vectorize:
+        raise TypeError("'add_peierls_phase' does not work with "
+                        "vectorized Builders")
+
     ret = _add_peierls_phase(syst, peierls_parameter).finalized()
 
     if fix_gauge:
diff --git a/kwant/wraparound.py b/kwant/wraparound.py
index 08efec8c..e5688bab 100644
--- a/kwant/wraparound.py
+++ b/kwant/wraparound.py
@@ -183,6 +183,9 @@ def wraparound(builder, keep=None, *, coordinate_names='xyz'):
         f.__signature__ = inspect.Signature(params.values())
         return f
 
+    if builder.vectorize:
+        raise TypeError("'wraparound' does not work with vectorized Builders.")
+
     try:
         momenta = ['k_{}'.format(coordinate_names[i])
                    for i in range(len(builder.symmetry.periods))]
-- 
GitLab