FreeFOAM The Cross-Platform CFD Toolkit
dimensionedConstants.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
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.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Global
25  dimensionedConstants
26 
27 Description
28  Dictionary reading and supplying the dimensioned constants used within
29  OpenFOAM particularly for thermodynamics. The values are read from the
30  OpenFOAM controlDict and should be changed to run with a different set of
31  units from the default SI units.
32 
33 SourceFiles
34  dimensionedConstants.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef dimensionedConstants_H
39 #define dimensionedConstants_H
40 
41 #include <OpenFOAM/dictionary.H>
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 
51 //- Dictionary with dimensioned constants
52 // Dictionary reading and supplying the dimensioned constants used within
53 // OpenFOAM particularly for thermodynamics. The values are read from the
54 // OpenFOAM controlDict and should be changed to run with a different set of
55 // units from the default SI units.
56 dictionary& dimensionedConstants();
57 
58 //- Read a dimensioned constant from the OpenFOAM controlDict
59 template<class T>
61 (
62  const char* switchName,
63  const T defaultValue
64 )
65 {
66  if (dimensionedConstants().found(switchName))
67  {
68  return pTraits<T>(dimensionedConstants().lookup(switchName));
69  }
70  else
71  {
72  dimensionedConstants().add(switchName, defaultValue);
73  return defaultValue;
74  }
75 }
76 
77 
78 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
79 
80 } // End namespace Foam
81 
82 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
83 
84 #endif
85 
86 // ************************ vim: set sw=4 sts=4 et: ************************ //