vDirectiondAccelDt(eY) = 1 - 2.0*(double(rand())/double(RAND_MAX));
vDirectiondAccelDt(eZ) = 1 - 2.0*(double(rand())/double(RAND_MAX));
- MagnitudedAccelDt = 1 - 2.0*(double(rand())/double(RAND_MAX));
+ MagnitudedAccelDt = 1 - 2.0*(double(rand())/double(RAND_MAX)) - Magnitude;
+ // Scale the magnitude so that it moves
+ // away from the peaks
+ MagnitudedAccelDt = ((MagnitudedAccelDt - Magnitude) /
+ (1 + fabs(Magnitude)));
MagnitudeAccel += MagnitudedAccelDt*rate*State->Getdt();
Magnitude += MagnitudeAccel*rate*State->Getdt();