BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / thermophysicalModels / solid / thermo / exponential / exponentialSolidThermoI.H
blob9797045a07ee61a9e5f56655780a9d5afcee2d1a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "exponentialSolidThermo.H"
27 #include "specie.H"
29 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
32 template<class rhoType>
33 inline void Foam::exponentialSolidThermo<rhoType>::checkT(const scalar T) const
35     if (T < 0.0)
36     {
37         FatalErrorIn
38         (
39             "exponentialSolidThermo<rhoType>::checkT(const scalar T) const"
40         )   << "attempt to use exponentialSolidThermo<rhoType>"
41                " out of temperature range "
42             << T
43             << abort(FatalError);
44     }
48 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
50 template<class rhoType>
51 inline Foam::exponentialSolidThermo<rhoType>::exponentialSolidThermo
53     const word& name,
54     const exponentialSolidThermo& jt
57     rhoType(name, jt),
58     c0_(jt.c0_),
59     n0_(jt.n0_),
60     Tref_(jt.Tref_),
61     Hf_(jt.Hf_)
65 template<class rhoType>
66 inline Foam::exponentialSolidThermo<rhoType>::exponentialSolidThermo
68     const rhoType& st,
69     const scalar c0,
70     const scalar n0,
71     const scalar Tref,
72     const scalar Hf
75     rhoType(st),
76     c0_(c0),
77     n0_(n0),
78     Tref_(Tref),
79     Hf_(Hf)
83 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
85 template<class rhoType>
86 inline Foam::scalar Foam::exponentialSolidThermo<rhoType>::integrateCp
88     const scalar T
89 ) const
91     return
92     (
93         c0_*pow(T, n0_ + 1.0)
94        /(pow(Tref_, n0_)*(n0_ + 1.0))
95     );
99 template<class rhoType>
100 inline Foam::scalar Foam::exponentialSolidThermo<rhoType>::Cp
102     const scalar T
103 ) const
105     return c0_*pow(T/Tref_, n0_);
109 template<class rhoType>
110 inline Foam::scalar Foam::exponentialSolidThermo<rhoType>::h
112     const scalar T
113 ) const
115     scalar hOffset = integrateCp(specie::Tstd);
117     return
118     (
119         integrateCp(T) + Hf_ - hOffset
120     );
124 template<class rhoType>
125 inline Foam::scalar Foam::exponentialSolidThermo<rhoType>::hs
127     const scalar T
128 ) const
130     return h(T) - Hf_;
134 template<class rhoType>
135 inline Foam::scalar Foam::exponentialSolidThermo<rhoType>::hf() const
137     return Hf_;
141 // ************************************************************************* //