Skip to content
Snippets Groups Projects
Commit 984606e4 authored by Martin Bauer's avatar Martin Bauer
Browse files

Prevent useless, time consuming optimization for some cases

parent 0b2bcad8
No related branches found
No related tags found
No related merge requests found
...@@ -35,6 +35,8 @@ def factorRelaxationRates(lbmCollisionEqs): ...@@ -35,6 +35,8 @@ def factorRelaxationRates(lbmCollisionEqs):
""" """
sh = lbmCollisionEqs.simplificationHints sh = lbmCollisionEqs.simplificationHints
assert 'relaxationRates' in sh, "Needs simplification hint 'relaxationRates': Sequence of relaxation rates" assert 'relaxationRates' in sh, "Needs simplification hint 'relaxationRates': Sequence of relaxation rates"
if len(sh['relaxationRates']) > 12: # heuristics - for too many relaxation rates this simplification makes no sense
return lbmCollisionEqs
relaxationRates = sp.Matrix(sh['relaxationRates']).atoms(sp.Symbol) relaxationRates = sp.Matrix(sh['relaxationRates']).atoms(sp.Symbol)
...@@ -193,7 +195,7 @@ def cseInOpposingDirections(lbmCollisionEqs): ...@@ -193,7 +195,7 @@ def cseInOpposingDirections(lbmCollisionEqs):
order='None', optimizations=[]) order='None', optimizations=[])
substitutions += [sp.Eq(f[0], f[1]) for f in foundSubexpressions] substitutions += [sp.Eq(f[0], f[1]) for f in foundSubexpressions]
updateRules = [sp.Eq(ur.lhs, ur.rhs.subs(relaxationRate*oldTerm, newCoefficient*newTerm)) updateRules = [sp.Eq(ur.lhs, ur.rhs.subs(relaxationRate * oldTerm, newCoefficient * newTerm))
for ur, newTerm, oldTerm in zip(updateRules, newTerms, terms)] for ur, newTerm, oldTerm in zip(updateRules, newTerms, terms)]
result += updateRules result += updateRules
...@@ -220,7 +222,7 @@ def __getCommonQuadraticAndConstantTerms(lbmCollisionEqs): ...@@ -220,7 +222,7 @@ def __getCommonQuadraticAndConstantTerms(lbmCollisionEqs):
pdfSymbols = lbmCollisionEqs.freeSymbols - relaxationRates pdfSymbols = lbmCollisionEqs.freeSymbols - relaxationRates
center = tuple([0]*dim) center = tuple([0] * dim)
t = lbmCollisionEqs.mainEquations[stencil.index(center)].rhs t = lbmCollisionEqs.mainEquations[stencil.index(center)].rhs
for rp in relaxationRates: for rp in relaxationRates:
t = t.subs(rp, 1) t = t.subs(rp, 1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment