diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-04-09 13:13:48 +0200 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-04-09 13:13:48 +0200 |
commit | e0d16921a2f78355f69ebeec64207f6c0d9fe1a5 (patch) | |
tree | c76dcdf727fb1654c32e6458d725b8a0993b3e1c | |
parent | bbe12518daa510bc25fc3343be089396db007640 (diff) |
Minor changes
-rw-r--r-- | c++/examples/cavity_2d.cpp | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/c++/examples/cavity_2d.cpp b/c++/examples/cavity_2d.cpp index 7fa526a..f682523 100644 --- a/c++/examples/cavity_2d.cpp +++ b/c++/examples/cavity_2d.cpp @@ -32,6 +32,11 @@ using Cell = CellData< } +template<typename T, size_t D, size_t Q, size_t SN, size_t DN, size_t QN> +struct cell_type { + using Type = schema::CellType<T, D, Q, SN, DN, QN>; +}; + template<typename T> class df_cell_view; @@ -39,15 +44,13 @@ class df_cell_view; * Minor helper for the AA-Pull Pattern */ template<size_t D, size_t Q, size_t SN, size_t DN, size_t QN> -class df_cell_view<schema::CellType<schema::T,D,Q,SN,DN,QN>> { +class df_cell_view<cell_type<schema::T, D, Q, SN, DN, QN>> { private: std::array<std::decay_t<typename saw::native_data_type<schema::T>::type>*, QN> view_; public: - df_cell(const std::array<std::decay_t<typename saw::native_data_type<schema::T>::type>*, QN>& view): + df_cell_view(const std::array<std::decay_t<typename saw::native_data_type<schema::T>::type>*, QN>& view): view_{view} {} - - }; template<size_t D, size_t Q> @@ -145,23 +148,32 @@ void set_geometry(saw::data<kel::lbm::schema::Lattice<kel::lbm::schema::Cell,2>> void set_initial_conditions(saw::data<kel::lbm::schema::Lattice<kel::lbm::schema::Cell,2>>& latt){ using namespace kel::lbm; apply_for_cells([](auto& cell, std::size_t i, std::size_t j){ + (void) i; + (void) j; cell.template get<"dfs">().at(0).set(1.0); }, latt); } +void lbm_step( + saw::data<kel::lbm::schema::Lattice<kel::lbm::schema::Cell,2>>& old_latt, + saw::data<kel::lbm::schema::Lattice<kel::lbm::schema::Cell,2>>& new_latt +){ + +} + int main(){ using namespace kel::lbm; - saw::data<schema::Lattice<kel::lbm::schema::Cell,2>, saw::encode::Native> lattice{dim_x, dim_y}; + saw::data<schema::FixedArray<schema::Lattice<kel::lbm::schema::Cell,2>>, saw::encode::Native> lattice{dim_x, dim_y}; /** * Set meta information describing what this cell is */ - set_geometry(lattice); + set_geometry(lattices.at(0)); /** * */ - set_initial_conditions(lattice); + set_initial_conditions(lattices.at(0)); /** * Timeloop @@ -179,7 +191,7 @@ int main(){ }else{ std::cout<<"\n"; } - }, lattice); + }, lattice.at(0)); std::cout<<"\n"; apply_for_cells([](auto& cell, std::size_t i, std::size_t j){ @@ -191,11 +203,24 @@ int main(){ }else{ std::cout<<"\n"; } - }, lattice); + }, lattices.at(0)); + + uint64_t lattice_steps = 32; + bool even_step = true; - std::cout<<std::endl; + for(uint64_t step = 0; step < lattice_steps; ++step){ + uint64_t old_lattice_index = even_step ? 0 : 1; + uint64_t new_lattice_index = even_step ? 1 : 0; + lbm_step(lattices.at(old_lattice_index), lattices.at(new_lattice_index)); + even_step = !even_step; + } + /** + * Flush cout + */ + std::cout<<"\n\n"; + std::cout.flush(); return 0; } |