diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2025-11-05 09:47:57 +0100 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2025-11-05 09:47:57 +0100 |
| commit | f5c40005f576b5a3416c2cda8c60e5f100810ddb (patch) | |
| tree | b31b25624f409a75b6a8bd3801cd01d82649bf9a /examples | |
| parent | e07e0b767849d8bb57c0ffef56e0e8b88c7e3937 (diff) | |
| download | libs-lbm-f5c40005f576b5a3416c2cda8c60e5f100810ddb.tar.gz | |
Dangling changes
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/poiseulle_3d/poiseulle_3d.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/examples/poiseulle_3d/poiseulle_3d.cpp b/examples/poiseulle_3d/poiseulle_3d.cpp index 9220a1f..e6d0a61 100644 --- a/examples/poiseulle_3d/poiseulle_3d.cpp +++ b/examples/poiseulle_3d/poiseulle_3d.cpp @@ -50,6 +50,56 @@ public: return inner_.internal_data(); } }; + +template<typename Desc, typename CellT, typename Encode> +class data<schema::Ref<kel::lbm::sch::CellField<Desc, CellT>>, encode::Sycl<Encode>> final { +public: + using Schema = schema::Ref<kel::lbm::sch::CellField<Desc,CellT>>; + using MetaSchema = typename meta_schema<Schema>::MetaSchema; +private: + data<schema::Array<CellT,Desc::D>, Encode>* inner_ref_; + data<schema::UInt64, Encode> size_; +public: + data() = delete; + data(data<MetaSchema,Encode>& inner_meta__, acpp::sycl::queue& q): + inner_{inner_meta__,q} + {} + + const data<MetaSchema, Encode> meta() const { + return inner_.dims(); + } + + template<uint64_t i> + data<schema::UInt64,Encode> get_dim_size() const { + static_assert(i < Desc::D, "Not enough dimensions"); + return inner_.template get_dim_size<i>(); + } + + const data<CellT>& operator()(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index)const{ + return inner_.at(index); + } + + data<CellT>& operator()(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){ + return inner_.at(index); + } + + const data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index)const{ + return inner_.at(index); + } + + data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){ + return inner_.at(index); + } + + data<schema::UInt64,Encode> internal_size() const { + return inner_.internal_size(); + } + + data<CellT,Encode>* internal_data() { + return inner_.internal_data(); + } +}; + } namespace kel { |
