From d990457c911bf743b1fd6cdffbbc172c79e6bc92 Mon Sep 17 00:00:00 2001 From: Pedro Gonnet <pedro.gonnet@durham.ac.uk> Date: Thu, 11 Jul 2013 11:46:53 +0000 Subject: [PATCH] collect the right quantities at the right times. Former-commit-id: 982f19233d8ae55e6ae0a454e564059ea96c1fba --- src/runner.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/runner.c b/src/runner.c index 49cf048121..354cca2289 100644 --- a/src/runner.c +++ b/src/runner.c @@ -860,15 +860,9 @@ 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; /* Step and store the velocity and internal energy. */ xp->v_old[0] = ( v_old[0] += dt * a[0] ); @@ -885,6 +879,16 @@ 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]; @@ -901,10 +905,6 @@ void runner_dokick ( struct runner *r , struct cell *c , int timer ) { p->h = h * expf( w ); h_max = fmaxf( h_max , h ); - /* Collect total energy. */ - ekin += 0.5 * m * ( v[0]*v[0] + v[1]*v[1] + v[2]*v[2] ); - epot += m * u; - /* Init fields for density calculation. */ p->density.wcount = 0.0f; p->density.wcount_dh = 0.0f; -- GitLab