From c53f7a6d5b13ff6dc5f9525e63d2d02cbe7a359c Mon Sep 17 00:00:00 2001 From: Joseph Weston <joseph.weston08@gmail.com> Date: Mon, 20 Nov 2017 13:12:09 +0100 Subject: [PATCH] add compatibility check between site families and delta in HoppingKinds --- kwant/builder.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kwant/builder.py b/kwant/builder.py index 5b053b01..93e7e2b8 100644 --- a/kwant/builder.py +++ b/kwant/builder.py @@ -442,6 +442,17 @@ class HoppingKind(tuple): else: ensure_isinstance(family_b, SiteFamily) family_b = family_b + + try: + Site(family_b, family_a.normalize_tag(delta) - delta) + except Exception as e: + same_fams = family_b is family_a + msg = (str(family_a), + 'and {} are'.format(family_b) if not same_fams else ' is', + 'not compatible with delta={}'.format(delta), + ) + raise ValueError(' '.join(msg)) from e + return tuple.__new__(cls, (delta, family_a, family_b)) def __call__(self, builder): -- GitLab