1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
5 \\ / A nd | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation, either version 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "tolerances.H"
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
35 tolerances::tolerances(const Time& t, const fileName& dictName)
48 relaxationFactors_(ITstream("relaxationFactors", tokenList())()),
49 solverTolerances_(ITstream("solverTolerances", tokenList())()),
50 solverRelativeTolerances_
52 ITstream("solverRelativeTolerances", tokenList())()
59 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
61 bool tolerances::read()
63 if (regIOobject::read())
65 word toleranceSetName(lookup("toleranceSet"));
66 const dictionary& toleranceSet(subDict(toleranceSetName));
68 if (toleranceSet.found("relaxationFactors"))
70 relaxationFactors_ = toleranceSet.subDict("relaxationFactors");
73 if (toleranceSet.found("solverTolerances"))
75 solverTolerances_ = toleranceSet.subDict("solverTolerances");
78 if (toleranceSet.found("solverRelativeTolerances"))
80 solverRelativeTolerances_ =
81 toleranceSet.subDict("solverRelativeTolerances");
93 bool tolerances::relax(const word& name) const
95 return relaxationFactors_.found(name);
98 scalar tolerances::relaxationFactor(const word& name) const
100 return readScalar(relaxationFactors_.lookup(name));
103 scalar tolerances::solverTolerance(const word& name) const
105 return readScalar(solverTolerances_.lookup(name));
108 bool tolerances::solverRelativeTolerances() const
110 return solverRelativeTolerances_.size();
113 scalar tolerances::solverRelativeTolerance(const word& name) const
115 return readScalar(solverRelativeTolerances_.lookup(name));
119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121 } // End namespace Foam
123 // ************************************************************************* //