diff --git a/methods/entropic.py b/methods/entropic.py index 673b5934449ff616aa1677509377b00a94f13c2f..233be9824f157f369ac343f44489e326aa9bd02b 100644 --- a/methods/entropic.py +++ b/methods/entropic.py @@ -1,5 +1,3 @@ -from collections import defaultdict - import sympy as sp from pystencils.transformations import fastSubs from lbmpy.methods.relaxationrates import getShearRelaxationRate diff --git a/serialscenario.py b/serialscenario.py index 1655ba1e14cac2c8345655c6ec33993de9b70f73..e5247e5dd9c881bbdf3364291cfdb6c91c8d9407 100644 --- a/serialscenario.py +++ b/serialscenario.py @@ -1,7 +1,7 @@ from functools import partial import numpy as np from pystencils import Field -from pystencils.slicing import sliceFromDirection +from pystencils.slicing import sliceFromDirection, addGhostLayers, getPeriodicBoundaryFunctor from lbmpy.creationfunctions import createLatticeBoltzmannFunction from lbmpy.macroscopic_value_kernels import compileMacroscopicValuesGetter, compileMacroscopicValuesSetter from lbmpy.boundaries import BoundaryHandling, noSlip, ubb, fixedDensity @@ -69,9 +69,6 @@ def createScenario(domainSize, boundarySetupFunction, methodParameters, optimiza pdfArrays[0], pdfArrays[1] = pdfArrays[1], pdfArrays[0] getMacroscopic(pdfs=pdfArrays[0], density=densityArr[0], velocity=velocityArr[0]) - #for vComp in range(velocityArr[0].shape[-1]): - # v = velocityArr[0][..., vComp] - # v[boundaryHandling.flagField != boundaryHandling._fluidFlag] = 0 return pdfArrays[0], densityArr[0], velocityArr[0] def gpuTimeLoop(timeSteps): @@ -101,6 +98,19 @@ def createScenario(domainSize, boundarySetupFunction, methodParameters, optimiza return gpuTimeLoop if optimizationParams['target'] == 'gpu' else cpuTimeLoop +def createFullyPeriodicFlow(initialVelocity, optimizationParams={}, lbmKernel=None, kernelParams={}, **kwargs): + domainSize = initialVelocity.shape + # extend velocity with ghost layer + initialVelocityWithGl = addGhostLayers(initialVelocity, indexDimensions=1, ghostLayers=1) + + stencil = getStencil(kwargs['stencil']) + periodicity = getPeriodicBoundaryFunctor(stencil) + + return createScenario(domainSize, None, kwargs, optimizationParams, lbmKernel=lbmKernel, + initialVelocity=initialVelocityWithGl, kernelParams=kernelParams, + preUpdateFunctions=[periodicity]) + + def createLidDrivenCavity(domainSize, lidVelocity=0.005, optimizationParams={}, lbmKernel=None, kernelParams={}, **kwargs): def boundarySetupFunction(boundaryHandling, method):