diff options
Diffstat (limited to 'poc/triangle_stream/sim.cpp')
| -rw-r--r-- | poc/triangle_stream/sim.cpp | 60 |
1 files changed, 58 insertions, 2 deletions
diff --git a/poc/triangle_stream/sim.cpp b/poc/triangle_stream/sim.cpp index c96d7d0..36986e4 100644 --- a/poc/triangle_stream/sim.cpp +++ b/poc/triangle_stream/sim.cpp @@ -1,14 +1,70 @@ +#include <kel/lbm/lbm.hpp> + +namespace kel { +namespace lbm { + +constexpr uint64_t dim_y = 256ul; +constexpr uint64_t dim_x = dim_y * 20ul; + +namespace sch { +using namespace saw::schema; + +using InfoChunk = Chunk<UInt8, 0u, dim_x, dim_y>; + +template<typename T, typename Desc> +using DfChunk = Chunk<FixedArray<T,Desc::Q>, 1u, dim_x, dim_y>; + +template<typename T, typename Desc> +using ScalarChunk = Chunk<Scalar<T>, 0u, dim_x, dim_y>; + +template<typename T, typename Desc> +using VectorChunk = Chunk<Vector<T,Desc::D>, 0u, dim_x, dim_y>; + +template<typename T, typename Desc> +using ChunkStruct = Struct< + Member<InfoChunk, "info">, + Member<DfChunk<T,Desc>, "dfs">, + Member<DfChunk<T,Desc>, "dfs_old"> +>; + +template<typename T, typename Desc> +using VelChunk = Chunk<Vector<T,Desc::D>, 0u, dim_x, dim_y>; + +template<typename T> +using RhoChunk = Chunk<Scalar<T>, 0u, dim_x, dim_y>; + +template<typename T, typename Desc> +using MacroStruct = Struct< + Member<VelChunk<T,Desc>, "velocity">, + Member<RhoChunk<T>, "density"> +>; + +//template<typename T, typename Desc> +//using ParticleArray = Array< +// Particle<T,Desc::D> +//>; +} + +template<typename T, typename Desc> void init(){ } +template<typename T, typename Desc> saw::error_or<void> kmain(int argc, char** argv){ - using namespace kel; + using dfi = df_info<T,Desc>; + + (void) argc; + (void) argv; return saw::make_void(); } +} +} + int main(int argc, char** argv){ - auto eov = kmain(argc,argv); + using namespace kel::lbm; + auto eov = kmain<sch::Float32,sch::D2Q9>(argc,argv); if(eov.is_error()){ auto& err = eov.get_error(); |
