summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2026-01-23 16:39:27 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2026-01-23 16:39:27 +0100
commit6d6452b24e15e6291ba5790ede485f59d4ca28b8 (patch)
tree54dc4a6fa98a873d9924f02c97458530ec3c5d1d /examples
parent6c394afaa2c0cf008ee8c1c1a9cc860d10c50dd0 (diff)
downloadlibs-lbm-6d6452b24e15e6291ba5790ede485f59d4ca28b8.tar.gz
Fixed Address boundary issues with different copy approach
Diffstat (limited to 'examples')
-rw-r--r--examples/poiseulle_particles_2d_gpu/sim.cpp19
1 files changed, 5 insertions, 14 deletions
diff --git a/examples/poiseulle_particles_2d_gpu/sim.cpp b/examples/poiseulle_particles_2d_gpu/sim.cpp
index 008d8f0..bb1fca5 100644
--- a/examples/poiseulle_particles_2d_gpu/sim.cpp
+++ b/examples/poiseulle_particles_2d_gpu/sim.cpp
@@ -1,5 +1,5 @@
-#include <kel/lbm/lbm.hpp>
#include <kel/lbm/sycl/lbm.hpp>
+#include <kel/lbm/lbm.hpp>
#include <forstio/remote/filesystem/easy.hpp>
#include <forstio/codec/json/json.hpp>
@@ -13,16 +13,6 @@ constexpr uint64_t dim_y = 16u;
namespace sch {
using namespace saw::schema;
-template<typename T, typename Desc>
-using CellStruct = Struct<
- Member<FixedArray<T,Desc::Q>, "dfs">,
- Member<FixedArray<T,Desc::Q>, "dfs_old">,
- Member<UInt8, "info">,
- Member<Vector<T,Desc::D>, "velocity">,
- Member<Vector<T,Desc::D>, "force">
->;
-
-
using InfoChunk = Chunk<UInt8, 0u, dim_x, dim_y>;
template<typename T, typename Desc>
@@ -127,14 +117,15 @@ saw::error_or<void> lbm_main(int argc, char** argv){
};
// saw::data<sch::FixedArray<sch::UInt64,Desc::D>> meta{{dim_x,dim_y}};
- saw::data<sch::ChunkStruct<T,Desc>> lbm_data{};
+ auto lbm_data_ptr = saw::heap<saw::data<sch::ChunkStruct<T,Desc>>>();
device dev;
+
auto& sycl_q = dev.get_handle();
sycl_q.wait();
{
- auto eov = setup_initial_conditions<T,Desc>(lbm_data);
+ auto eov = setup_initial_conditions<T,Desc>(*lbm_data_ptr);
if(eov.is_error()){
return eov;
}
@@ -147,7 +138,7 @@ saw::error_or<void> lbm_main(int argc, char** argv){
sycl_q.wait();
std::cout<<"Hey2"<<std::endl;
{
- auto eov = dev.copy_to_device(lbm_data,lbm_sycl_data);
+ auto eov = dev.copy_to_device(*lbm_data_ptr,lbm_sycl_data);
if(eov.is_error()){
return eov;
}