From 002afda81a9569e2dfa268efb87d1ebd2e2c9ada Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 28 Oct 2025 16:02:46 +0100 Subject: Cleaning up examples --- examples/particle_ibm.cpp | 201 ---------------------------------------------- 1 file changed, 201 deletions(-) delete mode 100644 examples/particle_ibm.cpp (limited to 'examples/particle_ibm.cpp') diff --git a/examples/particle_ibm.cpp b/examples/particle_ibm.cpp deleted file mode 100644 index d54dbdc..0000000 --- a/examples/particle_ibm.cpp +++ /dev/null @@ -1,201 +0,0 @@ -#include "../c++/descriptor.hpp" -#include "../c++/equilibrium.hpp" - -#include - -#include - -namespace kel { -namespace lbm { -namespace sch { -using namespace saw::schema; - -/** - * Basic distribution function - * Base type - * D - * Q - * Scalar factor - * D factor - * Q factor - */ -using T = Float32; -using D2Q5 = Descriptor<2,5>; -using D2Q9 = Descriptor<2,9>; - -template -using DfCell = Cell; - -template -using CellInfo = Cell; - -/** - * Basic type for simulation - */ -template -using CellStruct = Struct< - Member, "dfs">, - Member, "dfs_old">, - Member, "info">, - Member, - Member ->; - -template -using MacroStruct = Struct< - Member, "velocity">, - Member ->; - -using CavityFieldD2Q9 = CellField>; -} -} -} - -void set_geometry(saw::data& latt){ - using namespace kel::lbm; - /* - apply_for_cells([](auto& cell, std::size_t i, std::size_t j){ - uint8_t val = 0; - if(j == 1){ - val = 2u; - } - if(i == 1 || (i+2) == dim_x || (j+2) == dim_y){ - val = 3u; - } - if(i > 1 && (i+2) < dim_x && j > 1 && (j+2) < dim_y){ - val = 1u; - } - if(i == 0 || j == 0 || (i+1) == dim_x || (j+1) == dim_y){ - val = 0u; - } - cell.template get<"info">()(0u).set(val); - }, latt); - */ -} - -void lbm_step( - saw::data& latt, - bool even_step -){ - using namespace kel::lbm; - using dfi = df_info; - - component coll; - coll.relaxation_ = 0.5384; - component rho_coll; - rho_coll.relaxation_ = 0.5384; - rho_coll.rho_ = 1.0; - - component bb; - component bb_lid; - bb_lid.lid_vel = {0.1,0.0}; - - // Collide - apply_for_cells([&](auto& cell, std::size_t i, std::size_t j){ - auto& df = even_step ? cell.template get<"dfs_old">() : cell.template get<"dfs">(); - auto& info = cell.template get<"info">(); - - auto info_val = info({0u}).get(); - switch(info_val){ - case 1u: - coll.apply(df); - break; - case 2u: - // bb.apply(df); - bb_lid.apply(df); - break; - case 3u: - bb.apply(df); - break; - } - }, latt); - - // Stream - for(uint64_t i = 1; (i+1) < latt.template get_dim_size<0>().get(); ++i){ - for(uint64_t j = 1; (j+1) < latt.template get_dim_size<1>().get(); ++j){ - auto& cell = latt({{i,j}}); - auto& df_new = even_step ? cell.template get<"dfs">() : cell.template get<"dfs_old">(); - auto& info_new = cell.template get<"info">(); - - if(info_new({0u}).get() > 0u && info_new({0u}).get() != 2u){ - for(uint64_t k = 0u; k < sch::D2Q9::Q; ++k){ - auto dir = dfi::directions[dfi::opposite_index[k]]; - auto& cell_dir_old = latt({{i+dir[0],j+dir[1]}}); - - auto& df_old = even_step ? cell_dir_old.template get<"dfs_old">() : cell_dir_old.template get<"dfs">(); - auto& info_old = cell_dir_old.template get<"info">(); - - if( info_old({0}).get() == 2u ){ - auto& df_old_loc = even_step ? latt({{i,j}}).template get<"dfs_old">() : latt({{i,j}}).template get<"dfs">(); - df_new({k}) = df_old_loc({dfi::opposite_index.at(k)}) - 2.0 * dfi::inv_cs2 * dfi::weights.at(k) * 1.0 * ( bb_lid.lid_vel[0] * dir[0] + bb_lid.lid_vel[1] * dir[1]); - // dfs({dfi::opposite_index.at(i)}) = dfs_cpy({i}) - 2.0 * dfi::weights[i] * 1.0 * ( lid_vel[0] * dfi::directions[i][0] + lid_vel[1] * dfi::directions[i][1]) * dfi::inv_cs2; - } else { - df_new({k}) = df_old({k}); - } - } - } - } - } -} - -int main(int argc, char** argv){ - using namespace kel::lbm; - - std::string_view cfg_file_name = "config.json"; - if(argc > 1){ - cfg_file_name = argv[1]; - } - - auto eo_conf = load_lbm_config>(cfg_file_name); - if(eo_conf.is_error()){ - auto& err = eo_conf.get_error(); - std::cerr<<"[Error]: "< conv{ - {conf.template get<"delta_x">()}, - {conf.template get<"delta_t">()} - }; - - print_lbm_meta>(conv, {conf.template get<"kinematic_viscosity">()}); - - - saw::data> dim{{128, 128}}; - - saw::data lattice{dim}; - lbm::particle_system> system; - - /** - * Set meta information describing what this cell is - */ - set_geometry(lattice); - - - uint64_t lattice_steps{128u}; - uint64_t print_every{64u}; - bool even_step{true}; - - uint64_t file_num{0u}; - - saw::data,sch::D2Q9::D>> macros{dim}; - - for(uint64_t step{0u}; step < lattice_steps; ++step){ - - lbm_step(lattice, even_step); - - even_step = not even_step; - - } - - return 0; -} -- cgit v1.2.3