From 73b41bd4eed2be2e92b99d0cb2e3b116b529df74 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Wed, 25 Feb 2026 23:10:13 +0100 Subject: Adding meta calculation. --- examples/meta/meta.cpp | 45 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 10 deletions(-) (limited to 'examples') diff --git a/examples/meta/meta.cpp b/examples/meta/meta.cpp index 5d3aaa4..c638021 100644 --- a/examples/meta/meta.cpp +++ b/examples/meta/meta.cpp @@ -1,7 +1,11 @@ #include +#include + #include +namespace kel { +namespace lbm { namespace sch { using namespace saw::schema; @@ -17,9 +21,24 @@ using MetaArgs = Args< MetaArgsStruct, Tuple >; + +using Prec = Float64; +} +} +} + +template +saw::error_or meta_lbm_info(const saw::data& args_str){ + using namespace kel::lbm; + converter conv{ + {args_str.template get<"dx">()}, + {args_str.template get<"dt">()} + }; + print_lbm_meta(conv, {args_str.template get<"kin_vis">()},{args_str.template get<"char_vel">()},{args_str.template get<"char_len">()}); + + return saw::make_void(); } -template< saw::error_or meta_main(int argc, char** argv){ using namespace kel::lbm; @@ -29,35 +48,36 @@ saw::error_or meta_main(int argc, char** argv){ cfg_file_name = argv[1]; } - saw::data args_dat; + saw::data args_dat; { - saw::data args_enc{argc,argv}; - saw::codec args_codec; + saw::data args_enc{argc,argv}; + saw::codec args_codec; auto eov = args_codec.decode(args_enc,args_dat); if(eov.is_error()){ return eov; + } } auto& args_str = args_dat.template get<"args">(); auto& args_pos = args_dat.template get<"positionals">(); - converter conv{ - {args_str.template get<"delta_x">()}, - {args_str.template get<"delta_t">()} - }; switch(args_pos.get<0u>().get()){ case 1u: { + assert(false); + return saw::make_error(); } break; case 2u: { switch(args_pos.get<1u>().get()){ case 5u: + meta_lbm_info>(args_str); break; case 9u: + meta_lbm_info>(args_str); break; default: return saw::make_error("Second positional needs to be a valid velocity set"); @@ -66,13 +86,18 @@ saw::error_or meta_main(int argc, char** argv){ break; case 3u: { - + switch(args_pos.get<1u>().get()){ + case 27u: + meta_lbm_info>(args_str); + break; + default: + return saw::make_error("Second positional needs to be a valid velocity set"); + } } break; default: return saw::make_error("First positional needs to be Dimension 1,2 or 3"); } - print_lbm_meta>(conv, {args_str.template get<"kinematic_viscosity">()},{args_str.template get<"char_vel">()},{args_str.template get<"char_len">()}); return saw::make_void(); } -- cgit v1.2.3