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

New simple Neumann boundary (copy values of next inner cell)

parent a73217ca
No related branches found
No related tags found
No related merge requests found
from lbmpy.boundaries.boundaryconditions import NoSlip, NoSlipFullWay, UBB, FixedDensity from lbmpy.boundaries.boundaryconditions import NoSlip, NoSlipFullWay, UBB, FixedDensity, NeumannByCopy
from lbmpy.boundaries.boundaryhandling import BoundaryHandling from lbmpy.boundaries.boundaryhandling import BoundaryHandling
\ No newline at end of file
...@@ -161,3 +161,15 @@ class FixedDensity(Boundary): ...@@ -161,3 +161,15 @@ class FixedDensity(Boundary):
for eq in symmetricEq.subexpressions] for eq in symmetricEq.subexpressions]
return subExprs + [sp.Eq(pdfField[neighbor](inverseDir), 2 * eq_component - pdfField(directionSymbol))] return subExprs + [sp.Eq(pdfField[neighbor](inverseDir), 2 * eq_component - pdfField(directionSymbol))]
class NeumannByCopy(Boundary):
def __call__(self, pdfField, directionSymbol, lbMethod, **kwargs):
neighbor = offsetFromDir(directionSymbol, lbMethod.dim)
return [sp.Eq(pdfField[neighbor](directionSymbol), pdfField(directionSymbol))]
def __hash__(self):
# All boundaries of these class behave equal -> should also be equal
return hash("NeumannByCopy")
def __eq__(self, other):
return type(other) == NeumannByCopy
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment