BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / lagrangian / coalCombustion / submodels / surfaceReactionModel / COxidationDiffusionLimitedRate / COxidationDiffusionLimitedRate.H
blob83a4c19d8aca478ff977201ba30fc45051bf990b
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     COxidationDiffusionLimitedRate
27 Description
28     Diffusion limited rate surface reaction model for coal parcels. Limited to:
30         C(s) + Sb*O2 -> CO2
32     where Sb is the stoichiometry of the reaction
34 \*---------------------------------------------------------------------------*/
36 #ifndef COxidationDiffusionLimitedRate_H
37 #define COxidationDiffusionLimitedRate_H
39 #include "SurfaceReactionModel.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 // Forward class declarations
44 template<class CloudType>
45 class COxidationDiffusionLimitedRate;
47 namespace Foam
49 /*---------------------------------------------------------------------------*\
50               Class COxidationDiffusionLimitedRate Declaration
51 \*---------------------------------------------------------------------------*/
53 template<class CloudType>
54 class COxidationDiffusionLimitedRate
56     public SurfaceReactionModel<CloudType>
58     // Private data
60         // Model constants
62             //- Stoichiometry of reaction
63             const scalar Sb_;
65             //- Diffusion coefficient of oxidants [m2/s]
66             const scalar D_;
69         // Addressing
71             //- Cs positions in global/local lists
72             label CsLocalId_;
74             //- O2 position in global list
75             label O2GlobalId_;
77             //- CO2 positions in global list
78             label CO2GlobalId_;
81         // Local copies of thermo properties
83             //- Molecular weight of C [kg/kmol]
84             scalar WC_;
86             //- Molecular weight of O2 [kg/kmol]
87             scalar WO2_;
89             //- Formation enthalpy for CO2 [J/kg]
90             scalar HcCO2_;
93 public:
95     //- Runtime type information
96     TypeName("COxidationDiffusionLimitedRate");
99     // Constructors
101         //- Construct from dictionary
102         COxidationDiffusionLimitedRate
103         (
104             const dictionary& dict,
105             CloudType& owner
106         );
108         //- Construct copy
109         COxidationDiffusionLimitedRate
110         (
111             const COxidationDiffusionLimitedRate<CloudType>& srm
112         );
114         //- Construct and return a clone
115         virtual autoPtr<SurfaceReactionModel<CloudType> > clone() const
116         {
117             return autoPtr<SurfaceReactionModel<CloudType> >
118             (
119                 new COxidationDiffusionLimitedRate<CloudType>(*this)
120             );
121         }
124     //- Destructor
125     virtual ~COxidationDiffusionLimitedRate();
128     // Member Functions
130         //- Update surface reactions
131         virtual scalar calculate
132         (
133             const scalar dt,
134             const label cellI,
135             const scalar d,
136             const scalar T,
137             const scalar Tc,
138             const scalar pc,
139             const scalar rhoc,
140             const scalar mass,
141             const scalarField& YGas,
142             const scalarField& YLiquid,
143             const scalarField& YSolid,
144             const scalarField& YMixture,
145             const scalar N,
146             scalarField& dMassGas,
147             scalarField& dMassLiquid,
148             scalarField& dMassSolid,
149             scalarField& dMassSRCarrier
150         ) const;
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 } // End namespace Foam
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 #ifdef NoRepository
161     #include "COxidationDiffusionLimitedRate.C"
162 #endif
164 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 #endif
168 // ************************************************************************* //