From b1d61c67c28a9ba4a1de834e401d97cfc9e84764 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Sun, 21 Dec 2025 20:53:50 +0100 Subject: Reworking some structures. adding particle tests again --- examples/poiseulle_2d_gpu/poiseulle_2d_gpu.cpp | 36 ++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'examples/poiseulle_2d_gpu/poiseulle_2d_gpu.cpp') diff --git a/examples/poiseulle_2d_gpu/poiseulle_2d_gpu.cpp b/examples/poiseulle_2d_gpu/poiseulle_2d_gpu.cpp index 89ad709..1d525ad 100644 --- a/examples/poiseulle_2d_gpu/poiseulle_2d_gpu.cpp +++ b/examples/poiseulle_2d_gpu/poiseulle_2d_gpu.cpp @@ -199,7 +199,7 @@ void step( using namespace kel::lbm; using dfi = df_info; - constexpr saw::data frequency{1.0 / 0.5384}; + constexpr saw::data frequency{1.0 / 0.8}; bool is_even = ((time_step % 2u) == 0u); /** @@ -209,8 +209,8 @@ void step( component coll{0.5384}; component bb; */ - component> inlet{1.1 * dfi::cs2}; - component> outlet{1.0 * dfi::cs2}; + component> inlet{1.01 * dfi::cs2 * 2.0/3.0}; + component> outlet{1.0 * dfi::cs2 * 2.0/3.0}; // auto collision_ev = @@ -257,10 +257,36 @@ void step( } case 3u: { inlet.apply(cells, {{i,j}}, meta, time_step); + auto& dfs_old = is_even ? c.template get<"dfs_old">() : c.template get<"dfs">(); + + auto& macro_c = macro_cells[acc_id]; + + saw::data& rho = macro_c.template get<"pressure">(); + saw::data>& vel = macro_c.template get<"velocity">(); + + compute_rho_u(dfs_old,rho,vel); + auto eq = equilibrium(rho,vel); + + for(uint64_t k = 0u; k < Desc::Q; ++k){ + dfs_old({k}) = dfs_old({k}) + frequency * (eq.at({k}) - dfs_old({k})); + } break; } case 4u: { outlet.apply(cells, {{i,j}}, meta, time_step); + auto& dfs_old = is_even ? c.template get<"dfs_old">() : c.template get<"dfs">(); + + auto& macro_c = macro_cells[acc_id]; + + saw::data& rho = macro_c.template get<"pressure">(); + saw::data>& vel = macro_c.template get<"velocity">(); + + compute_rho_u(dfs_old,rho,vel); + auto eq = equilibrium(rho,vel); + + for(uint64_t k = 0u; k < Desc::Q; ++k){ + dfs_old({k}) = dfs_old({k}) + frequency * (eq.at({k}) - dfs_old({k})); + } break; } default: @@ -323,8 +349,8 @@ saw::error_or kel_main(int argc, char** argv){ {{1.0}} }; - uint64_t x_d = 256u; - uint64_t y_d = 64u; + uint64_t x_d = 512u; + uint64_t y_d = 128u; saw::data> meta{{x_d,y_d}}; -- cgit v1.2.3