Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / lagrangian / coalCombustion / submodels / surfaceReactionModel / COxidationDiffusionLimitedRate / COxidationDiffusionLimitedRate.H
blob1b66ad4a4cb3712103001689c30aef13c6220d3e
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  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             //- Chemical enthalpy of 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         );
109     //- Destructor
110     virtual ~COxidationDiffusionLimitedRate();
113     // Member Functions
115         //- Flag to indicate whether model activates surface reaction model
116         virtual bool active() const;
118         //- Update surface reactions
119         virtual scalar calculate
120         (
121             const scalar dt,
122             const label cellI,
123             const scalar d,
124             const scalar T,
125             const scalar Tc,
126             const scalar pc,
127             const scalar rhoc,
128             const scalar mass,
129             const scalarField& YGas,
130             const scalarField& YLiquid,
131             const scalarField& YSolid,
132             const scalarField& YMixture,
133             const scalar N,
134             scalarField& dMassGas,
135             scalarField& dMassLiquid,
136             scalarField& dMassSolid,
137             scalarField& dMassSRCarrier
138         ) const;
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 } // End namespace Foam
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 #ifdef NoRepository
149     #include "COxidationDiffusionLimitedRate.C"
150 #endif
152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 #endif
156 // ************************************************************************* //