fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / src / OpenFOAM / matrices / solution / solution.H
blob6d751c0abebd203408e2657f926793d919652e66
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
19     for more details.
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 Class
26     Foam::solution
28 Description
29     Selector class for relaxation factors, solver type and solution.
31 SourceFiles
32     solution.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef solution_H
37 #define solution_H
39 #include "IOdictionary.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                           Class solution Declaration
48 \*---------------------------------------------------------------------------*/
50 class solution
52     public IOdictionary
54     // Private data
56         //- Dictionary of relaxation factors for all the fields
57         dictionary relaxationFactors_;
59         //- Optional default relaxation factor for all the fields
60         scalar defaultRelaxationFactor_;
62         //- Dictionary of solver parameters for all the fields
63         dictionary solvers_;
66     // Private Member Functions
68         //- Disallow default bitwise copy construct and assignment
69         solution(const solution&);
70         void operator=(const solution&);
73 public:
75     //- Update from older solver controls syntax
76     //  Usually verbose, since we want to know about the changes
77     //  Returns the number of settings changed
78     static label upgradeSolverDict(dictionary& dict, const bool verbose=true);
80     //- Debug switch
81     static int debug;
84     // Constructors
86         //- Construct for given objectRegistry and dictionary
87         solution(const objectRegistry& obr, const fileName& dictName);
90     // Member Functions
92         // Access
94             //- Return the selected sub-dictionary of solvers if the "select"
95             //  keyword is given, otherwise return the complete dictionary
96             const dictionary& solutionDict() const;
98             //- Return true if the relaxation factor is given for the field
99             bool relax(const word& name) const;
101             //- Return the relaxation factor for the given field
102             scalar relaxationFactor(const word& name) const;
104             //- Return the solver controls dictionary for the given field
105             const dictionary& solverDict(const word& name) const;
107             //- Return the solver controls dictionary for the given field
108             const dictionary& solver(const word& name) const;
111         // Edit
113             //- Return access to relaxation factors dictionary
114             dictionary& relaxationFactors()
115             {
116                 return relaxationFactors_;
117             }
119             //- Return access to solvers dictionary
120             dictionary& solvers()
121             {
122                 return solvers_;
123             }
126         // Read
128             //- Read the solution dictionary
129             bool read();
132         // Write
134             //- WriteData function required for regIOobject write operation
135             virtual bool writeData(Ostream&) const;
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 } // End namespace Foam
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 #endif
147 // ************************************************************************* //