diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-06 01:37:34 +0200 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-06 01:37:34 +0200 |
| commit | af4b3f8f9bf7b19c169d9fbd0a2b49668af8ad10 (patch) | |
| tree | 3e98fff4bad333affa55e082de0da759bad57229 /lib/core/c++/stream.hpp | |
| parent | 52326efc80dfeae6e830527df2e7803ecf61b00a (diff) | |
| parent | 015e941a91552ce6ea4cde4507ec9451c3708e77 (diff) | |
| download | libs-lbm-af4b3f8f9bf7b19c169d9fbd0a2b49668af8ad10.tar.gz | |
Merge branch 'dev'
Diffstat (limited to 'lib/core/c++/stream.hpp')
| -rw-r--r-- | lib/core/c++/stream.hpp | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/lib/core/c++/stream.hpp b/lib/core/c++/stream.hpp deleted file mode 100644 index dc7cfb3..0000000 --- a/lib/core/c++/stream.hpp +++ /dev/null @@ -1,61 +0,0 @@ -#pragma once - -#include "component.hpp" - -namespace kel { -namespace lbm { -namespace cmpt { -struct Stream {}; -} - -template<typename T, typename Descriptor, typename Encode> -class component<T,Descriptor, cmpt::Stream, Encode> final { -private: -public: - static constexpr saw::string_literal name = "streaming"; - static constexpr saw::string_literal after = "collide"; - static constexpr saw::string_literal before = ""; - - template<typename CellFieldSchema> - void apply(const saw::data<CellFieldSchema, Encode>& field, saw::data<sch::FixedArray<sch::UInt64,Descriptor::D>> index, saw::data<sch::UInt64> time_step) const { - using dfi = df_info<T,Descriptor>; - auto g_index = index; - - for(uint64_t i = 0u; i < Descriptor::D; ++i){ - ++g_index.at({{i}}); - } - - bool is_even = ((time_step.get() % 2) == 0); - - auto& dfs_old_f = (is_even) ? field.template get<"dfs_old">() : field.template get<"dfs">(); - auto& dfs_new_f = (is_even) ? field.template get<"dfs">() : field.template get<"dfs_old">(); - auto info_f = field.template get<"info">(); - - auto info_meta = info_f.get_dims(); - - /* - bool border = false; - for(uint64_t i = 0u; i < Descriptor::D; ++i){ - auto ind_i = index.at({i}); - border |= (ind_i.get()) == 0u or (ind_i == info_meta.at({i})); - } - - if (not border){ - } - */ - - auto& dfs_new = dfs_new_f.ghost_at(g_index); - - for(uint64_t i = 0u; i < Descriptor::Q; ++i){ - auto dir = dfi::directions[dfi::opposite_index[i]]; - auto g_index_nb = g_index; - for(uint64_t z = 0u; z < Descriptor::D; ++z){ - g_index_nb.at({z}).set(g_index.at({z}).get() + dir[z]); - } - - dfs_new.at({i}) = dfs_old_f.ghost_at(g_index_nb).at({i}); - } - } -}; -} -} |
