1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM 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 2 of the License, or (at your
14 option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32 int Foam::solution::debug(Foam::debug::debugSwitch("solution", false));
34 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
36 Foam::solution::solution(const objectRegistry& obr, const fileName& dictName)
49 relaxationFactors_(ITstream("relaxationFactors", tokenList())()),
50 solvers_(ITstream("solvers", tokenList())())
56 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
58 bool Foam::solution::read()
60 if (regIOobject::read())
62 const dictionary& dict = solutionDict();
64 if (dict.found("relaxationFactors"))
66 relaxationFactors_ = dict.subDict("relaxationFactors");
69 if (dict.found("solvers"))
71 solvers_ = dict.subDict("solvers");
83 const Foam::dictionary& Foam::solution::solutionDict() const
87 return subDict(word(lookup("select")));
96 bool Foam::solution::relax(const word& name) const
100 Info<< "Lookup relax for " << name << endl;
103 return relaxationFactors_.found(name);
107 Foam::scalar Foam::solution::relaxationFactor(const word& name) const
111 Info<< "Lookup relaxationFactor for " << name << endl;
114 return readScalar(relaxationFactors_.lookup(name));
118 const Foam::dictionary& Foam::solution::solverDict(const word& name) const
122 InfoIn("solution::solverDict(const word& name)")
123 << "Lookup solver for " << name << endl;
126 return solvers_.subDict(name);
130 Foam::ITstream& Foam::solution::solver(const word& name) const
134 InfoIn("solution::solver(const word& name)")
135 << "Lookup solver for " << name << endl;
138 return solvers_.lookup(name);
142 // ************************************************************************* //