diff --git a/kwant/builder.py b/kwant/builder.py index bc119b8f6c9f0e93a642f9cec270785840836ee9..841e22b3ea939f3caa20a62b23c72eed4de3e143 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]