diff --git a/qsymm/kwant_continuum.py b/qsymm/kwant_continuum.py index 9a720522ad97cf806c9f30e2c0cfa45efe645706..842bf125c3212b079f366b13ea8ba85ec8f04b31 100644 --- a/qsymm/kwant_continuum.py +++ b/qsymm/kwant_continuum.py @@ -206,7 +206,11 @@ def sympify(expr, locals=None): "identifiers and may not be keywords".format(repr(k))) # sympify values of locals before updating it with extra_ns - locals = {k: sympify(v) for k, v in locals.items()} + # Cast numpy array values in locals to sympy matrices to make sure they have + # correct format + locals = {k: (sympy.Matrix(v) if isinstance(v, np.ndarray) else sympify(v)) + for k, v in locals.items()} + for k, v in extra_ns.items(): locals.setdefault(k, v) try: