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