ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / thermophysicalModels / basicSolidThermo / solidMixtureThermo / mixtures / multiComponentSolidMixture / multiComponentSolidMixture.H
blob3a633da5cd04dae5c7673c415ca55dfdcd429390
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::multiComponentSolidMixture
27 Description
28     Foam::multiComponentSolidMixture
30 \*---------------------------------------------------------------------------*/
32 #ifndef multiComponentSolidMixture_H
33 #define multiComponentSolidMixture_H
35 #include "PtrList.H"
36 #include "autoPtr.H"
37 #include "basicSolidMixture.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46                  Class multiComponentSolidMixture Declaration
47 \*---------------------------------------------------------------------------*/
49 template<class ThermoSolidType>
50 class multiComponentSolidMixture
52     public basicSolidMixture
55     // Private data
57         //- Solid data
58         PtrList<ThermoSolidType> solidData_;
61     // Private Member Functions
63         //- Correct the mass fractions to sum to 1
64         void correctMassFractions();
66         //- Return molar fraction for component i in celli and at T
67         scalar X(label i, label celli, scalar T) const;
70 public:
73     // Constructors
75         //- Construct from dictionary and mesh
76         multiComponentSolidMixture(const dictionary&, const fvMesh&);
79     //- Destructor
80     virtual ~multiComponentSolidMixture()
81     {}
84     // Member Functions
86         //- Return the raw solid data
87         const PtrList<ThermoSolidType>& solidData() const
88         {
89             return solidData_;
90         }
92         //- Read dictionary
93         void read(const dictionary&);
96         // Cell-based properties
98             //- Density
99             virtual scalar rho(scalar T, label celli) const;
101             //- Absorption coefficient
102             virtual scalar kappa(scalar T, label celli) const;
104             //- Scatter coefficient
105             virtual scalar sigmaS(scalar T, label celli) const;
107             //- Thermal conductivity
108             virtual scalar K(scalar T, label celli) const;
110             //- Emissivity coefficient
111             virtual scalar emissivity(scalar T, label celli) const;
113             //- Formation enthalpy
114             virtual scalar hf(scalar T, label celli) const;
116             //- Sensible enthalpy
117             virtual scalar hs(scalar T, label celli) const;
119             //- Total enthalpy
120             virtual scalar h(scalar T, label celli) const;
122             //- Specific heat capacity
123             virtual scalar Cp(scalar T, label celli) const;
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 } // End namespace Foam
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 #ifdef NoRepository
134 #   include "multiComponentSolidMixture.C"
135 #endif
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 #endif
141 // ************************************************************************* //