BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / thermophysicalModels / basicSolidThermo / constSolidThermo / constSolidThermo.H
blobcba0bda908a26a07662dfcc9319f2d0020313053
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 Class
25     Foam::constSolidThermo
27 Description
28     The thermophysical properties of a constSolidThermo
30 SourceFiles
31     constSolidThermo.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef constSolidThermo_H
36 #define constSolidThermo_H
38 #include "basicSolidThermo.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46                       Class constSolidThermo Declaration
47 \*---------------------------------------------------------------------------*/
49 class constSolidThermo
51     public basicSolidThermo
53 private:
55     // Private data
57         //- Dictionary
58         dictionary dict_;
60         //- Constant thermal conductivity [W/(m.K)]
61         dimensionedScalar constK_;
63         //- Thermal conductivity field[W/(m.K)]
64         volScalarField K_;
66         //- Density [kg/m3]
67         dimensionedScalar constRho_;
69         //- Specific heat capacity [J/(kg.K)]
70         dimensionedScalar constCp_;
72         //- Heat of formation [J/kg]
73         dimensionedScalar constHf_;
75         //- Emissivity
76         dimensionedScalar constEmissivity_;
78         //- Absorptivity [1/m]
79         dimensionedScalar constKappa_;
81         //- Scatter [1/m]
82         dimensionedScalar constSigmaS_;
85 public:
87     //- Runtime type information
88     TypeName("constSolidThermo");
91     // Constructors
93         //- Construct from mesh
94         constSolidThermo(const fvMesh& mesh);
96          //- Construct from mesh and dict
97         constSolidThermo(const fvMesh& mesh, const dictionary& dict);
100     //- Destructor
101     virtual ~constSolidThermo();
104     // Member Functions
106         //- Update properties
107         virtual void correct();
110     // Acces functions
112         //- Constant access to K
113         virtual const volScalarField& K() const;
115         //- Thermal conductivity [W/(m.K)]
116         virtual const volSymmTensorField& directionalK() const;
119         // Derived properties
121             //- Specific heat capacity [J/(kg.K)]
122             virtual tmp<volScalarField> Cp() const;
124             //- Heat of formation [J/kg]
125             virtual tmp<volScalarField> Hf() const;
128         // Per patch calculation
130             //- Density [kg/m3]
131             virtual tmp<scalarField> rho(const label patchI) const;
133             //- Specific heat capacity [J/kg/K)]
134             virtual tmp<scalarField> Cp(const label patchI) const;
136             //- Thermal conductivity [W//m/K]
137             virtual tmp<scalarField> K(const label patchI) const;
139             //- Thermal conductivity [W//m/K]
140             virtual tmp<symmTensorField>directionalK(const label) const;
142             //- Heat of formation [J/kg]
143             virtual tmp<scalarField> Hf(const label patchI) const;
145             //- Scatter coefficient [1/m]
146             virtual tmp<scalarField> sigmaS(const label) const;
148             //- Absorption coefficient [1/m]
149             virtual tmp<scalarField> kappa(const label) const;
151              //- Emissivity []
152             virtual tmp<scalarField> emissivity(const label) const;
155         // I-O
157             //- Write the constSolidThermo properties
158             virtual bool writeData(Ostream& os) const;
160             //- Read solidThermophysicalProperties dictionary
161             virtual bool read();
163             //- Read solidThermophysicalProperties dictionary
164             bool read(const dictionary&);
166             //- Ostream Operator
167             friend Ostream& operator<<(Ostream& os, const constSolidThermo& s);
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 } // End namespace Foam
175 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 #endif
179 // ************************************************************************* //