From 06749ab56bb63e59c1dcad6fa6293395fdd9666a Mon Sep 17 00:00:00 2001
From: Christoph Groth <christoph.groth@cea.fr>
Date: Wed, 17 May 2017 14:34:42 +0200
Subject: [PATCH] builder: for now, reset builder after a failed
 fill/attach_lead

---
 kwant/builder.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/kwant/builder.py b/kwant/builder.py
index b07409f2..137114ef 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -1349,9 +1349,11 @@ class Builder:
                 done.append(tail)
                 if len(done) > max_sites:
                     # The graph has unbalanced edges: delete it.
-                    del self.H
+                    self.H = {}
+                    self.leads = []
                     raise RuntimeError("Maximal number of sites (max_sites "
-                                       "parameter of fill()) added.")
+                                       "parameter of fill()) added.\n"
+                                       "All sites have been deleted.")
 
                 # Make an iterator over head-value-pairs.
                 shift = templ_sym.which(tail)
@@ -1497,8 +1499,10 @@ class Builder:
         def shape(site):
             domain, = sym.which(site)
             if domain < min_dom:
+                self.H = {}
                 raise ValueError('Builder does not interrupt the lead,'
-                                 ' this lead cannot be attached.')
+                                 ' this lead cannot be attached.\n'
+                                 'All sites have been deleted.')
             return domain <= max_dom + 1
 
         # We start flood-fill from the first domain that doesn't belong to the
-- 
GitLab