Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / thermophysicalModels / solid / transport / exponential / exponentialSolidTransport.H
blob9f14ad0dd4f3dd3f582d6b5ff799cd3238ffc2ed
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2010-2010 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
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 Class
25     Foam::exponentialSolidTransport
27 Description
28     Exponential properties for solid heat transport
29     Templated into a given thermodynamics package.
31 SourceFiles
32     exponentialSolidTransportI.H
33     exponentialSolidTransport.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef exponentialSolidTransport_H
38 #define exponentialSolidTransport_H
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 template<class thermo> class exponentialSolidTransport;
47 template<class thermo>
48 Ostream& operator<<
50     Ostream&,
51     const exponentialSolidTransport<thermo>&
55 /*---------------------------------------------------------------------------*\
56                         Class exponentialSolidTransport Declaration
57 \*---------------------------------------------------------------------------*/
59 template<class thermo>
60 class exponentialSolidTransport
62     public thermo
64     // Private data
66         //- Constant thermal coefficient.
67         scalar K0_;
69         //- Exponent coefficient
70         scalar n0_;
72         //- Reference temperature
73         scalar Tref_;
76     // Private Member Functions
78         //- Construct from components
79         inline exponentialSolidTransport
80         (
81             const thermo& t,
82             const scalar K0,
83             const scalar n0,
84             const scalar Tref
85         );
88 public:
90     // Constructors
92         //- Construct as named copy
93         inline exponentialSolidTransport
94         (
95             const word&,
96             const exponentialSolidTransport&
97         );
100         //- Construct from dictionary
101         exponentialSolidTransport(const dictionary&);
104     // Member functions
106         //- Thermal conductivity [W/mK]
107         inline scalar K(const scalar T) const;
109         //- Thermal diffusivity [kg/ms]
110         inline scalar alpha(const scalar T) const;
113     // Ostream Operator
115         friend Ostream& operator<< <thermo>
116         (
117             Ostream&,
118             const exponentialSolidTransport&
119         );
123 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125 } // End namespace Foam
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 #include "exponentialSolidTransportI.H"
131 #ifdef NoRepository
132 #   include "exponentialSolidTransport.C"
133 #endif
135 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137 #endif
139 // ************************************************************************* //