diff --git a/creationfunctions.py b/creationfunctions.py index ee471653570c8e0d09d0f7a7f64762f78a5ba3c7..816b73a3e7f0d7a664473c27fce99dcc60596561 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 5a12ab0555af5375274ef186d1d24e11531a9e43..d13483753f945ec6c2e5f0321537ebc9ccecba58 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)