Skip to content
Snippets Groups Projects
Commit 902584c2 authored by Frederik Hennig's avatar Frederik Hennig
Browse files

fix: cast offsets in BC force calculation

parent 9d7abfa6
Branches
No related tags found
1 merge request!172Draft: Changes for compatibility with pystencils 2.0
Pipeline #70371 failed
...@@ -147,6 +147,8 @@ class NoSlip(LbBoundary): ...@@ -147,6 +147,8 @@ class NoSlip(LbBoundary):
force = sp.Symbol("f") force = sp.Symbol("f")
subexpressions = [Assignment(force, sp.Float(2.0) * f_out(dir_symbol))] subexpressions = [Assignment(force, sp.Float(2.0) * f_out(dir_symbol))]
offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil) offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil)
if IS_PYSTENCILS_2:
offset = [CastFunc.as_numeric(o) for o in offset]
for i in range(lb_method.stencil.D): for i in range(lb_method.stencil.D):
subexpressions.append(Assignment(force_vector[0](f'F_{i}'), force * offset[i])) subexpressions.append(Assignment(force_vector[0](f'F_{i}'), force * offset[i]))
else: else:
...@@ -228,6 +230,8 @@ class NoSlipLinearBouzidi(LbBoundary): ...@@ -228,6 +230,8 @@ class NoSlipLinearBouzidi(LbBoundary):
force = sp.Symbol("f") force = sp.Symbol("f")
subexpressions.append(Assignment(force, f_xf + rhs)) subexpressions.append(Assignment(force, f_xf + rhs))
offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil) offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil)
if IS_PYSTENCILS_2:
offset = [CastFunc.as_numeric(o) for o in offset]
for i in range(lb_method.stencil.D): for i in range(lb_method.stencil.D):
subexpressions.append(Assignment(force_vector[0](f'F_{i}'), force * offset[i])) subexpressions.append(Assignment(force_vector[0](f'F_{i}'), force * offset[i]))
...@@ -382,6 +386,8 @@ class QuadraticBounceBack(LbBoundary): ...@@ -382,6 +386,8 @@ class QuadraticBounceBack(LbBoundary):
force = sp.Symbol("f") force = sp.Symbol("f")
subexpressions.append(Assignment(force, f_xf + result)) subexpressions.append(Assignment(force, f_xf + result))
offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil) offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil)
if IS_PYSTENCILS_2:
offset = [CastFunc.as_numeric(o) for o in offset]
for i in range(lb_method.stencil.D): for i in range(lb_method.stencil.D):
subexpressions.append(Assignment(force_vector[0](f'F_{i}'), force * offset[i])) subexpressions.append(Assignment(force_vector[0](f'F_{i}'), force * offset[i]))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment