Skip to content
Snippets Groups Projects
Commit f465d41d authored by Helen Schottenhamml's avatar Helen Schottenhamml
Browse files

Merge branch 'SquareChannel' into 'master'

SquaredChannel

See merge request pycodegen/lbmpy!114
parents 4dd3683d 0775bab9
No related branches found
No related tags found
1 merge request!114SquaredChannel
Pipeline #38300 failed
......@@ -12,23 +12,23 @@ python3 scenario_square_channel.py client --host i10staff41 -P '{ "optimization"
import numpy as np
import sympy as sp
from lbmpy import Stencil, Method, ForceModel, LBStencil
from lbmpy.methods.creationfunctions import relaxation_rate_from_magic_number
from lbmpy.scenarios import create_channel
from pystencils import make_slice
defaultParameters = {
'stencil': 'D3Q19',
'method': 'srt',
'stencil': LBStencil(Stencil.D3Q19),
'method': Method.SRT,
'lambda_plus_sq': 4 / 25,
'square_size': 15,
'quadratic': True,
're': 10,
'compressible': True,
'cumulant': False,
'maxwellian_moments': False,
'equilibrium_order': 2,
'force_model': 'guo',
'force_model': ForceModel.GUO,
'c_s_sq': 1 / 3,
'analytic_initial_velocity': False,
......@@ -119,7 +119,7 @@ def run(convergence_check_interval=1000, convergence_threshold=1e-12, plot_resul
params['relaxation_rates'] = [omega, relaxation_rate_from_magic_number(omega, 3 / 16)]
stencil = params['stencil']
viscosity_factor = 1 / 2 if stencil == 'D3Q15' and params['maxwellian_moments'] else 1 / 3
viscosity_factor = 1 / 2 if stencil == LBStencil(Stencil.D3Q15) and params['maxwellian_moments'] else 1 / 3
print("Running size %d quadratic %d analyticInit %d " %
(square_size, quadratic, analytic_initial_velocity) + str(params))
......@@ -211,7 +211,7 @@ def parameter_filter(p):
return None
if p.cumulant and not p.maxwellian_moments:
return None
if p.cumulant and p.stencil == 'D3Q15':
if p.cumulant and p.stencil == LBStencil(Stencil.D3Q15):
return None
if not p.quadratic and not p.reynolds_nr_accuracy:
# analytical formula not valid for rectangular channel
......@@ -232,11 +232,10 @@ def small_study():
common_degrees_of_freedom = [
('reynolds_nr_accuracy', [1e-8, None]),
('analytic_initial_velocity', [True]),
('force_model', ['luo']),
('cumulant', [False]),
('method', ['srt']),
('force_model', [ForceModel.LUO]),
('method', [Method.SRT]),
('equilibrium_order', [2]),
('stencil', ['D3Q19']),
('stencil', [LBStencil(Stencil.D3Q19)]),
('compressible', [True]),
('quadratic', [True, False]),
('maxwellian_moments', [False, True]),
......@@ -258,10 +257,10 @@ def create_full_parameter_study():
('cumulant', [False]),
('compressible', [False, True]),
('reynolds_nr_accuracy', [None, 1e-8]),
('stencil', ['D3Q19', 'D3Q15']),
('stencil', [LBStencil(Stencil.D3Q19), LBStencil(Stencil.D3Q15)]),
('analytic_initial_velocity', [False]),
('force_model', ['guo', 'simple', 'silva', 'luo']),
('method', ['srt', 'trt']),
('force_model', [ForceModel.GUO, ForceModel.SIMPLE, ForceModel.SILVA, ForceModel.LUO]),
('method', [Method.SRT, Method.TRT]),
('equilibrium_order', [2, 3]),
('quadratic', [True, False]),
('maxwellian_moments', [False, True]),
......@@ -292,10 +291,10 @@ def d3q15_cs_sq_half_study():
('compressible', [False, True]),
('reynolds_nr_accuracy', [None, ]),
('analytic_initial_velocity', [False]),
('force_model', ['guo', 'silva']),
('method', ['srt', 'trt']),
('force_model', [ForceModel.GUO, ForceModel.SILVA]),
('method', [Method.SRT, Method.TRT]),
('equilibrium_order', [2, 3]),
('stencil', ['D3Q15']),
('stencil', [LBStencil(Stencil.D3Q15)]),
('quadratic', [True, ]),
('maxwellian_moments', [True, ]),
('c_s_sq', [1 / 3]),
......@@ -313,10 +312,10 @@ def d3q27_study():
('compressible', [False]),
('reynolds_nr_accuracy', [None, ]),
('analytic_initial_velocity', [False]),
('force_model', ['guo', 'silva']),
('method', ['srt']),
('force_model', [ForceModel.GUO, ForceModel.SILVA]),
('method', [Method.SRT]),
('equilibrium_order', [2]),
('stencil', ['D3Q27']),
('stencil', [LBStencil(Stencil.D3Q27)]),
('maxwellian_moments', [True, ]),
('c_s_sq', [1 / 3]),
('square_size', [15, 25, 35, 45, 53, 85, 135]),
......@@ -329,13 +328,17 @@ def d3q27_study():
def test_square_channel():
res = run(convergence_check_interval=1000, convergence_threshold=1e-5, plot_result=False, lambda_plus_sq=4 / 25,
re=10, square_size=53, quadratic=True, analytic_initial_velocity=False, reynolds_nr_accuracy=None,
force_model='buick', stencil='D3Q19', maxwellian_moments=False, equilibrium_order=2, compressible=True)
force_model=ForceModel.BUICK, stencil=LBStencil(Stencil.D3Q19),
maxwellian_moments=False, equilibrium_order=2, compressible=True)
assert 1e-5 < res['normalized_spurious_vel_max'] < 1.2e-5
# TODO test again if compressible works when !113 is merged
res = run(convergence_check_interval=1000, convergence_threshold=1e-5, plot_result=False, lambda_plus_sq=4 / 25,
re=10, square_size=53, quadratic=True, analytic_initial_velocity=False, reynolds_nr_accuracy=None,
force_model='buick', stencil='D3Q19', maxwellian_moments=True, equilibrium_order=2, compressible=True)
force_model=ForceModel.BUICK, stencil=LBStencil(Stencil.D3Q19),
maxwellian_moments=True, equilibrium_order=2, compressible=False)
assert res['normalized_spurious_vel_max'] < 1e-14
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment