diff --git a/apps/benchmarks/FluidParticleCoupling/GeneratedLBM.py b/apps/benchmarks/FluidParticleCoupling/GeneratedLBM.py index 43b08e8ec940daa31e4fa126d100a1076a59416c..bf127f8eb0ca4ddbaf74e5e950477a39eb8432cc 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 665fc0226d3a30f66a01d5f46006dd83b481d7db..d52d67dfc738cc6403f2b246d9cccb61a0ffd914 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 2b9ccdba11237b4b8a3129e02eaae668e2c24e3c..24e5168feaf6bc8dc1a606f0cafad05a3b4329a2 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 b996fe43c53dbf3fff48452cc02b3b684eaedd15..35089957036383907ac27166dec87bcd6b290050 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} )