initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / src / thermophysicalModels / liquids / CH3OH / CH3OH.H
bloba11f143352c9078cdeafa6acce1a666fd4d09f6d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
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::CH3OH
28 Description
29     methanol
31 SourceFiles
32     CH3OH.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef CH3OH_H
37 #define CH3OH_H
39 #include "liquid.H"
40 #include "NSRDSfunc0.H"
41 #include "NSRDSfunc1.H"
42 #include "NSRDSfunc2.H"
43 #include "NSRDSfunc3.H"
44 #include "NSRDSfunc4.H"
45 #include "NSRDSfunc5.H"
46 #include "NSRDSfunc6.H"
47 #include "NSRDSfunc7.H"
48 #include "NSRDSfunc14.H"
49 #include "APIdiffCoefFunc.H"
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 namespace Foam
56 /*---------------------------------------------------------------------------*\
57                            Class CH3OH Declaration
58 \*---------------------------------------------------------------------------*/
60 class CH3OH
62     public liquid
64     // Private data
66         NSRDSfunc5 rho_;
67         NSRDSfunc1 pv_;
68         NSRDSfunc6 hl_;
69         NSRDSfunc0 cp_;
70         NSRDSfunc0 h_;
71         NSRDSfunc7 cpg_;
72         NSRDSfunc4 B_;
73         NSRDSfunc1 mu_;
74         NSRDSfunc2 mug_;
75         NSRDSfunc0 K_;
76         NSRDSfunc2 Kg_;
77         NSRDSfunc6 sigma_;
78         APIdiffCoefFunc D_;
81 public:
83     //- Runtime type information
84     TypeName("CH3OH");
87     // Constructors
89         //- Construct null
90         CH3OH()
91         :
92             liquid(32.042, 512.58, 8.0959e+6, 0.1178, 0.224, 175.47, 1.054e-1, 337.85, 5.6706e-30, 0.5656, 2.9523e+4),
93             rho_(73.952936, 0.27192, 512.58, 0.2331),
94             pv_(109.93, -7471.3, -13.988, 0.015281, 1),
95             hl_(512.58, 1644716.30984333, 0.3766, 0, 0, 0),
96             cp_(3358.09250358904, -11.8781599151114, 0.0305536483365583, 0, 0, 0),
97             // NN: enthalpy, h_, is not used in the sprayModel.
98             // For consistency, the enthalpy is derived from hlat and hl.
99             // It is, however, convenient to have it available.
100             h_(-8190474.32066862, 3358.09250358904, -5.93907995755571, 0.0101845494455194, 0, 0),
101             cpg_(1226.9521253355, 2772.92303851195, 1963, 1733.66206853505, 909.6),
102             B_(-0.0199737844079645, 19.3496036452157, -3342487.98452032, 2.40808938268523e+19, -6.85787404032208e+21),
103             mu_(-7.288, 1065.3, -0.6657, 0, 0),
104             mug_(3.0663e-07, 0.69655, 205, 0),
105             K_(0.2837, -0.000281, 0, 0, 0, 0),
106             Kg_(-7.763, 1.0279, -74360000.0, 6770000000.0),
107             sigma_(512.58, 0.056, -0.00014583, 1.08e-07, 0, 0),
108             D_(147.18, 20.1, 32.042, 28) // NN: Same as nHeptane
109         {}
110         CH3OH
111         (
112             const liquid& l,
113             const NSRDSfunc5& density,
114             const NSRDSfunc1& vapourPressure,
115             const NSRDSfunc6& heatOfVapourisation,
116             const NSRDSfunc0& heatCapacity,
117             const NSRDSfunc0& enthalpy,
118             const NSRDSfunc7& idealGasHeatCapacity,
119             const NSRDSfunc4& secondVirialCoeff,
120             const NSRDSfunc1& dynamicViscosity,
121             const NSRDSfunc2& vapourDynamicViscosity,
122             const NSRDSfunc0& thermalConductivity,
123             const NSRDSfunc2& vapourThermalConductivity,
124             const NSRDSfunc6& surfaceTension,
125             const APIdiffCoefFunc& vapourDiffussivity
126         )
127         :
128             liquid(l),
129             rho_(density),
130             pv_(vapourPressure),
131             hl_(heatOfVapourisation),
132             cp_(heatCapacity),
133             h_(enthalpy),
134             cpg_(idealGasHeatCapacity),
135             B_(secondVirialCoeff),
136             mu_(dynamicViscosity),
137             mug_(vapourDynamicViscosity),
138             K_(thermalConductivity),
139             Kg_(vapourThermalConductivity),
140             sigma_(surfaceTension),
141             D_(vapourDiffussivity)
142         {}
144         //- Construct from Istream
145         CH3OH(Istream& is)
146         :
147             liquid(is),
148             rho_(is),
149             pv_(is),
150             hl_(is),
151             cp_(is),
152             h_(is),
153             cpg_(is),
154             B_(is),
155             mu_(is),
156             mug_(is),
157             K_(is),
158             Kg_(is),
159             sigma_(is),
160             D_(is)
161         {}
164     // Member Functions
166         //- Liquid density [kg/m^3]
167         scalar rho(scalar p, scalar T) const
168         {
169             return rho_.f(p, T);
170         }
172         //- Vapour pressure [Pa]
173         scalar pv(scalar p, scalar T) const
174         {
175             return pv_.f(p, T);
176         }
178         //- Heat of vapourisation [J/kg]
179         scalar hl(scalar p, scalar T) const
180         {
181             return hl_.f(p, T);
182         }
184         //- Liquid heat capacity [J/(kg K)]
185         scalar cp(scalar p, scalar T) const
186         {
187             return cp_.f(p, T);
188         }
190         //- Liquid Enthalpy [J/(kg)]
191         scalar h(scalar p, scalar T) const
192         {
193             return h_.f(p, T);
194         }
196         //- Ideal gas heat capacity [J/(kg K)]
197         scalar cpg(scalar p, scalar T) const
198         {
199             return cpg_.f(p, T);
200         }
202         //- Second Virial Coefficient [m^3/kg]
203         scalar B(scalar p, scalar T) const
204         {
205             return B_.f(p, T);
206         }
208         //- Liquid viscosity [Pa s]
209         scalar mu(scalar p, scalar T) const
210         {
211             return mu_.f(p, T);
212         }
214         //- Vapour viscosity [Pa s]
215         scalar mug(scalar p, scalar T) const
216         {
217             return mug_.f(p, T);
218         }
220         //- Liquid thermal conductivity  [W/(m K)]
221         scalar K(scalar p, scalar T) const
222         {
223             return K_.f(p, T);
224         }
226         //- Vapour thermal conductivity  [W/(m K)]
227         scalar Kg(scalar p, scalar T) const
228         {
229             return Kg_.f(p, T);
230         }
232         //- Surface tension [N/m]
233         scalar sigma(scalar p, scalar T) const
234         {
235             return sigma_.f(p, T);
236         }
238         //- Vapour diffussivity [m2/s]
239         scalar D(scalar p, scalar T) const
240         {
241             return D_.f(p, T);
242         }
245         //- Write the function coefficients
246         void writeData(Ostream& os) const
247         {
248             liquid::writeData(os); os << nl;
249             rho_.writeData(os); os << nl;
250             pv_.writeData(os); os << nl;
251             hl_.writeData(os); os << nl;
252             cp_.writeData(os); os << nl;
253             cpg_.writeData(os); os << nl;
254             B_.writeData(os); os << nl;
255             mu_.writeData(os); os << nl;
256             mug_.writeData(os); os << nl;
257             K_.writeData(os); os << nl;
258             Kg_.writeData(os); os << nl;
259             sigma_.writeData(os); os << nl;
260             D_.writeData(os); os << endl;
261         }
264     // Ostream Operator
266         friend Ostream& operator<<(Ostream& os, const CH3OH& l)
267         {
268             l.writeData(os);
269             return os;
270         }
274 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
276 } // End namespace Foam
278 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
280 #endif
282 // ************************************************************************* //