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

lbmpy: shear wave testcase

parent ee493b4e
Branches
Tags
No related merge requests found
from collections import defaultdict
import sympy as sp
from pystencils.transformations import fastSubs
from lbmpy.methods.relaxationrates import getShearRelaxationRate
......
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):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment