From 91546a1b35c62745f97837d40d0db0f44d2085bf Mon Sep 17 00:00:00 2001 From: Markus Holzer <markus.holzer@fau.de> Date: Wed, 25 Sep 2024 16:12:26 +0200 Subject: [PATCH] test nightly --- src/lbmpy/methods/abstractlbmethod.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/lbmpy/methods/abstractlbmethod.py b/src/lbmpy/methods/abstractlbmethod.py index 0337d432..4ec0048c 100644 --- a/src/lbmpy/methods/abstractlbmethod.py +++ b/src/lbmpy/methods/abstractlbmethod.py @@ -105,27 +105,26 @@ class AbstractLbMethod(abc.ABC): the subexpressions, that assign the number to the newly introduced symbol """ rr = relaxation_rates if relaxation_rates is not None else self.relaxation_rates - unique_relaxation_rates = set() subexpressions = {} symbolic_relaxation_rates = list() for relaxation_rate in rr: relaxation_rate = sp.sympify(relaxation_rate) - symbolic_relaxation_rate = relaxation_rate - if relaxation_rate not in unique_relaxation_rates: - # special treatment for zero, sp.Zero would be an integer. + if isinstance(relaxation_rate, sp.Symbol): + symbolic_relaxation_rate = relaxation_rate + else: if isinstance(relaxation_rate, Zero): relaxation_rate = 0.0 - if not isinstance(relaxation_rate, sp.Symbol): + if relaxation_rate in subexpressions: + symbolic_relaxation_rate = subexpressions[relaxation_rate] + else: symbolic_relaxation_rate = sp.Symbol(f"rr_{len(subexpressions)}") subexpressions[relaxation_rate] = symbolic_relaxation_rate symbolic_relaxation_rates.append(symbolic_relaxation_rate) - unique_relaxation_rates.add(relaxation_rate) - new_rr = [subexpressions[sp.sympify(e)] if sp.sympify(e) in subexpressions else e for e in rr] substitutions = [Assignment(e[1], e[0]) for e in subexpressions.items()] if relaxation_rates_modifier is not None: - new_rr = [r * relaxation_rates_modifier for r in new_rr] - for rr in new_rr: - assert isinstance(rr, sp.Symbol) + symbolic_relaxation_rates = [r * relaxation_rates_modifier for r in symbolic_relaxation_rates] + for srr in symbolic_relaxation_rates: + assert isinstance(srr, sp.Symbol) - return substitutions, sp.diag(*new_rr) + return substitutions, sp.diag(*symbolic_relaxation_rates) -- GitLab