From c5c6019ff08748182b62a7b786fedda5939abfd3 Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Sun, 6 Dec 2020 18:18:14 +0100
Subject: [PATCH] Fix deprecation warning for Sympy 1.7

We have to try from newest to oldest import to avoid deprecation
warnings.
---
 conftest.py                                   |  4 ++
 pystencils/assignment.py                      | 47 +++++--------------
 pystencils/backends/cbackend.py               |  7 +--
 pystencils/interpolation_astnodes.py          |  4 +-
 pystencils_tests/test_astnodes.py             | 19 ++++++--
 pystencils_tests/test_basic_usage_llvm.ipynb  |  2 +-
 .../test_jupyter_extensions.ipynb             | 18 +++----
 .../test_phasefield_dentritic_3D.ipynb        |  2 +-
 8 files changed, 45 insertions(+), 58 deletions(-)

diff --git a/conftest.py b/conftest.py
index 58b088bac..b7c535a59 100644
--- a/conftest.py
+++ b/conftest.py
@@ -98,6 +98,10 @@ try:
 except ImportError:
     collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils/datahandling/vtk.py")]
 
+# TODO: Remove if Ubuntu 18.04 is no longer supported
+if pytest_version < 50403:
+    collect_ignore += [os.path.join(SCRIPT_FOLDER, "pystencils_tests/test_jupyter_extensions.ipynb")]
+
 collect_ignore += [os.path.join(SCRIPT_FOLDER, 'setup.py')]
 
 for root, sub_dirs, files in os.walk('.'):
diff --git a/pystencils/assignment.py b/pystencils/assignment.py
index d56d0f4d6..4e51cd4a7 100644
--- a/pystencils/assignment.py
+++ b/pystencils/assignment.py
@@ -1,12 +1,8 @@
 import numpy as np
 import sympy as sp
+from sympy.codegen.ast import Assignment
 from sympy.printing.latex import LatexPrinter
 
-try:
-    from sympy.codegen.ast import Assignment
-except ImportError:
-    Assignment = None
-
 __all__ = ['Assignment', 'assignment_from_stencil']
 
 
@@ -21,43 +17,22 @@ def assignment_str(assignment):
     return r"{lhs} ← {rhs}".format(lhs=assignment.lhs, rhs=assignment.rhs)
 
 
-if Assignment:
-
-    _old_new = sp.codegen.ast.Assignment.__new__
-
-    def _Assignment__new__(cls, lhs, rhs, *args, **kwargs):
-        if isinstance(lhs, (list, tuple, sp.Matrix)) and isinstance(rhs, (list, tuple, sp.Matrix)):
-            assert len(lhs) == len(rhs), f'{lhs} and {rhs} must have same length when performing vector assignment!'
-            return tuple(_old_new(cls, a, b, *args, **kwargs) for a, b in zip(lhs, rhs))
-        return _old_new(cls, lhs, rhs, *args, **kwargs)
-
-    Assignment.__str__ = assignment_str
-    Assignment.__new__ = _Assignment__new__
-    LatexPrinter._print_Assignment = print_assignment_latex
+_old_new = sp.codegen.ast.Assignment.__new__
 
-    sp.MutableDenseMatrix.__hash__ = lambda self: hash(tuple(self))
 
-else:
-    # back port for older sympy versions that don't have Assignment  yet
+def _Assignment__new__(cls, lhs, rhs, *args, **kwargs):
+    if isinstance(lhs, (list, tuple, sp.Matrix)) and isinstance(rhs, (list, tuple, sp.Matrix)):
+        assert len(lhs) == len(rhs), f'{lhs} and {rhs} must have same length when performing vector assignment!'
+        return tuple(_old_new(cls, a, b, *args, **kwargs) for a, b in zip(lhs, rhs))
+    return _old_new(cls, lhs, rhs, *args, **kwargs)
 
-    class Assignment(sp.Rel):  # pragma: no cover
 
-        rel_op = ':='
-        __slots__ = []
+Assignment.__str__ = assignment_str
+Assignment.__new__ = _Assignment__new__
+LatexPrinter._print_Assignment = print_assignment_latex
 
