diff --git a/lbmpy_walberla/templates/LatticeModel.tmpl.cpp b/lbmpy_walberla/templates/LatticeModel.tmpl.cpp index 6f8008486fac94c200d677cacac874a854f89a6c..3db08c03826ed181371699bd3e849ef9597759f2 100644 --- a/lbmpy_walberla/templates/LatticeModel.tmpl.cpp +++ b/lbmpy_walberla/templates/LatticeModel.tmpl.cpp @@ -24,11 +24,6 @@ #include "lbm/sweeps/Streaming.h" #include "{{class_name}}.h" -{% for header in headers %} -#include {{header}} -{% endfor %} - - #ifdef _MSC_VER # pragma warning( disable : 4458 ) #endif @@ -48,6 +43,10 @@ # pragma GCC diagnostic ignored "-Wunused-parameter" #endif +{% for header in headers %} +#include {{header}} +{% endfor %} + using namespace std; diff --git a/lbmpy_walberla_tests/test_walberla_codegen.py b/lbmpy_walberla_tests/test_walberla_codegen.py index a62711ce5f07fe0e90ed6e726e84b9c1cd47cb0d..f4d733311c29033d7a6fc3c4a8da17ee353afa64 100644 --- a/lbmpy_walberla_tests/test_walberla_codegen.py +++ b/lbmpy_walberla_tests/test_walberla_codegen.py @@ -75,6 +75,21 @@ class WalberlaLbmpyCodegenTest(unittest.TestCase): cr = create_lb_collision_rule(**parameters) generate_lattice_model(ctx, 'Model', cr) + @staticmethod + def test_fluctuating(): + with ManualCodeGenerationContext(openmp=True, double_accuracy=True) as ctx: + omega_shear, omega_bulk = sp.symbols("omega, omega_free") + force_field, vel_field = ps.fields("force(3), velocity(3): [3D]", layout='fzyx') + + # the collision rule of the LB method where the some advanced features + collision_rule = create_lb_collision_rule( + stencil='D3Q19', compressible=True, fluctuating=True, + method='mrt3', relaxation_rates=[omega_shear, omega_bulk], + force_model='guo', force=force_field.center_vector, + optimization={'cse_global': False} + ) + generate_lattice_model(ctx, 'FluctuatingMRT', collision_rule) + @staticmethod def test_boundary(): with ManualCodeGenerationContext(openmp=True, double_accuracy=True) as ctx: