From 706c525715e13a8176fbc21500e87cd27d475453 Mon Sep 17 00:00:00 2001
From: Martin Bauer <martin.bauer@fau.de>
Date: Thu, 22 Mar 2018 19:15:44 +0100
Subject: [PATCH] Added notebook with LES Smagorinsky model

---
 equationcollection/equationcollection.py | 15 +++++++++++++++
 parallel/blockiteration.py               |  5 ++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/equationcollection/equationcollection.py b/equationcollection/equationcollection.py
index 5baac35a0..66146ad0c 100644
--- a/equationcollection/equationcollection.py
+++ b/equationcollection/equationcollection.py
@@ -225,6 +225,21 @@ class EquationCollection(object):
         allLhs = [eq.lhs for eq in self.mainEquations]
         return self.extract(allLhs)
 
+    def appendToSubexpressions(self, rhs, lhs=None, topologicalSort=True):
+        if lhs is None:
+            lhs = sp.Dummy()
+        eq = sp.Eq(lhs, rhs)
+        self.subexpressions.append(eq)
+        if topologicalSort:
+            self.topologicalSort(subexpressions=True, mainEquations=False)
+        return lhs
+
+    def topologicalSort(self, subexpressions=True, mainEquations=True):
+        if subexpressions:
+            self.subexpressions = sortEquationsTopologically(self.subexpressions)
+        if mainEquations:
+            self.mainEquations = sortEquationsTopologically(self.mainEquations)
+
     def insertSubexpression(self, symbol):
         newSubexpressions = []
         subsDict = None
diff --git a/parallel/blockiteration.py b/parallel/blockiteration.py
index e6280d216..110f7a673 100644
--- a/parallel/blockiteration.py
+++ b/parallel/blockiteration.py
@@ -4,8 +4,11 @@ These function simplify the iteration over rectangular slices, managing the mapp
 global coordinates.
 """
 import numpy as np
-import waLBerla as wlb
 from pystencils.slicing import normalizeSlice
+try:
+    import waLBerla as wlb
+except ImportError:
+    wlb = None
 
 
 def blockIteration(blocks, ghostLayers, dim=3, accessPrefix=''):
-- 
GitLab