-        def __new__(cls, lhs, rhs=0, **assumptions):
-            from sympy.matrices.expressions.matexpr import (
-                MatrixElement, MatrixSymbol)
-            lhs = sp.sympify(lhs)
-            rhs = sp.sympify(rhs)
-            # Tuple of things that can be on the lhs of an assignment
-            assignable = (sp.Symbol, MatrixSymbol, MatrixElement, sp.Indexed)
-            if not isinstance(lhs, assignable):
-                raise TypeError(f"Cannot assign to lhs of type {type(lhs)}.")
-            return sp.Rel.__new__(cls, lhs, rhs, **assumptions)
+sp.MutableDenseMatrix.__hash__ = lambda self: hash(tuple(self))
 
-        __str__ = assignment_str
-        _print_Assignment = print_assignment_latex
 
 # Apparently, in SymPy 1.4 Assignment.__hash__ is not implemented. This has been fixed in current master
 try:
diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py
index 41d1695e6..ae29ee1da 100644
--- a/pystencils/backends/cbackend.py
+++ b/pystencils/backends/cbackend.py
@@ -18,12 +18,9 @@ from pystencils.integer_functions import (
     int_div, int_power_of_2, modulo_ceil)
 
 try:
-    from sympy.printing.ccode import C99CodePrinter as CCodePrinter
+    from sympy.printing.c import C99CodePrinter as CCodePrinter  # for sympy versions > 1.6
 except ImportError:
-    try:
-        from sympy.printing.ccode import CCodePrinter  # for sympy versions < 1.1
-    except ImportError:
-        from sympy.printing.c import C11CodePrinter as CCodePrinter  # for sympy versions > 1.6
+    from sympy.printing.ccode import C99CodePrinter as CCodePrinter
 
 __all__ = ['generate_c', 'CustomCodeNode', 'PrintNode', 'get_headers', 'CustomSympyPrinter']
 
diff --git a/pystencils/interpolation_astnodes.py b/pystencils/interpolation_astnodes.py
index c230d0115..a694cb8ea 100644
--- a/pystencils/interpolation_astnodes.py
+++ b/pystencils/interpolation_astnodes.py
@@ -352,7 +352,7 @@ class InterpolatorAccess(TypedSymbol):
     __xnew_cached_ = staticmethod(cacheit(__new_stage2__))
 
     def __getnewargs__(self):
-        return tuple(self.symbol, *self.offsets)
+        return (self.symbol, *self.offsets)
 
 
 class DiffInterpolatorAccess(InterpolatorAccess):
@@ -397,7 +397,7 @@ class DiffInterpolatorAccess(InterpolatorAccess):
     __xnew_cached_ = staticmethod(cacheit(__new_stage2__))
 
     def __getnewargs__(self):
-        return tuple(self.symbol, self.diff_coordinate_idx, *self.offsets)
+        return (self.symbol, self.diff_coordinate_idx, *self.offsets)
 
 
 ##########################################################################################
diff --git a/pystencils_tests/test_astnodes.py b/pystencils_tests/test_astnodes.py
index 98c755efd..1d66eae29 100644
--- a/pystencils_tests/test_astnodes.py
+++ b/pystencils_tests/test_astnodes.py
@@ -1,9 +1,15 @@
+import pytest
 import sympy as sp
-import pystencils as ps
 
+import pystencils as ps
 from pystencils import Assignment
-from pystencils.astnodes import Block, SkipIteration, LoopOverCoordinate, SympyAssignment
-from sympy.codegen.rewriting import optims_c99
+from pystencils.astnodes import Block, LoopOverCoordinate, SkipIteration, SympyAssignment
+
+sympy_numeric_version = [int(x, 10) for x in sp.__version__.split('.')]
+if len(sympy_numeric_version) < 3:
+    sympy_numeric_version.append(0)
+sympy_numeric_version.reverse()
+sympy_version = sum(x * (100 ** i) for i, x in enumerate(sympy_numeric_version))
 
 dst = ps.fields('dst(8): double[2D]')
 s = sp.symbols('s_:8')
@@ -11,6 +17,8 @@ x = sp.symbols('x')
 y = sp.symbols('y')
 
 
