From 37a11a52027882fe58ab36879339df1d460ae550 Mon Sep 17 00:00:00 2001 From: Pablo Piskunow <pablo.perez.piskunow@gmail.com> Date: Wed, 24 Jun 2020 23:50:57 +0200 Subject: [PATCH] fix eradicate dangling accross translational symmetry --- kwant/builder.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kwant/builder.py b/kwant/builder.py index bc119b8f..841e22b3 100644 --- a/kwant/builder.py +++ b/kwant/builder.py @@ -886,8 +886,10 @@ class Builder: Sites are considered as dangling when less than two hoppings lead to them. """ + tfd = self.symmetry.to_fd sites = list(site for site in self.H if self._out_degree(site) < 2) + for site in sites: if site not in self.H: continue @@ -896,9 +898,15 @@ class Builder: if neighbors: assert len(neighbors) == 1 neighbor = neighbors[0] - self._del_edge(neighbor, site) - if self._out_degree(neighbor) > 1: - neighbor = False + if neighbor in self.H: + self._del_edge(neighbor, site) + if self._out_degree(neighbor) > 1: + neighbor = False + else: + assert not self.symmetry.in_fd(neighbor) + self._del_edge(*tfd(neighbor, site)) + if self._out_degree(tfd(neighbor)) > 1: + neighbor = False else: neighbor = False del self.H[site] -- GitLab