From 664e69395e482ce5189b5e161bc4f97193ce9734 Mon Sep 17 00:00:00 2001 From: Martin Bauer <martin.bauer@fau.de> Date: Fri, 5 May 2017 16:19:20 +0200 Subject: [PATCH] Simplifications for entropic setup - used these simplifications in double_shear_layer benchmark --- creationfunctions.py | 8 ++++++-- scenarios.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/creationfunctions.py b/creationfunctions.py index ee471653..816b73a3 100644 --- a/creationfunctions.py +++ b/creationfunctions.py @@ -191,8 +191,12 @@ def updateWithDefaultParameters(params, optParams, failOnUnknownParameter=True): } if 'relaxationRate' in params: if 'relaxationRates' not in params: - params['relaxationRates'] = [params['relaxationRate'], - relaxationRateFromMagicNumber(params['relaxationRate'])] + if 'entropic' in params and params['entropic']: + params['relaxationRates'] = [params['relaxationRate']] + else: + params['relaxationRates'] = [params['relaxationRate'], + relaxationRateFromMagicNumber(params['relaxationRate'])] + del params['relaxationRate'] if failOnUnknownParameter: diff --git a/scenarios.py b/scenarios.py index 5a12ab05..d1348375 100644 --- a/scenarios.py +++ b/scenarios.py @@ -24,6 +24,7 @@ at :mod:`lbmpy.creationfunctions`. The only mandatory keyword parameter is ``rel that defines the viscosity of the fluid (valid values being between 0 and 2). """ import numpy as np +import sympy as sp from functools import partial from pystencils.field import getLayoutOfArray, createNumpyArrayWithLayout from pystencils.slicing import sliceFromDirection, addGhostLayers, removeGhostLayers, normalizeSlice, makeSlice @@ -270,6 +271,19 @@ class Scenario(object): # Create kernel if lbmKernel is None: + if methodParameters['entropic']: + newRelaxationRates = [] + for rr in methodParameters['relaxationRates']: + if not isinstance(rr, sp.Symbol): + dummyVar = sp.Dummy() + newRelaxationRates.append(dummyVar) + kernelParams[dummyVar.name] = rr + else: + newRelaxationRates.append(rr) + if len(newRelaxationRates) < 2: + newRelaxationRates.append(sp.Dummy()) + methodParameters['relaxationRates'] = newRelaxationRates + optimizationParams['pdfArr'] = self._pdfArrays[0] methodParameters['optimizationParams'] = optimizationParams self._lbmKernel = createLatticeBoltzmannFunction(**methodParameters) -- GitLab