+@pytest.mark.skipif(sympy_version < 10501,
+                    reason="Old Sympy Versions behave differently which wont be supported in the near future")
 def test_kernel_function():
     assignments = [
         Assignment(dst[0, 0](0), s[0]),
@@ -36,6 +44,8 @@ def test_skip_iteration():
     assert skipped.undefined_symbols == set()
 
 
+@pytest.mark.skipif(sympy_version < 10501,
+                    reason="Old Sympy Versions behave differently which wont be supported in the near future")
 def test_block():
     assignments = [
         Assignment(dst[0, 0](0), s[0]),
@@ -83,7 +93,8 @@ def test_loop_over_coordinate():
 
 
 def test_sympy_assignment():
-
+    pytest.importorskip('sympy.codegen.rewriting')
+    from sympy.codegen.rewriting import optims_c99
     assignment = SympyAssignment(dst[0, 0](0), sp.log(x + 3) / sp.log(2) + sp.log(x ** 2 + 1))
     assignment.optimize(optims_c99)
 
diff --git a/pystencils_tests/test_basic_usage_llvm.ipynb b/pystencils_tests/test_basic_usage_llvm.ipynb
index 30ba23683..4976b4b08 100644
--- a/pystencils_tests/test_basic_usage_llvm.ipynb
+++ b/pystencils_tests/test_basic_usage_llvm.ipynb
@@ -390,7 +390,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.6.5"
+   "version": "3.8.5"
   }
  },
  "nbformat": 4,
