From cf9fd22ef7e4940b3484e91e9892c7c4aad64a69 Mon Sep 17 00:00:00 2001 From: Lukas Hof Date: Tue, 9 Dec 2025 14:39:15 +0100 Subject: [PATCH 1/2] applying gravity to active particles only in 'clearAccelerations' --- SPlisHSPlasH/TimeStep.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SPlisHSPlasH/TimeStep.cpp b/SPlisHSPlasH/TimeStep.cpp index e331417c..a9f24e60 100644 --- a/SPlisHSPlasH/TimeStep.cpp +++ b/SPlisHSPlasH/TimeStep.cpp @@ -41,7 +41,7 @@ void TimeStep::clearAccelerations(const unsigned int fluidModelIndex) for (unsigned int i=0; i < count; i++) { // Clear accelerations of dynamic particles - if (model->getMass(i) != 0.0) + if (model->getMass(i) != 0.0 && model->getParticleState(i) == ParticleState::Active) { Vector3r &a = model->getAcceleration(i); a = grav; From 9c8b5a2fca888a27121788c0916d46724e2785d5 Mon Sep 17 00:00:00 2001 From: Lukas Hof Date: Mon, 16 Mar 2026 14:56:37 +0100 Subject: [PATCH 2/2] setting acceleration of non-active particles to zero --- SPlisHSPlasH/TimeStep.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/SPlisHSPlasH/TimeStep.cpp b/SPlisHSPlasH/TimeStep.cpp index a9f24e60..9ec06e56 100644 --- a/SPlisHSPlasH/TimeStep.cpp +++ b/SPlisHSPlasH/TimeStep.cpp @@ -41,11 +41,15 @@ void TimeStep::clearAccelerations(const unsigned int fluidModelIndex) for (unsigned int i=0; i < count; i++) { // Clear accelerations of dynamic particles + Vector3r& a = model->getAcceleration(i); if (model->getMass(i) != 0.0 && model->getParticleState(i) == ParticleState::Active) { - Vector3r &a = model->getAcceleration(i); a = grav; } + else + { + a.setZero(); + } } }