From 46dfc3f285b8f4f984fe4e69cbab945999b2df5d Mon Sep 17 00:00:00 2001 From: Michael Kuron <mkuron@icp.uni-stuttgart.de> Date: Mon, 18 Nov 2019 15:19:49 +0100 Subject: [PATCH] Disable cse_global on create_lb_collision_rule for Sympy < 1.2 --- lbmpy/creationfunctions.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lbmpy/creationfunctions.py b/lbmpy/creationfunctions.py index f7e30b3..18a2ed0 100644 --- a/lbmpy/creationfunctions.py +++ b/lbmpy/creationfunctions.py @@ -349,7 +349,13 @@ def create_lb_collision_rule(lb_method=None, optimization={}, **kwargs): collision_rule = cse_in_opposing_directions(collision_rule) if cse_global: from pystencils.simp import sympy_cse - collision_rule = sympy_cse(collision_rule) + sp_ver = sp.__version__.split('.') + if int(sp_ver[0]) > 1 or int(sp_ver[1]) > 1: + collision_rule = sympy_cse(collision_rule) + else: + import warnings + warnings.warn('SymPy versions below 1.2 may perform common subexpression elimination incorrectly on LB' + 'collision rules. Ignoring cse_global.') if params['output'] and params['kernel_type'] == 'stream_pull_collide': cqc = lb_method.conserved_quantity_computation -- GitLab