From 76c59f41ed861e1905b25e3c35ef8be0481d9535 Mon Sep 17 00:00:00 2001 From: Christoph Rettinger <christoph.rettinger@fau.de> Date: Fri, 21 Feb 2020 10:21:55 +0100 Subject: [PATCH] Adapted parts using codegen via lbmpy to new lbmpy version --- .../benchmarks/FluidParticleCoupling/GeneratedLBM.py | 11 ++++++----- .../FluidParticleCoupling/GeneratedLBMWithForce.py | 12 +++++++----- tests/lbm/codegen/FluctuatingMRT.cpp | 2 +- tests/lbm/codegen/FluctuatingMRT.py | 4 ++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/apps/benchmarks/FluidParticleCoupling/GeneratedLBM.py b/apps/benchmarks/FluidParticleCoupling/GeneratedLBM.py index 43b08e8ec..bf127f8eb 100644 --- a/apps/benchmarks/FluidParticleCoupling/GeneratedLBM.py +++ b/apps/benchmarks/FluidParticleCoupling/GeneratedLBM.py @@ -1,23 +1,24 @@ import sympy as sp import pystencils as ps -from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_ast, create_lb_method +from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_method from lbmpy_walberla import generate_lattice_model from pystencils_walberla import CodeGeneration from lbmpy.creationfunctions import create_lb_collision_rule -from lbmpy.moments import MOMENT_SYMBOLS, is_even, get_order +from lbmpy.moments import is_even, get_order from lbmpy.stencils import get_stencil -from lbmpy.forcemodels import * +from lbmpy.methods import mrt_orthogonal_modes_literature with CodeGeneration() as ctx: stencil = get_stencil("D3Q19", 'walberla') omega = sp.symbols("omega_:%d" % len(stencil)) - method = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False) + moments = mrt_orthogonal_modes_literature(stencil, True, False) + method = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False, nested_moments=moments) def modification_func(moment, eq, rate): omegaVisc = sp.Symbol("omega_visc") - omegaBulk = ps.fields("omega_bulk: [3D]", layout='fzyx')# sp.Symbol("omega_bulk") + omegaBulk = ps.fields("omega_bulk: [3D]", layout='fzyx') omegaMagic = sp.Symbol("omega_magic") if get_order(moment) <= 1: return moment, eq, 0 diff --git a/apps/benchmarks/FluidParticleCoupling/GeneratedLBMWithForce.py b/apps/benchmarks/FluidParticleCoupling/GeneratedLBMWithForce.py index 665fc0226..d52d67dfc 100644 --- a/apps/benchmarks/FluidParticleCoupling/GeneratedLBMWithForce.py +++ b/apps/benchmarks/FluidParticleCoupling/GeneratedLBMWithForce.py @@ -1,14 +1,14 @@ import sympy as sp import pystencils as ps -from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_ast, create_lb_method +from lbmpy.creationfunctions import create_lb_method_from_existing, create_lb_method from lbmpy_walberla import generate_lattice_model from pystencils_walberla import CodeGeneration from lbmpy.creationfunctions import create_lb_collision_rule -from lbmpy.moments import MOMENT_SYMBOLS, is_even, get_order +from lbmpy.moments import is_even, get_order from lbmpy.stencils import get_stencil -from lbmpy.forcemodels import * - +from lbmpy.forcemodels import Luo +from lbmpy.methods import mrt_orthogonal_modes_literature with CodeGeneration() as ctx: @@ -18,7 +18,9 @@ with CodeGeneration() as ctx: stencil = get_stencil("D3Q19", 'walberla') omega = sp.symbols("omega_:%d" % len(stencil)) - methodWithForce = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False,force_model=forcemodel) + moments = mrt_orthogonal_modes_literature(stencil, True, False) + methodWithForce = create_lb_method(stencil=stencil, method='mrt', maxwellian_moments=False, + force_model=forcemodel, nested_moments=moments) def modification_func(moment, eq, rate): omegaVisc = sp.Symbol("omega_visc") diff --git a/tests/lbm/codegen/FluctuatingMRT.cpp b/tests/lbm/codegen/FluctuatingMRT.cpp index 2b9ccdba1..24e5168fe 100644 --- a/tests/lbm/codegen/FluctuatingMRT.cpp +++ b/tests/lbm/codegen/FluctuatingMRT.cpp @@ -70,7 +70,7 @@ int main( int argc, char ** argv ) // create fields BlockDataID forceFieldId = field::addToStorage<VectorField_T>( blocks, "Force", real_t( 0.0 )); - LatticeModel_T latticeModel = LatticeModel_T( forceFieldId, omega, omega, seed, temperature, uint_t(0) ); + LatticeModel_T latticeModel = LatticeModel_T( forceFieldId, omega, seed, temperature, uint_t(0) ); BlockDataID pdfFieldId = lbm::addPdfFieldToStorage( blocks, "pdf field", latticeModel, initialVelocity, real_t(1) ); BlockDataID flagFieldId = field::addFlagFieldToStorage< FlagField_T >( blocks, "flag field" ); diff --git a/tests/lbm/codegen/FluctuatingMRT.py b/tests/lbm/codegen/FluctuatingMRT.py index b996fe43c..350899570 100644 --- a/tests/lbm/codegen/FluctuatingMRT.py +++ b/tests/lbm/codegen/FluctuatingMRT.py @@ -5,7 +5,7 @@ from pystencils_walberla import CodeGeneration from lbmpy_walberla import generate_lattice_model with CodeGeneration() as ctx: - omega_shear, omega_bulk = sp.symbols("omega_shear, omega_bulk") + omega_shear = sp.symbols("omega_shear") temperature = sp.symbols("temperature") force_field, vel_field = ps.fields("force(3), velocity(3): [3D]", layout='fzyx') @@ -14,7 +14,7 @@ with CodeGeneration() as ctx: 'temperature' : temperature, 'block_offsets' : 'walberla', }, - method='mrt3', relaxation_rates=[omega_shear, omega_bulk], + method='mrt', relaxation_rates=[omega_shear]*19, force_model='guo', force=force_field.center_vector, optimization={'cse_global': True} ) -- GitLab