From 650d2eadf53c93c11c71cea814772523babcf2f4 Mon Sep 17 00:00:00 2001
From: Martin Bauer <bauer_martin@gmx.de>
Date: Thu, 5 Jan 2017 15:31:56 +0100
Subject: [PATCH] new lbm module: momentbased methods & new conserved quantity
 computation

---
 equationcollection/equationcollection.py | 19 ++++++++++++++++---
 equationcollection/simplifications.py    |  4 ++--
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/equationcollection/equationcollection.py b/equationcollection/equationcollection.py
index b3c9cc33e..0f0c5e9b6 100644
--- a/equationcollection/equationcollection.py
+++ b/equationcollection/equationcollection.py
@@ -37,18 +37,30 @@ class EquationCollection:
 
         self.subexpressionSymbolNameGenerator = symbolGen()
 
-    def createNewWithAdditionalSubexpressions(self, newEquations, additionalSubExpressions):
+    def newWithAdditionalSubexpressions(self, newEquations, additionalSubExpressions):
+        """
+        Returns a new equation collection, that has `newEquations` as mainEquations.
+        The `additionalSubExpressions` are appended to the existing subexpressions.
+        Simplifications hints are copied over.
+        """
         assert len(self.mainEquations) == len(newEquations), "Number of update equations cannot be changed"
         return EquationCollection(newEquations,
                                   self.subexpressions + additionalSubExpressions,
                                   self.simplificationHints)
 
-    def createNewWithSubstitutionsApplied(self, substitutionDict):
+    def newWithSubstitutionsApplied(self, substitutionDict):
+        """
+        Returns a new equation collection, where terms are substituted according to the passed `substitutionDict`.
+        Substitutions are made in the subexpression terms and the main equations
+        """
         newSubexpressions = [fastSubs(eq, substitutionDict) for eq in self.subexpressions]
         newEquations = [fastSubs(eq, substitutionDict) for eq in self.mainEquations]
         return EquationCollection(newEquations, newSubexpressions, self.simplificationHints)
 
     def addSimplificationHint(self, key, value):
+        """
+        Adds an entry to the simplificationHints dictionary, and checks that is does not exist yet
+        """
         assert key not in self.simplificationHints, "This hint already exists"
         self.simplificationHints[key] = value
 
@@ -56,6 +68,7 @@ class EquationCollection:
 
     @property
     def allEquations(self):
+        """Subexpression and main equations in one sequence"""
         return self.subexpressions + self.mainEquations
 
     @property
@@ -218,7 +231,7 @@ class EquationCollection:
         :param module: same as sympy.lambdify paramter of same same, i.e. which module to use e.g. 'numpy'
         :param fixedSymbols: dictionary with substitutions, that are applied before lambdification
         """
-        eqs = self.createNewWithSubstitutionsApplied(fixedSymbols).insertSubexpressions().mainEquations
+        eqs = self.newWithSubstitutionsApplied(fixedSymbols).insertSubexpressions().mainEquations
         lambdas = {eq.lhs: sp.lambdify(symbols, eq.rhs, module) for eq in eqs}
 
         def f(*args, **kwargs):
diff --git a/equationcollection/simplifications.py b/equationcollection/simplifications.py
index cd5912994..24a21fdf5 100644
--- a/equationcollection/simplifications.py
+++ b/equationcollection/simplifications.py
@@ -26,7 +26,7 @@ def sympyCSE(equationCollection):
 def applyOnAllEquations(equationCollection, operation):
     """Applies sympy expand operation to all equations in collection"""
     result = [operation(s) for s in equationCollection.mainEquations]
-    return equationCollection.createNewWithAdditionalSubexpressions(result, [])
+    return equationCollection.newWithAdditionalSubexpressions(result, [])
 
 
 def applyOnAllSubexpressions(equationCollection, operation):
@@ -57,6 +57,6 @@ def subexpressionSubstitutionInUpdateEquations(equationCollection):
         for subExpr in equationCollection.subexpressions:
             newRhs = replaceAdditive(newRhs, subExpr.lhs, subExpr.rhs, requiredMatchReplacement=1.0)
         result.append(sp.Eq(s.lhs, newRhs))
-    return equationCollection.createNewWithAdditionalSubexpressions(result, [])
+    return equationCollection.newWithAdditionalSubexpressions(result, [])
 
 
-- 
GitLab