summaryrefslogtreecommitdiff
path: root/examples/poiseulle_particles_2d_gpu/sim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/poiseulle_particles_2d_gpu/sim.cpp')
-rw-r--r--examples/poiseulle_particles_2d_gpu/sim.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/poiseulle_particles_2d_gpu/sim.cpp b/examples/poiseulle_particles_2d_gpu/sim.cpp
new file mode 100644
index 0000000..6526270
--- /dev/null
+++ b/examples/poiseulle_particles_2d_gpu/sim.cpp
@@ -0,0 +1,54 @@
+#include <kel/lbm/lbm.hpp>
+#include <AdaptiveCpp/sycl/sycl.hpp>
+
+namespace kel {
+namespace lbm {
+}
+}
+
+template<typename T, typename Desc>
+saw::error_or<void> kel_main(int argc, char** argv){
+ using namespace kel;
+
+ using dfi = lbm::df_info<T,Desc>;
+
+ auto eo_lbm_dir = lbm::output_directory();
+ if(eo_lbm_dir.is_error()){
+ return std::move(eo_lbm_dir.get_error());
+ }
+ auto& lbm_dir = eo_lbm_dir.get_value();
+ auto out_dir = lbm_dir / "poiseulle_particles_2d_gpu";
+
+ lbm::converter<lbm::sch::Float64> conv {
+ // delta_x
+ {{1.0}},
+ // delta_t
+ {{1.0}}
+ };
+
+ uint64_t x_d = 256u;
+ uint64_t y_d = 64u;
+ saw::data<sch::FixedArray<sch::UInt64,Desc::D>> meta{{x_d,y_d}};
+
+ acpp::sycl::queue sycl_q;
+
+ sycl_q.wait();
+
+ return saw::make_void();
+}
+
+int main(int argc, char** argv){
+ auto eov = kel_main<kel::lbm::sch::T,kel::lbm::sch::D2Q9>(argc, argv);
+ if(eov.is_error()){
+ auto& err = eov.get_error();
+ std::cerr<<"[Error] "<<err.get_category();
+ auto err_msg = err.get_message();
+ if(err_msg.size() > 0u){
+ std::cerr<<" - "<<err_msg;
+ }
+ std::cerr<<std::endl;
+ return err.get_id();
+ }
+ return 0;
+}
+}