diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-06 01:37:34 +0200 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-07-06 01:37:34 +0200 |
| commit | af4b3f8f9bf7b19c169d9fbd0a2b49668af8ad10 (patch) | |
| tree | 3e98fff4bad333affa55e082de0da759bad57229 /lib/core/c++/particle/aabb.hpp | |
| parent | 52326efc80dfeae6e830527df2e7803ecf61b00a (diff) | |
| parent | 015e941a91552ce6ea4cde4507ec9451c3708e77 (diff) | |
| download | libs-lbm-af4b3f8f9bf7b19c169d9fbd0a2b49668af8ad10.tar.gz | |
Merge branch 'dev'
Diffstat (limited to 'lib/core/c++/particle/aabb.hpp')
| -rw-r--r-- | lib/core/c++/particle/aabb.hpp | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/lib/core/c++/particle/aabb.hpp b/lib/core/c++/particle/aabb.hpp deleted file mode 100644 index 1773dea..0000000 --- a/lib/core/c++/particle/aabb.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -#include "common.hpp" -#include "schema.hpp" - -namespace kel { -namespace lbm { -template<typename PGroup> -class particle_aabb final { - static_assert(saw::always_false<PGroup>, "Not supported"); -}; - -template<typename T, uint64_t D> -class particle_aabb< - sch::ParticleGroup<T,D,coll::Spheroid<T>> -> final { -public: - using Schema = sch::ParticleGroup<T,D,coll::Spheroid<T>>; - - using AABB = sch::Struct< - sch::Member<sch::FixedArray<sch::UInt64,D>,"a">, - sch::Member<sch::FixedArray<sch::UInt64,D>,"b"> - >; -public: - template<typename Encode> - static constexpr saw::data<AABB> calculate(const saw::data<Schema,Encode>& p_grp, const saw::data<sch::FixedArray<sch::UInt64,1u>>& i, const saw::data<sch::FixedArray<sch::UInt64,D>>& meta){ - - saw::data<AABB> aabb; - auto& parts = p_grp.template get<"particles">(); - - auto& pi = parts.at(i); - auto& pirb = pi.template get<"rigid_body">(); - auto& pirb_pos = pirb.template get<"position">(); - - auto& a = aabb.template get<"a">(); - auto& b = aabb.template get<"b">(); - - const saw::data<sch::Scalar<T>>& rad_d = p_grp.template get<"collision">().template get<"radius">().at({0u}); - - saw::data<sch::Vector<T,D>> lower; - saw::data<sch::Vector<T,D>> upper; - - for(uint64_t i{0u}; i < D; ++i){ - lower.at({{i}}) = pirb_pos.at({{i}}) >= rad_d.at({}) ? (pirb_pos.at({{i}}) - rad_d.at({})) : saw::data<T>{0}; - a.at({i}) = lower.at({{i}}).template cast_to<sch::UInt64>(); - upper.at({{i}}) = pirb_pos.at({{i}}) + rad_d.at({}); - b.at({i}) = (upper.at({{i}})+saw::data<T>{1}).template cast_to<sch::UInt64>(); - } - - return aabb; - - } -}; -} -} |
