summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/moving_poiseulle_particles_2d_fplbm_gpu/sim.cpp13
-rw-r--r--examples/poiseulle_3d_gpu/sim.cpp34
2 files changed, 21 insertions, 26 deletions
diff --git a/examples/moving_poiseulle_particles_2d_fplbm_gpu/sim.cpp b/examples/moving_poiseulle_particles_2d_fplbm_gpu/sim.cpp
index 328f6e2..cc7649a 100644
--- a/examples/moving_poiseulle_particles_2d_fplbm_gpu/sim.cpp
+++ b/examples/moving_poiseulle_particles_2d_fplbm_gpu/sim.cpp
@@ -6,6 +6,7 @@
#include <forstio/remote/filesystem/easy.hpp>
#include <forstio/codec/json/json.hpp>
#include <forstio/codec/simple.hpp>
+#include <forstio/codec/args.hpp>
namespace kel {
namespace lbm {
@@ -18,6 +19,14 @@ constexpr uint64_t particle_amount = 1ul;
namespace sch {
using namespace saw::schema;
+using LbmArgs = Args<
+ Struct<
+ Member<String, "name">,
+ Member<UInt64, "sub_steps">
+ >,
+ Tuple<>
+>;
+
using InfoChunk = Chunk<UInt8, 0u, dim_x, dim_y>;
template<typename T, typename Desc>
@@ -185,7 +194,7 @@ saw::error_or<void> step(
}).wait();
q.submit([&](acpp::sycl::handler& h){
- component<T,Desc,cmpt::FpLbmOneParticleImplicit,encode::Sycl<saw::encode::Native>> fplbm_one_part;
+ component<T,Desc,cmpt::FpLbmOneParticle,encode::Sycl<saw::encode::Native>> fplbm_one_part;
h.parallel_for(acpp::sycl::range<1u>{particle_amount}, [=](acpp::sycl::id<1u> idx){
saw::data<sch::FixedArray<sch::UInt64,1u>> index;
@@ -193,7 +202,7 @@ saw::error_or<void> step(
index.at({{i}}).set(idx[i]);
}
- fplbm_one_part.apply(fields,macros,particles,index,t_i,{16u});
+ fplbm_one_part.apply(fields,macros,particles,index,t_i,{64u});
});
}).wait();
diff --git a/examples/poiseulle_3d_gpu/sim.cpp b/examples/poiseulle_3d_gpu/sim.cpp
index 6916ef2..167234d 100644
--- a/examples/poiseulle_3d_gpu/sim.cpp
+++ b/examples/poiseulle_3d_gpu/sim.cpp
@@ -39,22 +39,17 @@ using ChunkStruct = Struct<
>;
template<typename T, typename Desc>
-using VelChunk = Chunk<Vector<T,Desc::D>, 0u, dim_x, dim_y, dim_z>;
+using MomChunk = Chunk<Vector<T,Desc::D>, 0u, dim_x, dim_y, dim_z>;
template<typename T>
using RhoChunk = Chunk<Scalar<T>, 0u, dim_x, dim_y, dim_z>;
template<typename T, typename Desc>
using MacroStruct = Struct<
- Member<VelChunk<T,Desc>, "velocity">,
+ Member<MomChunk<T,Desc>, "momentum">,
Member<RhoChunk<T>, "density">,
Member<ScalarChunk<T,Desc>, "porosity">
>;
-
-//template<typename T, typename Desc>
-//using ParticleArray = Array<
-// Particle<T,Desc::D>
-//>;
}
template<typename T, typename Desc>
@@ -106,7 +101,7 @@ saw::error_or<void> setup_initial_conditions(
//
auto& df_f = fields.template get<"dfs_old">();
auto& rho_f = macros.template get<"density">();
- auto& vel_f = macros.template get<"velocity">();
+ auto& mom_f = macros.template get<"momentum">();
auto& por_f = macros.template get<"porosity">();
iterator<Desc::D>::apply(
@@ -115,8 +110,8 @@ saw::error_or<void> setup_initial_conditions(
auto& rho = rho_f.at(index);
por_f.at(index).at({}) = {1};
rho.at({}) = {1};
- auto& vel = vel_f.at(index);
- auto eq = equilibrium<T,Desc>(rho,vel);
+ auto& mom = mom_f.at(index);
+ auto eq = equilibrium<T,Desc>(rho,mom);
df = eq;
},
@@ -129,9 +124,9 @@ saw::error_or<void> setup_initial_conditions(
auto& df = df_f.at(index);
auto& rho = rho_f.at(index);
rho.at({}) = {1};
- auto& vel = vel_f.at(index);
- vel.at({{0u}}) = 0.01;
- auto eq = equilibrium<T,Desc>(rho,vel);
+ auto& mom = mom_f.at(index);
+ mom.at({{0u}}) = 0.01;
+ auto eq = equilibrium<T,Desc>(rho,mom);
df = eq;
},
@@ -165,13 +160,6 @@ saw::error_or<void> step(
// component<T,Desc,cmpt::HLBM,encode::Sycl<saw::encode::Native>> collision{0.6};
component<T,Desc,cmpt::BounceBack,encode::Sycl<saw::encode::Native>> bb;
- saw::data<sch::Scalar<T>> rho_b;
- rho_b.at({}) = 1.0;
- saw::data<sch::Vector<T,Desc::D>> vel_b;
- vel_b.at({{0u}}) = 0.01;
-
- component<T,Desc,cmpt::Equilibrium,encode::Sycl<saw::encode::Native>> equi{rho_b,vel_b};
-
component<T,Desc,cmpt::ZouHeHorizontal<true>,encode::Sycl<saw::encode::Native>> flow_in{
[&](){
uint64_t target_t_i = 256u;
@@ -201,13 +189,11 @@ saw::error_or<void> step(
collision.apply(fields,macros,index,t_i);
break;
case 3u:
- equi.apply(fields,index,t_i);
- // flow_in.apply(fields,index,t_i);
+ flow_in.apply(fields,index,t_i);
collision.apply(fields,macros,index,t_i);
break;
case 4u:
- equi.apply(fields,index,t_i);
- // flow_out.apply(fields,index,t_i);
+ flow_out.apply(fields,index,t_i);
collision.apply(fields,macros,index,t_i);
break;
default: