From 0befa493fd7570b473a54cc9d07e9f8498aacf08 Mon Sep 17 00:00:00 2001 From: Anton Akhmerov <anton.akhmerov@gmail.com> Date: Thu, 2 Nov 2023 20:02:43 +0100 Subject: [PATCH] make e positive, fixes #48 --- qsymm/kwant_continuum.py | 3 +++ qsymm/model.py | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/qsymm/kwant_continuum.py b/qsymm/kwant_continuum.py index c2e5695..7d16e30 100644 --- a/qsymm/kwant_continuum.py +++ b/qsymm/kwant_continuum.py @@ -51,6 +51,7 @@ import warnings momentum_operators = sympy.symbols('k_x k_y k_z', commutative=False) position_operators = sympy.symbols('x y z', commutative=False) +e = sympy.symbols('e', positive=True) pauli = [sympy.eye(2), _msigma(1), _msigma(2), _msigma(3)] @@ -217,6 +218,8 @@ def sympify(expr, locals=None): # sympify we are getting list of sympy objects, so we call sympify # second time to obtain ``sympy`` matrices. hamiltonian = sympy.sympify(hamiltonian) + # A workaround for qsymm issue #48 + hamiltonian = hamiltonian.subs(sympy.sympify('e'), e) finally: if stored_value is not None: converter[list] = stored_value diff --git a/qsymm/model.py b/qsymm/model.py index 63b1458..1cbcf49 100644 --- a/qsymm/model.py +++ b/qsymm/model.py @@ -19,8 +19,8 @@ from . import kwant_continuum _commutative_momenta = [kwant_continuum.make_commutative(k, k) for k in kwant_continuum.momentum_operators] -e = kwant_continuum.sympify('e') -I = kwant_continuum.sympify('I') # noqa: E741 +e = kwant_continuum.e +I = sympy.I # noqa: E741 def substitute_exponents(expr): @@ -990,7 +990,7 @@ def _find_momenta(momenta): @lru_cache(maxsize=1000) def _symbol_normalizer(key): - return sympy.expand_power_exp(sympy.sympify(key)) + return sympy.expand_power_exp(sympy.sympify(key, locals={'e': e})) @lru_cache(maxsize=1000) -- GitLab