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