summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2025-07-04 14:33:54 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2025-07-04 14:33:54 +0200
commit96123e1331eabbfb0f5104857035df42096c7548 (patch)
tree2ba2d09a24effc5f2bbcbec9b920a43b1c2283ff
parent1698e94edbfd90c178ca65a7d21679c390194e77 (diff)
Improved geometry configuration setting
-rw-r--r--c++/iterator.hpp6
-rw-r--r--c++/term_renderer.hpp1
-rw-r--r--examples/poiseulle_2d.cpp31
-rw-r--r--tests/iterator.cpp2
4 files changed, 29 insertions, 11 deletions
diff --git a/c++/iterator.hpp b/c++/iterator.hpp
index 01163cf..fcc50bc 100644
--- a/c++/iterator.hpp
+++ b/c++/iterator.hpp
@@ -5,10 +5,10 @@
namespace kel {
namespace lbm {
template<typename Func>
-void iterate_over(Func&& func, const saw::data<sch::FixedArray<sch::UInt64,2u>>& start, const saw::data<sch::FixedArray<sch::UInt64,2u>>& end, const saw::data<sch::UInt64>& dist = {0u}){
+void iterate_over(Func&& func, const saw::data<sch::FixedArray<sch::UInt64,2u>>& start, const saw::data<sch::FixedArray<sch::UInt64,2u>>& end, const saw::data<sch::FixedArray<sch::UInt64,2u>>& dist = {{{0u,0u}}}){
// static_assert(D == 2u, "Currently a lazy implementation for AND combinations of intervalls.");
- for(saw::data<sch::UInt64> i{start.at({0u}) + dist}; (i+dist) < end.at({0u}); ++i){
- for(saw::data<sch::UInt64> j{start.at({0u}) + dist}; (j+dist) < end.at({1u}); ++j){
+ for(saw::data<sch::UInt64> i{start.at({0u}) + dist.at({0u})}; (i+dist.at({0u})) < end.at({0u}); ++i){
+ for(saw::data<sch::UInt64> j{start.at({1u}) + dist.at({1u})}; (j+dist.at({1u})) < end.at({1u}); ++j){
func({{i,j}});
}
}
diff --git a/c++/term_renderer.hpp b/c++/term_renderer.hpp
index f675a99..5cbb551 100644
--- a/c++/term_renderer.hpp
+++ b/c++/term_renderer.hpp
@@ -2,6 +2,5 @@
namespace kel {
namespace lbm {
-
}
}
diff --git a/examples/poiseulle_2d.cpp b/examples/poiseulle_2d.cpp
index 5670a3c..dcdc7c3 100644
--- a/examples/poiseulle_2d.cpp
+++ b/examples/poiseulle_2d.cpp
@@ -75,7 +75,7 @@ void set_geometry(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){
info({0u}).set(2u);
- }, {{0u,0u}}, meta, {1u});
+ }, {{0u,0u}}, meta, {{1u,1u}});
/**
* Set fluid
@@ -86,7 +86,7 @@ void set_geometry(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){
info({0u}).set(1u);
- }, {{0u,0u}}, meta, {2u});
+ }, {{0u,0u}}, meta, {{2u,2u}});
/**
* Set inflow
@@ -97,7 +97,7 @@ void set_geometry(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){
info({0u}).set(3u);
- }, {{1u,0u}}, {{2u,meta.at({1u})}}, {0u});
+ }, {{1u,0u}}, {{2u,meta.at({1u})}}, {{0u,2u}});
/**
* Set outflow
@@ -108,7 +108,7 @@ void set_geometry(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){
info({0u}).set(4u);
- }, {{meta.at({0u})-2u,0u}}, {{meta.at({0u})-1u, meta.at({1u})}}, {0u});
+ }, {{meta.at({0u})-2u,0u}}, {{meta.at({0u})-1u, meta.at({1u})}}, {{0u,2u}});
}
void set_initial_conditions(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){
@@ -141,16 +141,35 @@ int main(int argc, char** argv){
auto& conf = eo_conf.get_value();
- converter<sch::Float64> conv{
+ converter<sch::Float64> conv {
{conf.template get<"delta_x">()},
{conf.template get<"delta_t">()}
};
print_lbm_meta<sch::Float64,sch::Descriptor<2u,9u>>(conv, {conf.template get<"kinematic_viscosity">()});
- saw::data<sch::FixedArray<sch::UInt64,sch::D2Q9::D>> dim{{1024, 128}};
+ saw::data<sch::FixedArray<sch::UInt64,sch::D2Q9::D>> dim{{32u, 8u}};
saw::data<sch::CavityFieldD2Q9, saw::encode::Native> lattice{dim};
+ set_geometry(lattice);
+
+ /**
+ * Print basic setup info
+ */
+ iterate_over([&](const saw::data<sch::FixedArray<sch::UInt64,2u>>& index){
+ auto& cell = lattice(index);
+ auto& info = cell.template get<"info">();
+ auto info_v = info({0u}).get();
+ std::cout<<(static_cast<uint32_t>(info_v));
+
+ if( (index.at({1u}).get()+1u) < dim.at({1u}).get()){
+ std::cout<<" ";
+ }else{
+ std::cout<<"\n";
+ }
+
+ }, {{0u,0u}}, dim);
+
saw::data<sch::Array<sch::MacroStruct<sch::T,sch::D2Q9::D>,sch::D2Q9::D>> macros{dim};
for(uint64_t i = 0u; i < 256u; ++i){
diff --git a/tests/iterator.cpp b/tests/iterator.cpp
index 85037da..cd1cb7c 100644
--- a/tests/iterator.cpp
+++ b/tests/iterator.cpp
@@ -28,6 +28,6 @@ SAW_TEST("Iterate with Distance 1"){
lbm::iterate_over([](const saw::data<sch::FixedArray<sch::UInt64,2u>>& index){
std::cout<<"Index: "<<index.at({0u}).get()<<" "<<index.at({1u}).get()<<std::endl;
- }, start, end, {1u});
+ }, start, end, {{1u,1u}});
}
}