summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2026-08-25 21:48:13 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2026-08-25 21:48:13 +0200
commit8c2e629878ab1c73c73ae92d76e8883ccfa032a2 (patch)
treec14b9d11d8ae1c1282a7fcd5611e5a2b13f38058 /examples
parent923d90f0d5dffa58ac6b4f820f1db5123a0df618 (diff)
downloadlibs-lbm-8c2e629878ab1c73c73ae92d76e8883ccfa032a2.tar.gz
Feierabend?dev
Diffstat (limited to 'examples')
-rw-r--r--examples/one_particle_sedimentation_2d/common.hpp3
-rw-r--r--examples/one_particle_sedimentation_2d/sim.cpp4
-rw-r--r--examples/one_particle_sedimentation_2d/step.hpp33
-rw-r--r--examples/schaefer_turek_durst_krause_rannbacher/common.hpp4
-rw-r--r--examples/schaefer_turek_durst_krause_rannbacher/sim.cpp6
-rw-r--r--examples/stdkr_2d_bgk/common.hpp4
6 files changed, 16 insertions, 38 deletions
diff --git a/examples/one_particle_sedimentation_2d/common.hpp b/examples/one_particle_sedimentation_2d/common.hpp
index 954557d..18d6584 100644
--- a/examples/one_particle_sedimentation_2d/common.hpp
+++ b/examples/one_particle_sedimentation_2d/common.hpp
@@ -62,7 +62,8 @@ using MacroStruct = Struct<
Member<VelChunk<T,Desc>, "momentum">,
Member<RhoChunk<T>, "density">,
Member<ScalarChunk<T,Desc>, "porosity">,
- Member<VelChunk<T,Desc>, "force">
+ Member<VelChunk<T,Desc>, "force">,
+ Member<VelChunk<T,Desc>, "external_force">
>;
template<typename T, typename Desc>
diff --git a/examples/one_particle_sedimentation_2d/sim.cpp b/examples/one_particle_sedimentation_2d/sim.cpp
index b0b374c..a722fc3 100644
--- a/examples/one_particle_sedimentation_2d/sim.cpp
+++ b/examples/one_particle_sedimentation_2d/sim.cpp
@@ -48,10 +48,10 @@ saw::error_or<void> lbm_main(const saw::data<args::LbmArgs>& args){
// delta_x
{{0.02 / dim_x}},
// delta_t
- {{1.067e-4}}
+ {{1.5e-6}}
};
- print_lbm_meta<T,Desc>(conv,{1e-3},{1e-4},{0.5 * dim_y});
+ print_lbm_meta<T,Desc>(conv,{1e-3},{1e-4},{0.02});
// saw::data<sch::FixedArray<sch::UInt64,Desc::D>> meta{{dim_x,dim_y}};
auto lbm_data_ptr = saw::heap<saw::data<sch::ChunkStruct<T,Desc>>>();
diff --git a/examples/one_particle_sedimentation_2d/step.hpp b/examples/one_particle_sedimentation_2d/step.hpp
index 20b7f4b..86064ae 100644
--- a/examples/one_particle_sedimentation_2d/step.hpp
+++ b/examples/one_particle_sedimentation_2d/step.hpp
@@ -19,8 +19,7 @@ saw::error_or<void> step(
auto& q = dev.get_handle();
auto& info_f = fields.template get<"info">();
auto& porous_f = macros.template get<"porosity">();
-
-
+ auto& ext_force_f = macros.template get<"external_force">();
if constexpr ( std::is_same_v<Coll, method::Hlbm> ){
q.submit([&](acpp::sycl::handler& h){
@@ -31,6 +30,7 @@ saw::error_or<void> step(
index.at({{i}}).set(idx[i]);
}
hlbm_reset.apply(fields,macros,index,t_i);
+
});
}).wait();
q.submit([&](acpp::sycl::handler& h){
@@ -49,7 +49,6 @@ saw::error_or<void> step(
q.submit([&](acpp::sycl::handler& h){
component<T,Desc,cmpt::Hlbm,encode::Sycl<saw::encode::Native>> collision{1.0};
component<T,Desc,cmpt::BounceBack,encode::Sycl<saw::encode::Native>> bb;
- component<T,Desc,cmpt::ZouHeHorizontal<false>,encode::Sycl<saw::encode::Native>> flow_out{1.0};
h.parallel_for(acpp::sycl::range<Desc::D>{dim_x,dim_y}, [=](acpp::sycl::id<Desc::D> idx){
saw::data<sch::FixedArray<sch::UInt64,Desc::D>> index;
@@ -67,27 +66,6 @@ saw::error_or<void> step(
break;
case 2u:
collision.apply(fields,macros,index,t_i);
- break;
- case 3u:
- {
- component<T,Desc,cmpt::ZouHeVelocityX<true>,encode::Sycl<saw::encode::Native>> flow_in{
- [&]() -> saw::data<sch::Vector<T,Desc::D>> {
- saw::data<sch::Vector<T,Desc::D>> vel;
- {
- auto y_si = conv.meter_lbm_to_si(index.at({{1u}}).template cast_to<T>()).handle();
- vel.at({{0u}}) = conv.velocity_si_to_lbm({{static_cast<typename saw::native_data_type<T>::type>((1.2 / 0.41) * y_si.get() - (1.2 / (0.41*0.41)) * y_si.get() * y_si.get())}}).handle();
- vel.at({{1u}}) = 0.0f;
- }
- return vel;
- }()
- };
- flow_in.apply(fields,index,t_i);
- }
- collision.apply(fields,macros,index,t_i);
- break;
- case 4u:
- flow_out.apply(fields,index,t_i);
- collision.apply(fields,macros,index,t_i);
break;
default:
break;
@@ -104,11 +82,16 @@ saw::error_or<void> step(
}
fplbm_reset.apply(fields,macros,index,t_i);
+
+ // TODO apply external force
+ // auto& ext_force = ext_force_f.at(index);
});
}).wait();
q.submit([&](acpp::sycl::handler& h){
- component<T,Desc,cmpt::FpLbmOneParticle,encode::Sycl<saw::encode::Native>> fplbm_one_part;
+ saw::data<sch::Vector<T,Desc::D>> gf;
+ gf.at({{1u}}) = conv.acceleration_si_to_lbm({-9.81}).handle();
+ component<T,Desc,cmpt::FpLbmOneParticle,encode::Sycl<saw::encode::Native>> fplbm_one_part{gf};
h.parallel_for(acpp::sycl::range<1u>{particle_amount}, [=](acpp::sycl::id<1u> idx){
saw::data<sch::FixedArray<sch::UInt64,1u>> index;
diff --git a/examples/schaefer_turek_durst_krause_rannbacher/common.hpp b/examples/schaefer_turek_durst_krause_rannbacher/common.hpp
index be9a538..a85cd50 100644
--- a/examples/schaefer_turek_durst_krause_rannbacher/common.hpp
+++ b/examples/schaefer_turek_durst_krause_rannbacher/common.hpp
@@ -21,8 +21,8 @@ namespace lbm {
* position at (0.16m,0.2m)
*/
-constexpr uint64_t dim_y = 512ul;
-constexpr uint64_t dim_x = static_cast<uint64_t>(dim_y * (220.0 / 41.0));
+constexpr uint64_t dim_y = 41u;
+constexpr uint64_t dim_x = 220u;
constexpr uint64_t particle_amount = 1ul;
diff --git a/examples/schaefer_turek_durst_krause_rannbacher/sim.cpp b/examples/schaefer_turek_durst_krause_rannbacher/sim.cpp
index 5a92681..a152789 100644
--- a/examples/schaefer_turek_durst_krause_rannbacher/sim.cpp
+++ b/examples/schaefer_turek_durst_krause_rannbacher/sim.cpp
@@ -87,12 +87,6 @@ saw::error_or<void> lbm_main(const saw::data<args::LbmArgs>& args){
return eov;
}
}
- {
- auto eov = write_vtk_file(out_dir,"initial_state",0u,*lbm_data_ptr);
- if(eov.is_error()){
- return eov;
- }
- }
saw::data<sch::ChunkStruct<T,Desc>, encode::Sycl<saw::encode::Native>> lbm_sycl_data{sycl_q};
saw::data<sch::MacroStruct<T,Desc>, encode::Sycl<saw::encode::Native>> lbm_sycl_macro_data{sycl_q};
diff --git a/examples/stdkr_2d_bgk/common.hpp b/examples/stdkr_2d_bgk/common.hpp
index eff9d84..0b597c0 100644
--- a/examples/stdkr_2d_bgk/common.hpp
+++ b/examples/stdkr_2d_bgk/common.hpp
@@ -24,8 +24,8 @@ struct Bgk {};
* position at (0.16m,0.2m)
*/
-constexpr uint64_t dim_y = 512ul;
-constexpr uint64_t dim_x = static_cast<uint64_t>(dim_y * (220.0 / 41.0));
+constexpr uint64_t dim_y = 41u;
+constexpr uint64_t dim_x = 220u;
constexpr uint64_t particle_amount = 1ul;