diff --git a/kwant/builder.py b/kwant/builder.py index 320613af56a93b2e65080e978edeca5778235bf3..35e25c54dc679b2503e9d9ff56f5de9d440f9832 100644 --- a/kwant/builder.py +++ b/kwant/builder.py @@ -373,8 +373,8 @@ class HermConjOfFunc(object): def __init__(self, function): self.function = function - def __call__(self, i, j): - return herm_conj(self.function(j, i)) + def __call__(self, i, j, *args): + return herm_conj(self.function(j, i, *args)) ################ Leads diff --git a/kwant/tests/test_builder.py b/kwant/tests/test_builder.py index 6aa6ea743566643114845f194ebe1726211ef530..52ab1e190ef2e9e807fd8970531df29029330b9b 100644 --- a/kwant/tests/test_builder.py +++ b/kwant/tests/test_builder.py @@ -141,10 +141,10 @@ def test_construction_and_indexing(): def test_hermitian_conjugation(): - def f(i, j): + def f(i, j, arg): i, j = i.tag, j.tag if j[0] == i[0] + 1: - return ta.array([[1, 2j], [3 + 1j, 4j]]) + return arg * ta.array([[1, 2j], [3 + 1j, 4j]]) else: raise ValueError @@ -155,8 +155,8 @@ def test_hermitian_conjugation(): sys[sg(0), sg(1)] = f assert sys[sg(0), sg(1)] is f assert isinstance(sys[sg(1), sg(0)], builder.HermConjOfFunc) - assert_equal(sys[sg(1), sg(0)](sg(1), sg(0)), - sys[sg(0), sg(1)](sg(0), sg(1)).conjugate().transpose()) + assert_equal(sys[sg(1), sg(0)](sg(1), sg(0), 2), + sys[sg(0), sg(1)](sg(0), sg(1), 2).conjugate().transpose()) sys[sg(0), sg(1)] = sys[sg(1), sg(0)] assert isinstance(sys[sg(0), sg(1)], builder.HermConjOfFunc) assert sys[sg(1), sg(0)] is f