From a5349e8413d61d024c1faec90455a1b77d73994b Mon Sep 17 00:00:00 2001 From: Pedro Gonnet <pedro.gonnet@durham.ac.uk> Date: Thu, 11 Jul 2013 11:49:24 +0000 Subject: [PATCH] collect the right quantities at the right times. Former-commit-id: 0625e53e1fdfa055a50cb6eeb81eacce76cf0137 --- src/runner.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/runner.c b/src/runner.c index 354cca2289..b9c82b19b5 100644 --- a/src/runner.c +++ b/src/runner.c @@ -860,6 +860,16 @@ void runner_dokick ( struct runner *r , struct cell *c , int timer ) { v[2] = v_old[2] + hdt * a[2]; u = u_old + hdt * u_dt; + /* Collect momentum */ + mom[0] += m * v[0]; + mom[1] += m * v[1]; + mom[2] += m * v[2]; + + /* Collect angular momentum */ + ang[0] += m * ( x[1]*v[2] - x[2]*v[1] ); + ang[1] += m * ( x[2]*v[0] - x[0]*v[2] ); + ang[2] += m * ( x[0]*v[1] - x[1]*v[0] ); + /* Collect total energy. */ ekin += 0.5 * m * ( v[0]*v[0] + v[1]*v[1] + v[2]*v[2] ); epot += m * u; @@ -879,16 +889,6 @@ void runner_dokick ( struct runner *r , struct cell *c , int timer ) { (x[2] - x_old[2])*(x[2] - x_old[2]) ); dx_max = fmaxf( dx_max , dx ); - /* Collect momentum */ - mom[0] += m * v[0]; - mom[1] += m * v[1]; - mom[2] += m * v[2]; - - /* Collect angular momentum */ - ang[0] += m * ( x[1]*v[2] - x[2]*v[1] ); - ang[1] += m * ( x[2]*v[0] - x[0]*v[2] ); - ang[2] += m * ( x[0]*v[1] - x[1]*v[0] ); - /* Update positions and energies at the half-step. */ p->v[0] = v[0] + dt * a[0]; p->v[1] = v[1] + dt * a[1]; -- GitLab