ODESolver: maxSteps now an optional input

e.g.

odeCoeffs
{
    solver          seulex;
    absTol          1e-12;
    relTol          0.0001;
    maxSteps        1e+06;
}

maxSteps defaults to 10000 for backward compatibility.
This commit is contained in:
Henry Weller
2017-12-15 15:26:47 +00:00
parent d2d99bb7a5
commit 5ea87082f1

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -64,7 +64,7 @@ Foam::ODESolver::ODESolver(const ODESystem& ode, const dictionary& dict)
n_(ode.nEqns()),
absTol_(n_, dict.lookupOrDefault<scalar>("absTol", SMALL)),
relTol_(n_, dict.lookupOrDefault<scalar>("relTol", 1e-4)),
maxSteps_(10000)
maxSteps_(dict.lookupOrDefault<scalar>("maxSteps", 10000))
{}
@ -189,8 +189,8 @@ void Foam::ODESolver::solve
}
FatalErrorInFunction
<< "Integration steps greater than maximum " << maxSteps_
<< "xStart = " << xStart << ", xEnd = " << xEnd
<< "Integration steps greater than maximum " << maxSteps_ << nl
<< " xStart = " << xStart << ", xEnd = " << xEnd
<< ", x = " << x << ", dxDid = " << step.dxDid
<< exit(FatalError);
}