diff --git a/lbmpy/creationfunctions.py b/lbmpy/creationfunctions.py index 3f9947da71568f7127db03fb8a69eedcc0597234..4a21560fe62c4be879dfa5423d9ff8275afbddfe 100644 --- a/lbmpy/creationfunctions.py +++ b/lbmpy/creationfunctions.py @@ -638,14 +638,14 @@ class LBMConfig: entropic_newton_iterations: int = None omega_output_field: Field = None smagorinsky: bool = False - fluctuating: bool = False + fluctuating: dict = False temperature: Any = None output: dict = field(default_factory=dict) velocity_input: Field = None density_input: Field = None - kernel_type: str = 'default_stream_collide' + kernel_type: Union[str, PdfFieldAccessor] = 'default_stream_collide' streaming_pattern: str = 'pull' timestep: lbmpy.advanced_streaming.Timestep = Timestep.BOTH diff --git a/lbmpy/turbulence_models.py b/lbmpy/turbulence_models.py index 4d955a1a9f651bdf4768cadcbb01a78d5c8f5725..93150bf463d2a50b45f433bd1234cb1e19b311b0 100644 --- a/lbmpy/turbulence_models.py +++ b/lbmpy/turbulence_models.py @@ -44,8 +44,9 @@ def add_smagorinsky_model(collision_rule, smagorinsky_constant, omega_output_fie method = collision_rule.method omega_s = get_shear_relaxation_rate(method) - found_symbolic_shear_relaxation = False + found_symbolic_shear_relaxation = True if isinstance(omega_s, float) or isinstance(omega_s, int): + found_symbolic_shear_relaxation = False for eq in collision_rule.all_assignments: if eq.rhs == omega_s: found_symbolic_shear_relaxation = True diff --git a/lbmpy_tests/test_smagorinsky.py b/lbmpy_tests/test_smagorinsky.py new file mode 100644 index 0000000000000000000000000000000000000000..bb5fc99bbd8e9a7f970c776c9c64d7400a9e73a2 --- /dev/null +++ b/lbmpy_tests/test_smagorinsky.py @@ -0,0 +1,19 @@ +import sympy as sp +from pystencils.simp.subexpression_insertion import insert_constants + +from lbmpy import create_lb_collision_rule, LBMConfig, LBStencil, Stencil, Method + + +def test_smagorinsky_with_constant_omega(): + stencil = LBStencil(Stencil.D2Q9) + + config = LBMConfig(stencil=stencil, method=Method.SRT, smagorinsky=True, relaxation_rate=sp.Symbol("omega")) + collision_rule = create_lb_collision_rule(lbm_config=config) + + config = LBMConfig(stencil=stencil, method=Method.SRT, smagorinsky=True, relaxation_rate=1.5) + collision_rule2 = create_lb_collision_rule(lbm_config=config) + + collision_rule = collision_rule.subs({sp.Symbol("omega"): 1.5}) + collision_rule = insert_constants(collision_rule) + + assert collision_rule == collision_rule2 \ No newline at end of file