this.data = data;
}
public Object run()
{
GlobalObject gBody;
Body body;
double[] dvel = new double[nDim];
double[] pos0 = new double[nDim];
double[] acc = new double[nDim];
while (data.bodies_there > 0) {
gBody = bodyTab[--data.bodies_there];
body = (Body) gBody.open( "r" );
SETVS(acc, 0.0);
SETV(pos0, body.pos);
try{ // release as soon as possible
gBody.release();
} catch (AlephException e) { }
hackgrav(gBody, gRoot, pos0, acc, rsize*rsize, true);
// open for write
body = (Body) gBody.open( "w" );
MULVS(dvel, acc, dtime);
ADDV(body.vel, body.vel, dvel);
try{
gBody.release();
} catch (AlephException e) { }
}
return (Object) data;