summaryrefslogtreecommitdiff
path: root/examples/poiseulle_3d/poiseulle_3d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/poiseulle_3d/poiseulle_3d.cpp')
-rw-r--r--examples/poiseulle_3d/poiseulle_3d.cpp75
1 files changed, 57 insertions, 18 deletions
diff --git a/examples/poiseulle_3d/poiseulle_3d.cpp b/examples/poiseulle_3d/poiseulle_3d.cpp
index e6d0a61..2c268d4 100644
--- a/examples/poiseulle_3d/poiseulle_3d.cpp
+++ b/examples/poiseulle_3d/poiseulle_3d.cpp
@@ -42,6 +42,10 @@ public:
return inner_.at(index);
}
+ ref<data<schema::Array<CellT,Desc::D>, encode::Sycl<Encode> >> inner_data() {
+ return {inner_};
+ }
+
data<schema::UInt64,Encode> internal_size() const {
return inner_.internal_size();
}
@@ -50,55 +54,90 @@ public:
return inner_.internal_data();
}
};
+/*
+template<typename T, uint64_t D, typename Encode>
+class data<schema::Ref<schema::Array<T, D>>, encode::Sycl<Encode>> final {
+public:
+ using Schema = schema::Ref<schema::Array<T, D>>;
+private:
+ data<schema::Ref<schema::Array<CellT,Desc::D>>, encode::Sycl<Encode>>> inner_ref_;
+public:
+ data() = delete;
+ data(ref<data<kel::lbm::sch::CellField<Desc,CellT>,encode::Sycl<Encode>>> inner_ref__):
+ inner_ref_{inner_ref__().inner_data()}
+ {}
+
+ const data<MetaSchema, Encode> meta() const {
+ return inner_ref_().dims();
+ }
+
+ const data<CellT>& operator()(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index)const{
+ return inner_ref_().at(index);
+ }
+
+ data<CellT>& operator()(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){
+ return inner_ref_().at(index);
+ }
+
+ const data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index)const{
+ return inner_ref_().at(index);
+ }
+
+ data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){
+ return inner_ref_().at(index);
+ }
+
+ data<schema::UInt64,Encode> internal_size() const {
+ return inner_ref_().internal_size();
+ }
+
+ data<CellT,Encode>* internal_data() {
+ return inner_ref_().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_;
+ data<schema::Ref<schema::Array<CellT,Desc::D>>, encode::Sycl<Encode>>> inner_ref_;
public:
data() = delete;
- data(data<MetaSchema,Encode>& inner_meta__, acpp::sycl::queue& q):
- inner_{inner_meta__,q}
+ data(ref<data<kel::lbm::sch::CellField<Desc,CellT>,encode::Sycl<Encode>>> inner_ref__):
+ inner_ref_{inner_ref__().inner_data()}
{}
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>();
+ return inner_ref_().dims();
}
const data<CellT>& operator()(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index)const{
- return inner_.at(index);
+ return inner_ref_().at(index);
}
data<CellT>& operator()(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){
- return inner_.at(index);
+ return inner_ref_().at(index);
}
const data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index)const{
- return inner_.at(index);
+ return inner_ref_().at(index);
}
data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){
- return inner_.at(index);
+ return inner_ref_().at(index);
}
data<schema::UInt64,Encode> internal_size() const {
- return inner_.internal_size();
+ return inner_ref_().internal_size();
}
data<CellT,Encode>* internal_data() {
- return inner_.internal_data();
+ return inner_ref_().internal_data();
}
};
+*/
}