Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / thermophysicalModels / thermophysicalFunctions / NSRDSfunctions / NSRDSfunc5 / NSRDSfunc5.H
blobf9cf0739e5251d92df356c498bf186b45b71bce8
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::NSRDSfunc5
27 Description
28     NSRDS function number 105
30     Source:
31     @verbatim
32                       NSRDS - AICHE
33                  Data Compilation Tables
34                     of Properties of
35                      Pure Compounds
37         Design Institute for Physical Property Data
38           American Institute of Chemical Engineers
39                   345 East 47th Street
40                 New York, New York 10017
42          National Standard Reference Data System
43          American Institute of Chemical Engineers
45           T.E. Daubert       -       R.P. Danner
47             Department of Chemical Engineering
48             The Pennsylvania State University
49                 University Park, PA 16802
50     @endverbatim
52 \*---------------------------------------------------------------------------*/
54 #ifndef NSRDSfunc5_H
55 #define NSRDSfunc5_H
57 #include "thermophysicalFunction.H"
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 namespace Foam
64 /*---------------------------------------------------------------------------*\
65                            Class NSRDSfunc5 Declaration
66 \*---------------------------------------------------------------------------*/
68 class NSRDSfunc5
70     public thermophysicalFunction
72     // Private data
74         // NSRDS function 105 coefficients
75         scalar a_, b_, c_, d_;
78 public:
80     //- Runtime type information
81     TypeName("NSRDSfunc5");
84     // Constructors
86         //- Construct from components
87         NSRDSfunc5(scalar a, scalar b, scalar c, scalar d)
88         :
89             a_(a),
90             b_(b),
91             c_(c),
92             d_(d)
93         {}
95         //- Construct from Istream
96         NSRDSfunc5(Istream& is)
97         :
98             a_(readScalar(is)),
99             b_(readScalar(is)),
100             c_(readScalar(is)),
101             d_(readScalar(is))
102         {}
105     // Member Functions
107         //- Evaluate the function and return the result
108         scalar f(scalar, scalar T) const
109         {
110             return a_/pow(b_, 1 + pow(1 - T/c_, d_));
111         }
114         //- Write the function coefficients
115         void writeData(Ostream& os) const
116         {
117             os  << a_ << token::SPACE
118                 << b_ << token::SPACE
119                 << c_ << token::SPACE
120                 << d_;
121         }
124     // Ostream Operator
126         friend Ostream& operator<<(Ostream& os, const NSRDSfunc5& f)
127         {
128             f.writeData(os);
129             return os;
130         }
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 } // End namespace Foam
138 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 #endif
142 // ************************************************************************* //