diff --git a/pystencils_tests/test_jupyter_extensions.ipynb b/pystencils_tests/test_jupyter_extensions.ipynb
index da8d17890..a34a1bd4f 100644
--- a/pystencils_tests/test_jupyter_extensions.ipynb
+++ b/pystencils_tests/test_jupyter_extensions.ipynb
@@ -39,7 +39,7 @@
     {
      "data": {
       "text/plain": [
-       "<matplotlib.image.AxesImage at 0x7ff5b00707c0>"
+       "<matplotlib.image.AxesImage at 0x7f5fa4f1cdc0>"
       ]
      },
      "execution_count": 4,
@@ -48,9 +48,9 @@
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<Figure size 1152x432 with 1 Axes>"
+       "<matplotlib.figure.Figure at 0x7f5fa4f425b0>"
       ]
      },
      "metadata": {
@@ -114,7 +114,7 @@
      "data": {
       "text/html": [
        "<video controls width=\"80%\">\n",
-       " <source src=\"data:video/x-m4v;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAG7ptZGF0AAACcgYF//9u3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MCByMzAxMSBjZGU5YTkzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTAgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEzIGxvb2thaGVhZF90aHJlYWRzPTIgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAOrGWIhAvyYoAAqcScnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/jpjbGB7AAzGAv7sCipqrccEuOuIt9wAQv19XnkMpGlotPm4GczKBOwyaRQEfbjkIzAXIjSREc//2ziZbN/UzdeETcuEXwGTTXk02oxGpWgc6S67htGL9CBekqo/X9B3HgDmoP/f+ceQBarBL+ZXP9oApPT4HbR3wS/wYCzUhqYDZhE+OOUh99X0hW1mMGaeH/8J8ABkkSBohw/FnngsMbX9xCvvvvvvvvvvvvvvv8f+HgsE4Cjp/jaBACYDCwrG0AVtB8IgdLCBIQUcc8YNbW1tbW18f4fQbH5CVedRSS22/+4+HhwMYQEAAQD8y9cICFNYNwdAWiHcQ6Ku50Ixi1tbW1tbW18f4fQbDOONHfzltvSS/8fDoOBLBZkwHEM8lucISAQ5cCEAeRtKWCCMcj4QDAB/oNgnwcTD0t3xAPQgQMiAcPLDg4eX4MuWUuX7Xx+AfsFYawIHG1W5BCoGcBoAX8mYqjmeQAjl3MJWNspK5uIV99999999999999/j7/DhQTwAI4v2wAECXNli4J6h+uuuuuuuuuuuuu+8NQTKoJxQDfffffffffffffffTBIp4IRQNHbW1tbW1rp5iRQACc89ra2tra2trXT0y10wRC7gjvvvvvvvvvvvvvvvrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuv/HTEWSMD2ABmMBf3YFFTVVR01FmVSu1wAQv19XnkMpGlotPm4Gc2mBzagwiE0SX77TQmZgPkwsRXv+/0GQ0YX86mXeP/dRwobpwi+BRLtbXf7/BeISU9BJ0k11HsbmAJ/Q5/r3Vh2FgDmyh7vrTEEydhW/crm+0AKTnpeLRySFvBgLNSGpgNmET445SH31fSFbWYwZoO1/+/9Q/XXXXXXXXXXXXXXXT09ddddddPT1111111109PXT111111111111111111111111111111133+uuuuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuv/HHAw2HuAAz3E2SM4hL8aBofMpMNdk05TYgdM1HOOsbocABMnENF+XJ0UYZ0HZwlzlpclJL2iwm0IhC8pS+3Do4KeXMLTXH6A5fF/Tm8gsc9ERLgBWNkHaxOojivmneEHiFcJ7criCogc8z8a0eGsdL/95wwywRiM3px9qsAFzBB0zWuQh98H47//f9Q/XXXXXXXXXXXXXXXT09ddddddPT1111111109PXT111111111111111111111111111111133+uuuuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuv/HHCB2HuAAz3E2SM4hL8aBofMpMNdk00FFKQVMZHCJOv/Q4ACZOIaL8uToowy5oAAy0FYg6tFhNoRCF5Sl9tbxC+RKcqjZ/93X+5fF8IKNBIW90H/3gArGyDtYnURxX2x4ABmB/HGxXEFRA55f41Fhbocf/e+GGWCMRm9OPtVgAuYIOma1yEPvg/Hf/7/qH6666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu+/1111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddddddddddddddddddddddPT11111109PXXXXXXXXT09dPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111//9OFA5wAH2BII3/bz8KKNeaHBWfj3dyZvdKwGEXFxzEqfbq+ELjwi/xENxXu7t8i4ncCqOcORXxdQ9TgiL8yGCuq2IDf/842AAIAQsnEIOrSQjYjEhJnL/7tA65zBFT8cNnN/7wAXMCBUzWuQh99/rqHa666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu+/1111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddddddddddddddddddddddPT11111109PXXXXXXXXT09dPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT11111111111111111111111111111111/fSEFyxYewCR+vYEAO+moM2jrG+9xhFKdbvreLYU6+zwYMGicVtpb01Wc153BGwYZMVjkoffB/D/AIBwQQEUOYDwvlNES50MP/wDALQQ4ACbINJO7InbrkESoGMqeu84fEf8a1r7TW+++++//xh7QqJS8ABNkGk3dkRW65BEqBjKnpvOfffffff+HGMAtBdAQ+udwAzI0Ri6kVHf7mIxnXcVLgU2i4OECQgBolQnOgPRIwhMfh0ISYtf/GH0Co9/6CQR1+i0eRfYTCz6fWsej/8mk3JpN/hx6AgQXBYACb8yp4Tv4xBDslr46NWRuBotWB0ZZZ3cmk06vla2totrC6OHct/pJaSW3KZKZyGSGTrePRgAIZum09J//gAZBfIpmyIOTZkG0UxnnQ234ceAcFwSBD7sHEEIy9KoOIAmCaBKctrtSPJrN/4AEA0C0EoOORy3xqhAKLLoyD0ZwcOMg4cZa4fwDANgtCwCG01Wrn4QmRAC4AGdftiMv4weHB9vv/8foMEMABJmEl2d0VSZzzloCNUDmVPn1v77777774/AAhhujMjyI//wAHmYSWZ3RVbB0QP0gd2UlBz33333/wx/CCHAA1YI5zGOcS7n376h+uuuuuuuuuuuuuu+v+rF4vxQewAEx+KUG+qzCF8T67ZNWnpwAPHQRFbYitH8sMaJR1SXVur33GQKrY5Uw1bv/91De2oXv+DMjAAECj7y1mdoa7/e+/3CfA9/cBTxlEYz1se6p3cSQHRVJShzGa3//KVj1Xu19TewNj/2k6UaQ3/9d8QiWk1D//dvxAg5BZXfddvE4kzHN+b/3/Xx38t/62/7h8UAAzfffff9wMMIAfYegA1uc5J+7wDgAHgI8TLWOMQboiTOve/AfOmYRbHTHEk3hsmxWFfqqRzBJeQQhBXWrA7FeYDRtO1taHUDslHLl9dY0xKlMUrDe1/1fTuuXieAkp8hCmRlFf/7sCAGsXmUEXx1WF/86F2Kxbt64+kpsUtl13251fHO9//vvt+bbN8VQcSJRWykMNw+KAAZvvvvv/Zg+ZaCgcAAcZIJn4160IQQJ/+4EjqQ0OxJinnnEVuixfjbLIHPI3ojqwDuZMtG7fvLNjUtiv7b9/kQdAAG1pa6WlpfgC8MH0wQAANnE0O5YlZekcNzFG6FsNkGNMeQ3juYolSwrJH5JtoFZZNKh/+8xoHLN9H6N/+mg7ds87v77AAhFrI5i6p+2W2WjbbBh+qiTIohK6LnFC8pI1++D/DDh/QTKAp4TXOclrCSMm8CxZWOav5+fzEdPJB1z/8/7QdtbW1vteLM6hQdX0wQAANuRoOz5qR+OC4lo1aHpZF38fkrek+DU99rGVs52/95DeKpiiRaiJ1eSbaBWWTSof/vNaByzfP0lv9bQdu2rzm/v9XMjF6zui99/VZNaMRO3h7glDRIiDp//74oXlI1/95/4fh/hMoCnhNc5yWsJIybwcWVjmr+fn6xHTyDr//9v/Mg6KANIktLS119YF0fVewQAAuWBiJvFahZu0D6AZCUJtNHF3IBGk1ifciqy4GtWnHWv5/X5//MbV2MQS7aVlN8Yk0dji6ikYqcTBST+xujf/VCFloG8ZdoZLDHH5LdV78zNmPv+3aB75xdWe5/uyUS5lX5hP+/6h+X+Ez6BJx85TXIV5cf3vlQ7PLWf+//1/mZjvX//8/6huuuuuvqwKOgbr2CAABZiJYV7VQgYvBMCNEFa2kJ7+/sWRABwwpUzH62EQbu6Jk3d785Q24ioTavQ+P/9gmYziLRznULb75mQ7EoG8pm49H9g/531NuCGpy9+bU37jZ0Nyq7fWqNEkGfPff8/5S/DxwRxeBOP0Jk3z70EXaB/h1Dddddddddddddddddddddddd9ddddddd9dddddd9dddddddddddddddd9dddddd99dddddd9ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeAAAAT5BmjgX4D5gLigomOBmnCi/MJQPu5MEAwAP6BWCPAdSctjgSIABGQHscsPY5fgwJ5ZQJ5fiICS8DRFA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\" type=\"video/mp4\">\n",
+       " <source src=\"data:video/x-m4v;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAGY9tZGF0AAACcgYF//9u3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MCByMzAxMSBjZGU5YTkzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTAgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEzIGxvb2thaGVhZF90aHJlYWRzPTIgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAOjWWIhAvyYoAAqcScnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/jpjbGB7AAzGAv7sCipqrccEuOuIt9wAQv19XnkMpGlotPm4GczKBOwyaRQEfbjkIzAXIjSREc//2ziZbN/UzdeETcuEXwGTTXk02oxGpWgc6S67htGL9CBekqo/X9B3HgDmoP/f+ceQBarBL+ZXP9oApPT4HbR3wS/wYCzUhqYDZhE+OOUh99X0hW1mMGaeH/8J8ABkkSBohw/FnngsMbX9xCvvvvvvvvvvvvvvv8f+HgsE4Cjp/jaBACYDCwrG0AVtB8IgdLCBIQUcc8YNbW1tbW1wgGAB/QKwjjDRnUSaTcpkpn4BiH/BYGsLgACAj7CCFNYDJAOgLRDuIdEO7Qhpra2tra2tr4//0CsN7B0TptvPp9/8fhoOBLgOCcXpbOECwQlgC8w+QmlLBBmP4/D+gVglwejFLY4JOiAaSWHBpJfkNENbXx+AfsFYawIHG1W5BCoGcBoAX8mYqjmeQAjl3MJWNspK5uIV99999999999999/j7/DhQTwAI4v2wAECXNli4J6h+uuuuuuuuuuuuu+8NQTKoJxQDfffffffffffffffTBIp4IRQNHbW1tbW1rp5ujgAEaWlpaWlpaWunplrpgiF3BHfffffffffffffffXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111111111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddf+OmIskYHsADMYC/uwKKmqqjpqLMqldrgAhfr6vPIZSNLRafNwM5tMDm1BhEJokv32mhMzAfJhYivf9/oMhowv51Mu8f+6jhQ3ThF8CiXa2u/3+C8Qkp6CTpJrqPY3MAT+hz/XurDsLAHNlD3fWmIJk7Ct+5XN9oAUnPS8WjkkLeDAWakNTAbMInxxykPvq+kK2sxgzQdr/9/6h+uuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrvv9dddddddddddddddddPT11111109PXXXXXXXXT09dPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111111111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddf+OOBhsPcABnuJskZxCX40DQ+ZSYa7JpymxA6ZqOcdY3Q4ACZOIaL8uToowzoOzhLnLS5KSXtFhNoRCF5Sl9uHRwU8uYWmuP0By+L+nN5BY56IiXACsbIO1idRHFfNO8IPEK4T25XEFRA55n41o8NY6X/7zhhlgjEZvTj7VYALmCDpmtchD74Px3/+/6h+uuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrvv9dddddddddddddddddPT11111109PXXXXXXXXT09dPXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT09ddddddPT1111111109PXT1111111111111111111111111111111111111111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddf+OOEDsPcABnuJskZxCX40DQ+ZSYa7JpoKKUgqYyOESdf+hwAEycQ0X5cnRRhlzQABloKxB1aLCbQiELylL7a3iF8iU5VGz/7uv9y+L4QUaCQt7oP/vABWNkHaxOojivtjwADMD+ONiuIKiBzy/xqLC3Q4/+98MMsEYjN6cfarABcwQdM1rkIffB+O//3/UP11111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddd9/rrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr//6cKBzgAPsCQRv+3n4UUa80OCs/Hu7kze6VgMIuLjmJU+3V8IXHhF/iIbivd3b5FxO4FUc4civi6h6nBEX5kMFdVsQG//5xsAAQAhZOIQdWkhGxGJCTOX/3aB1zmCKn44bOb/3gAuYECpmtchD77/XUO11111111111111109PXXXXXXT09ddddddddPT109ddddddddddddddddddddddddddddddd9/rrrrrrrrrrrrrrrrrp6euuuuuunp666666666enrp666666666666666666666666666666666666666666666666666enrrrrrrp6euuuuuuuunp66euuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuunp6666666enrrrrrrrrp6eunrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr++kILliw9gEj9ewIAd9NQZtHWN97jCKU63fW8Wwp19ngwYNE4rbS3pqs5rzuCNgwyYrHJQ++D+H+AQDgggIocwHhfKaIlzoYf/gGAWghwAE2QaSd2RO3XIIlQMZU9d5w+I/41rX2mt99999//jD2hUSl4ACbINJu7Iit1yCJUDGVPTec++++++/8OMYBaC6Ah9c7gBmRojF1IqO/3MRjOu4qXAptFwcIEhADRKhOdAeiRhCY/DoQkxa2s6Lr/xh9AqP/+UyUy1hdC/+TSbk0m8XYTC2mvhx6AgQXBgADb2VDpHe2HiCCulgiOjrJuB6AjgdGWWzcmk06rntbW0U1tbWLRUDc5DJDPj0YBH6ce//ABhdKZskfeD9mQ0ikM9oi/hj/guwHAEkWW+gIwcQBME0CU5bXayaTf+AQANAtBKDomWW5iTQill0ZB6M4HOpYc6ltcP4BgGwWhYBDaarVz8ITIgBcADOv2xGX8YPDg+33/+P0GCGAAkzCS7O6KpM41kBGqBzKnz639999999//j9AghgAJMwkuzui9s41kBGqBzKnz6399999/8MfxghwANWCOcxjnEu59++ofrrrrrrrrrrrrrrvr/qxeL8UHsABMfilBvqswhfE+u2TVp6cADx0ERW2IrR/LDGiUdUl1bq99xkCq2OVMNW7//dQ3tqF7/gzIwABAo+8tZnaGu/3vv9wnwPf3AU8ZRGM9bHuqd3EkB0VSUocxmt//ylY9V7tfU3sDY/9pOlGkN//XfEIlpNQ//3b8QIOQWV33XbxOJMxzfm/9/18d/Lf+tv+4fFAAM33333/cDDCAH2HoANbnOSfu8A4AB4CPEy1jjEG6Ikzr3vwHzpmEWx0xxJN4bJsVhX6qkcwSXkEIQV1qwOxXmA0bTtbWh1A7JRy5fXWNMSpTFKw3tf9X07rl4ngJKfIQpkZRX/+7AgBrF5lBF8dVhf/OhdisW7euPpKbFLZdd9udXxzvf/777fm2zfFUHEiUVspDDcPigAGb7777/2YPmWgoHAAHGSCZ+NetCEECf/uBI6kNDsSYp55xFbosX42yyBzyN6I6sA7mTLRu37yzY1LYr+2/f5EHQABtbW1paWl+BLwwfTBAAA2cTQ7liVl6Rw3MUboWw2QY0x5DeO5jm3EKywnJNtArJJxUP/3mtA5ZvH6S3+xoO3aV543f4AEItZHMXVP2y2y0bbYMP1USZFEJXRc4oXlJGv3wf4YcP6CZQFPCa5zktYSRk3geLKxzV/Pz+Yjp5IOuf/n/aDtrS0tLa8WZ1Cg6vpggAAbcjQdnzUj8cFxLRq0PSyJv4/JTeifBqe+1jK2c6f+8hvFUxRItRE6vZNtIHZJNSr/960Dlm+fpPf7Gg7dpXnjd/6uZGK1ndF77+qya0YidvD3BIaJEQdM/f6uKFZSN/7/f/D8P6CZQFPCa5zktYSRk3g4srHNX8/P5iOnkg9r/+/+0HRQDXXS119YF0fVewQAAuWBiJvFahZu0D6AZCUJtNHF3IBGk1ifciqy4GtWnHWv5/X5//MbV2MQS7aVlN8Yk0dji6ikYqcTBST+xujf/RCFlBvJdoZLDHH5LdV78zNmPv+i0HvnF1e5/uyUS5licwn/f9f5f4TPoEnHzlNchXlx/e+VDs8tZ/7//X+ZmO9ff/z/uG77777+rAoaBuvYIAAFmIlhXtVCBi8EwI0QVraQnP7+xZEAHDClTNfrYRBu7omTd3vz1DbiKhNq9D5jBMxnEWjnOoa33zMh2JQN5Rdw9H9kp/2bCrghqcvdTam/cbOhuVVb61Rokgz577/n/L/CRwJ+L8CcdEJv7+9RF2kH+N75YbBxPH33311111111111111111131111111311111131111111111111113311111133111111331111111111111111111111111111111111111111111111111111111111111111111111111111111111114AAAA80GaOBfgLQ/n4ESAiqCHcDRzY/AP0GxeBwZWjnnQgF0FRlkoy/Bi5ZRcvxMDR4CQwb4a8RIfo7xPg48x3zvE+DjzHfO8T4OPMd87xPg48x3zvE+DjzHfO8T4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\" type=\"video/mp4\">\n",
        " Your browser does not support the video tag.\n",
        "</video>"
       ],
@@ -148,9 +148,9 @@
    "outputs": [
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<Figure size 1152x432 with 1 Axes>"
+       "<matplotlib.figure.Figure at 0x7f5fa4e07160>"
       ]
      },
      "metadata": {
@@ -184,9 +184,9 @@
    "outputs": [
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<Figure size 1152x432 with 1 Axes>"
+       "<matplotlib.figure.Figure at 0x7f5fc03ea6a0>"
       ]
      },
      "metadata": {
@@ -216,7 +216,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.8.2"
+   "version": "3.8.5"
   }
  },
  "nbformat": 4,
diff --git a/pystencils_tests/test_phasefield_dentritic_3D.ipynb b/pystencils_tests/test_phasefield_dentritic_3D.ipynb
index 1a01f1038..b9e73677e 100644
--- a/pystencils_tests/test_phasefield_dentritic_3D.ipynb
+++ b/pystencils_tests/test_phasefield_dentritic_3D.ipynb
@@ -369,7 +369,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.6.9"
+   "version": "3.8.5"
   }
  },
  "nbformat": 4,
-- 
GitLab