FreeFOAM The Cross-Platform CFD Toolkit
H2O.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 Class
25  Foam::H2O
26 
27 Description
28  water
29 
30 SourceFiles
31  H2O.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef H2O_H
36 #define H2O_H
37 
38 #include <liquids/liquid.H>
48 
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 
51 namespace Foam
52 {
53 
54 /*---------------------------------------------------------------------------*\
55  Class H2O Declaration
56 \*---------------------------------------------------------------------------*/
57 
58 class H2O
59 :
60  public liquid
61 {
62  // Private data
63 
64  NSRDSfunc5 rho_;
65  NSRDSfunc1 pv_;
66  NSRDSfunc6 hl_;
67  NSRDSfunc0 cp_;
68  NSRDSfunc0 h_;
69  NSRDSfunc7 cpg_;
70  NSRDSfunc4 B_;
71  NSRDSfunc1 mu_;
72  NSRDSfunc2 mug_;
73  NSRDSfunc0 K_;
74  NSRDSfunc2 Kg_;
75  NSRDSfunc6 sigma_;
76  APIdiffCoefFunc D_;
77 
78 
79 public:
80 
81  //- Runtime type information
82  TypeName("H2O");
83 
84 
85  // Constructors
86 
87  //- Construct null
88  H2O();
89 
90  //- Construct from components
91  H2O
92  (
93  const liquid& l,
94  const NSRDSfunc5& density,
95  const NSRDSfunc1& vapourPressure,
96  const NSRDSfunc6& heatOfVapourisation,
97  const NSRDSfunc0& heatCapacity,
98  const NSRDSfunc0& enthalpy,
99  const NSRDSfunc7& idealGasHeatCapacity,
100  const NSRDSfunc4& secondVirialCoeff,
101  const NSRDSfunc1& dynamicViscosity,
102  const NSRDSfunc2& vapourDynamicViscosity,
103  const NSRDSfunc0& thermalConductivity,
104  const NSRDSfunc2& vapourThermalConductivity,
105  const NSRDSfunc6& surfaceTension,
106  const APIdiffCoefFunc& vapourDiffussivity
107  );
108 
109  //- Construct from Istream
110  H2O(Istream& is);
111 
112 
113  // Member Functions
114 
115  //- Liquid density [kg/m^3]
116  inline scalar rho(scalar p, scalar T) const;
117 
118  //- Vapour pressure [Pa]
119  inline scalar pv(scalar p, scalar T) const;
120 
121  //- Heat of vapourisation [J/kg]
122  inline scalar hl(scalar p, scalar T) const;
123 
124  //- Liquid heat capacity [J/(kg K)]
125  inline scalar cp(scalar p, scalar T) const;
126 
127  //- Liquid Enthalpy [J/(kg)]
128  inline scalar h(scalar p, scalar T) const;
129 
130  //- Ideal gas heat capacity [J/(kg K)]
131  inline scalar cpg(scalar p, scalar T) const;
132 
133  //- Second Virial Coefficient [m^3/kg]
134  inline scalar B(scalar p, scalar T) const;
135 
136  //- Liquid viscosity [Pa s]
137  inline scalar mu(scalar p, scalar T) const;
138 
139  //- Vapour viscosity [Pa s]
140  inline scalar mug(scalar p, scalar T) const;
141 
142  //- Liquid thermal conductivity [W/(m K)]
143  inline scalar K(scalar p, scalar T) const;
144 
145  //- Vapour thermal conductivity [W/(m K)]
146  inline scalar Kg(scalar p, scalar T) const;
147 
148  //- Surface tension [N/m]
149  inline scalar sigma(scalar p, scalar T) const;
150 
151  //- Vapour diffussivity [m2/s]
152  inline scalar D(scalar p, scalar T) const;
153 
154  //- Vapour diffussivity [m2/s] with specified binary pair
155  inline scalar D(scalar p, scalar T, scalar Wb) const;
156 
157 
158  // I-O
159 
160  //- Write the function coefficients
161  void writeData(Ostream& os) const
162  {
163  liquid::writeData(os); os << nl;
164  rho_.writeData(os); os << nl;
165  pv_.writeData(os); os << nl;
166  hl_.writeData(os); os << nl;
167  cp_.writeData(os); os << nl;
168  cpg_.writeData(os); os << nl;
169  B_.writeData(os); os << nl;
170  mu_.writeData(os); os << nl;
171  mug_.writeData(os); os << nl;
172  K_.writeData(os); os << nl;
173  Kg_.writeData(os); os << nl;
174  sigma_.writeData(os); os << nl;
175  D_.writeData(os); os << endl;
176  }
177 
178 
179  //- Ostream Operator
180  friend Ostream& operator<<(Ostream& os, const H2O& l)
181  {
182  l.writeData(os);
183  return os;
184  }
185 };
186 
187 
188 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
189 
190 } // End namespace Foam
191 
192 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 
194 #include "H2OI.H"
195 
196 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
197 
198 #endif
199 
200 // ************************ vim: set sw=4 sts=4 et: ************************ //