summaryrefslogtreecommitdiff
path: root/c++/particle/particle.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'c++/particle/particle.hpp')
-rw-r--r--c++/particle/particle.hpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/c++/particle/particle.hpp b/c++/particle/particle.hpp
index aeda17f..f893b9b 100644
--- a/c++/particle/particle.hpp
+++ b/c++/particle/particle.hpp
@@ -18,22 +18,30 @@ using ParticleRigidBody = Struct<
template<typename T, uint64_t D>
using ParticleMask = Struct<
- Member<Array<T,D>, "mask">
+ Member<Array<T,D>, "grid">
>;
template<typename T, uint64_t D>
using Particle = Struct<
- Member<ParticleRigidBody<T,D>, "rigid_body">
+ Member<ParticleRigidBody<T,D>, "rigid_body">,
+ Member<ParticleMask<Float32,D>, "mask">
>;
}
-template<typename T, uint64_t D>
+template<typename T, uint64_t D, typename Particle>
class particle_system {
private:
- saw::data<sch::Array<sch::Particle<T,D>>> particles_;
+ saw::data<sch::Array<Particle, D>> particles_;
public:
- void step(T time_step){
+ void step(T time_step_delta){
+ for(auto& iter : particles_){
+ verlet_step(time_step_delta);
+ }
+ }
+
+ template<typename LbmLattice>
+ void update_mask(saw::data<LbmLattice>& latt){
for(auto& iter : particles_){
}