Skip to content
Snippets Groups Projects
Commit 28de45b8 authored by Markus Holzer's avatar Markus Holzer
Browse files

Fix PSM

parent 9fecfe2d
1 merge request!180[FIX] PSM generation
Pipeline #69403 passed with stages
in 37 minutes and 48 seconds
......@@ -124,7 +124,8 @@ class AbstractLbMethod(abc.ABC):
substitutions = [Assignment(e[1], e[0]) for e in subexpressions.items()]
if relaxation_rates_modifier is not None:
symbolic_relaxation_rates = [r * relaxation_rates_modifier for r in symbolic_relaxation_rates]
for srr in symbolic_relaxation_rates:
assert isinstance(srr, sp.Symbol)
else:
for srr in symbolic_relaxation_rates:
assert isinstance(srr, sp.Symbol)
return substitutions, sp.diag(*symbolic_relaxation_rates)
import pytest
from pystencils import fields, CreateKernelConfig, Target, create_kernel, get_code_str
from lbmpy import LBMConfig, Stencil, Method, LBStencil, create_lb_method, create_lb_collision_rule
from lbmpy.partially_saturated_cells import PSMConfig
@pytest.mark.parametrize('stencil', [Stencil.D2Q9, Stencil.D3Q15, Stencil.D3Q19, Stencil.D3Q27])
def test_psm_integration(stencil):
stencil = LBStencil(stencil)
fraction_field = fields("fraction_field: double[66, 18, 18]", layout=(2, 1, 0))
object_vel = fields("object_vel(3): double[66, 18, 18]", layout=(3, 2, 1, 0))
psm_config = PSMConfig(fraction_field=fraction_field,object_velocity_field=object_vel)
lbm_config = LBMConfig(stencil=stencil, method=Method.SRT, relaxation_rate=1.5, psm_config=psm_config)
config = CreateKernelConfig(target=Target.CPU)
method = create_lb_method(lbm_config)
collision_rule = create_lb_collision_rule(method)
ast = create_kernel(collision_rule, config=config)
code_str = get_code_str(ast)
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment