BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / lagrangian / coalCombustion / submodels / surfaceReactionModel / COxidationKineticDiffusionLimitedRate / COxidationKineticDiffusionLimitedRate.H
blob2c9b2868351f2973103bf4f925349bfc61e6b052
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     COxidationKineticDiffusionLimitedRate
27 Description
28     Kinetic/diffusion limited rate surface reaction model for coal parcels.
29     Limited to:
31         C(s) + Sb*O2 -> CO2
33     where Sb is the stoichiometry of the reaction
35 \*---------------------------------------------------------------------------*/
37 #ifndef COxidationKineticDiffusionLimitedRate_H
38 #define COxidationKineticDiffusionLimitedRate_H
40 #include "SurfaceReactionModel.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
47 // Forward class declarations
48 template<class CloudType>
49 class COxidationKineticDiffusionLimitedRate;
51 /*---------------------------------------------------------------------------*\
52             Class COxidationKineticDiffusionLimitedRate Declaration
53 \*---------------------------------------------------------------------------*/
55 template<class CloudType>
56 class COxidationKineticDiffusionLimitedRate
58     public SurfaceReactionModel<CloudType>
60     // Private data
62         // Model constants
64             //- Stoichiometry of reaction
65             const scalar Sb_;
67             //- Mass diffusion limited rate constant, C1
68             const scalar C1_;
70             //- Kinetics limited rate pre-exponential constant, C2
71             const scalar C2_;
73             //- Kinetics limited rate activation energy
74             const scalar E_;
77         // Addressing
79             //- Cs positions in global/local lists
80             label CsLocalId_;
82             //- O2 position in global list
83             label O2GlobalId_;
85             //- CO2 positions in global list
86             label CO2GlobalId_;
89         // Local copies of thermo properties
91             //- Molecular weight of C [kg/kmol]
92             scalar WC_;
94             //- Molecular weight of O2 [kg/kmol]
95             scalar WO2_;
97             //- Formation enthalpy for CO2 [J/kg]
98             scalar HcCO2_;
101 public:
103     //- Runtime type information
104     TypeName("COxidationKineticDiffusionLimitedRate");
107     // Constructors
109         //- Construct from dictionary
110         COxidationKineticDiffusionLimitedRate
111         (
112             const dictionary& dict,
113             CloudType& owner
114         );
116         //- Construct copy
117         COxidationKineticDiffusionLimitedRate
118         (
119             const COxidationKineticDiffusionLimitedRate<CloudType>& srm
120         );
122         //- Construct and return a clone
123         virtual autoPtr<SurfaceReactionModel<CloudType> > clone() const
124         {
125             return autoPtr<SurfaceReactionModel<CloudType> >
126             (
127                 new COxidationKineticDiffusionLimitedRate<CloudType>(*this)
128             );
129         }
132     //- Destructor
133     virtual ~COxidationKineticDiffusionLimitedRate();
136     // Member Functions
138         //- Update surface reactions
139         virtual scalar calculate
140         (
141             const scalar dt,
142             const label cellI,
143             const scalar d,
144             const scalar T,
145             const scalar Tc,
146             const scalar pc,
147             const scalar rhoc,
148             const scalar mass,
149             const scalarField& YGas,
150             const scalarField& YLiquid,
151             const scalarField& YSolid,
152             const scalarField& YMixture,
153             const scalar N,
154             scalarField& dMassGas,
155             scalarField& dMassLiquid,
156             scalarField& dMassSolid,
157             scalarField& dMassSRCarrier
158         ) const;
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164 } // End namespace Foam
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 #ifdef NoRepository
169     #include "COxidationKineticDiffusionLimitedRate.C"
170 #endif
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
174 #endif
176 // ************************************************************************* //