From e8d3ca730ad12ff84c3d4c6f21b662de03197849 Mon Sep 17 00:00:00 2001
From: Martin Bauer <martin.bauer@fau.de>
Date: Tue, 2 Oct 2018 14:39:07 +0200
Subject: [PATCH] Bugfixes for sympy 1.3

---
 data_types.py           | 2 ++
 fd/finitedifferences.py | 6 +++---
 kernel_decorator.py     | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/data_types.py b/data_types.py
index 4782234d5..320103bd7 100644
--- a/data_types.py
+++ b/data_types.py
@@ -328,6 +328,8 @@ def get_type_of_expression(expr):
 
 
 class Type(sp.Basic):
+    is_Atom = True
+
     def __new__(cls, *args, **kwargs):
         return sp.Basic.__new__(cls)
 
diff --git a/fd/finitedifferences.py b/fd/finitedifferences.py
index 0e36590be..fe093ec16 100644
--- a/fd/finitedifferences.py
+++ b/fd/finitedifferences.py
@@ -21,7 +21,7 @@ def diffusion(scalar, diffusion_coeff, idx=None):
         >>> diffusion_term = diffusion(scalar=f, diffusion_coeff=sp.Symbol("d"))
         >>> discretization = Discretization2ndOrder()
         >>> discretization(diffusion_term)
-        (-4*f_C*d + f_E*d + f_N*d + f_S*d + f_W*d)/dx**2
+        (f_W*d + f_S*d - 4*f_C*d + f_N*d + f_E*d)/dx**2
     """
     if isinstance(scalar, Field):
         first_arg = scalar.center
@@ -302,7 +302,7 @@ def discretize_center(term, symbols_to_field_dict, dx, dim=3):
       x*x^Delta^0
       >>> f = Field.create_generic('f', spatial_dimensions=3)
       >>> discretize_center(term, { x: f }, dx=1, dim=3)
-      f_C*(f_E/2 - f_W/2)
+      f_C*(-f_W/2 + f_E/2)
     """
     substitutions = {}
     for symbols, field in symbols_to_field_dict.items():
@@ -385,7 +385,7 @@ def discretize_divergence(vector_term, symbols_to_field_dict, dx):
         >>> grad_x = grad(x, dim=3)
         >>> f = Field.create_generic('f', spatial_dimensions=3)
         >>> sp.simplify(discretize_divergence(grad_x, {x : f}, dx))
-        (f_B - 6*f_C + f_E + f_N + f_S + f_T + f_W)/dx**2
+        (f_W + f_S + f_B - 6*f_C + f_T + f_N + f_E)/dx**2
     """
     dim = len(vector_term)
     result = 0
diff --git a/kernel_decorator.py b/kernel_decorator.py
index fa496c8a7..e895ad861 100644
--- a/kernel_decorator.py
+++ b/kernel_decorator.py
@@ -26,7 +26,7 @@ def kernel(func, **kwargs):
         ...     s.neighbors @= f[0,1] + f[1,0]
         ...     g[0,0]      @= s.neighbors + f[0,0] if f[0,0] > 0 else 0
         >>> my_kernel
-        [Assignment(neighbors, f_E + f_N), Assignment(g_C, Piecewise((f_C + neighbors, f_C > 0), (0, True)))]
+        [Assignment(neighbors, f_N + f_E), Assignment(g_C, Piecewise((f_C + neighbors, f_C > 0), (0, True)))]
     """
     source = inspect.getsource(func)
     source = textwrap.dedent(source)
-- 
GitLab