diff --git a/src/ODE/ODESolvers/ODESolver/ODESolver.C b/src/ODE/ODESolvers/ODESolver/ODESolver.C index b4341894b5..f0c04518be 100644 --- a/src/ODE/ODESolvers/ODESolver/ODESolver.C +++ b/src/ODE/ODESolvers/ODESolver/ODESolver.C @@ -60,6 +60,8 @@ void Foam::ODESolver::solve scalar x = xStart; scalar h = hEst; + scalar hNext = 0; + scalar hPrev = 0; for (label nStep=0; nStep 0.0) { h = xEnd - x; + hPrev = hNext; } - scalar hNext, hDid; + hNext = 0; + scalar hDid; solve(ode, x, y, dydx_, eps, yScale_, h, hDid, hNext); if ((x - xEnd)*(xEnd - xStart) >= 0.0) { - hEst = hNext; + if (hPrev != 0) + { + hEst = hPrev; + } + else + { + hEst = hNext; + } + return; }