diff --git a/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py b/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py index 4149ae61c74a82e31a2d03a69b4d6fb5073c2aab..8d91315eb447510f336082a64448435eab068731 100644 --- a/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py +++ b/lbmpy_tests/full_scenarios/shear_wave/scenario_shear_wave.py @@ -5,19 +5,16 @@ Chapter 5.1 """ import numpy as np -import sympy as sp - import pytest +import sympy as sp from lbmpy import LatticeBoltzmannStep, LBStencil -from pystencils import Target, create_data_handling, CreateKernelConfig - -from lbmpy.creationfunctions import LBMConfig, LBMOptimisation, update_with_default_parameters +from lbmpy.creationfunctions import LBMConfig, LBMOptimisation +from lbmpy.db import LbmpyJsonSerializer +from lbmpy.enums import Method, Stencil from lbmpy.relaxationrates import ( relaxation_rate_from_lattice_viscosity, relaxation_rate_from_magic_number) - -from lbmpy.enums import Method, Stencil -from lbmpy.db import LbmpyJsonSerializer +from pystencils import Target, create_data_handling, CreateKernelConfig def get_exponent_term(l, **kwargs): @@ -57,7 +54,7 @@ def get_analytical_solution(l, l_0, u_0, v_0, nu, t): def plot_y_velocity(vel, **kwargs): import matplotlib.pyplot as plt - vel = vel[:, vel.shape[1]//2, :, 1] + vel = vel[:, vel.shape[1] // 2, :, 1] ranges = [np.arange(n, dtype=float) for n in vel.shape] x, y = np.meshgrid(*ranges, indexing='ij') fig = plt.gcf() @@ -194,13 +191,15 @@ def create_full_parameter_study(): methods = [LBMConfig(method=Method.TRT, relaxation_rates=[omega, 1]), LBMConfig(method=Method.MRT, relaxation_rates=[omega], equilibrium_order=2), LBMConfig(method=Method.MRT, relaxation_rates=[omega], equilibrium_order=3), - LBMConfig(method=Method.CUMULANT, relaxation_rates=[omega], # cumulant + LBMConfig(method=Method.CUMULANT, relaxation_rates=[omega], # cumulant compressible=True, continuous_equilibrium=True, equilibrium_order=3), LBMConfig(method=Method.CUMULANT, relaxation_rates=[omega], # cumulant with fourth-order correction compressible=True, continuous_equilibrium=True, fourth_order_correction=0.1), - LBMConfig(method=Method.TRT_KBC_N4, relaxation_rates=[omega, omega_f], entropic=True, zero_centered=False, # entropic order 2 + LBMConfig(method=Method.TRT_KBC_N4, relaxation_rates=[omega, omega_f], entropic=True, + zero_centered=False, # entropic order 2 continuous_equilibrium=True, equilibrium_order=2), - LBMConfig(method=Method.TRT_KBC_N4, relaxation_rates=[omega, omega_f], entropic=True, zero_centered=False, # entropic order 3 + LBMConfig(method=Method.TRT_KBC_N4, relaxation_rates=[omega, omega_f], entropic=True, + zero_centered=False, # entropic order 3 continuous_equilibrium=True, equilibrium_order=3), # entropic cumulant: not supported for the moment @@ -237,20 +236,27 @@ def create_full_parameter_study(): parameter_study.add_run(simulation_params.copy(), weight=(L / l_0) ** 4) return parameter_study + def test_shear_wave(): pytest.importorskip('cupy') params = { + 'y_size': 1, 'l_0': 32, 'u_0': 0.096, 'v_0': 0.1, - 'stencil': Stencil.D3Q27, - 'compressible': True, - "optimization": {"target": Target.GPU} + 'l': 32, + 'nu': 1e-2, } - run(32, nu=1e-2, equilibrium_order=2, method=Method.SRT, y_size=1, periodicity_in_kernel=True, - relaxation_rates=[sp.Symbol('omega')], continuous_equilibrium=True, **params) + kernel_config = CreateKernelConfig(target=Target.GPU) + lbm_config = LBMConfig(method=Method.SRT, relaxation_rates=[sp.Symbol("omega")], stencil=LBStencil(Stencil.D3Q27), + compressible=True, continuous_equilibrium=True, equilibrium_order=2) + + run(**params, lbm_config=lbm_config, config=kernel_config, lbm_optimisation=LBMOptimisation()) + + +@pytest.mark.longrun def test_all_scenarios(): parameter_study = create_full_parameter_study() parameter_study.run()