From 9e37ff62b668694f705a8d132469f40ead9f6f0f Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Thu, 5 Jun 2025 13:09:07 +0200 Subject: Dangling changes --- examples/cavity_2d.cpp | 30 +++++++---------- examples/particle_ibm.cpp | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 17 deletions(-) create mode 100644 examples/particle_ibm.cpp (limited to 'examples') diff --git a/examples/cavity_2d.cpp b/examples/cavity_2d.cpp index d40e06e..a10276a 100644 --- a/examples/cavity_2d.cpp +++ b/examples/cavity_2d.cpp @@ -44,6 +44,11 @@ using CellStruct = Struct< Member, "info"> >; +template +using MacroStruct = Struct< + Member, "velocity">, + Member +>; using CavityFieldD2Q9 = CellField>; } @@ -390,6 +395,8 @@ int main(){ uint64_t print_every = 256u; uint64_t file_no = 0u; + saw::data,sch::D2Q9::D>> macros{dim}; + for(uint64_t step = 0; step < lattice_steps; ++step){ if(step % print_every == 0u){ @@ -481,28 +488,17 @@ int main(){ /// std::cout<<"Average rho: "<<(sum / ((dim_x-4)*(dim_y-4)))<() : cell.template get<"dfs">(); - typename saw::native_data_type::type rho; - std::array::type, sch::D2Q9::D> vel; + auto& rho = macros.at({{i,j}}).template get<"pressure">(); + auto& vel = macros.at({{i,j}}).template get<"velocity">(); compute_rho_u(dfs,rho,vel); - - vtk_file << static_cast(vel[0u]) << " " << static_cast(vel[1u])<<" 0.0\n"; }, lattice); - + + std::string vtk_f_name{"tmp/cavity_2d_"}; + vtk_f_name += std::to_string(file_no) + ".vtk"; + write_vtk_file(vtk_f_name, macros); ++file_no; } diff --git a/examples/particle_ibm.cpp b/examples/particle_ibm.cpp new file mode 100644 index 0000000..a2b510e --- /dev/null +++ b/examples/particle_ibm.cpp @@ -0,0 +1,86 @@ +#include "../c++/descriptor.hpp" + +#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 +>; + + +using CavityFieldD2Q9 = CellField>; +} +} +} + +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}; + + + + + return 0; +} -- cgit v1.2.3