MUCSheterogeneousRate.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2018-2019 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Class
27 Foam::MUCSheterogeneousRate
28
29Group
30 grpLagrangianIntermediateSurfaceReactionSubModels
31
32Description
33 Heteregeneous noncatalytic reaction MUCS approach.
34 Reference:
35 D. Papanastassiou and G. Bitsianes,
36 Modelling of Heterogeneous Gas-Solid Reactions,
37 Metallurgical Transsactions, 480. Volume 4. 1973
38
39\*---------------------------------------------------------------------------*/
40
41#ifndef MUCSheterogeneousRate_H
42#define MUCSheterogeneousRate_H
43
45
46// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47
48namespace Foam
49{
50
51// Forward declarations
52template<class CloudType>
53class MUCSheterogeneousRate;
54
55/*---------------------------------------------------------------------------*\
56 Class MUCSheterogeneousRate Declaration
57\*---------------------------------------------------------------------------*/
58
59template<class CloudType>
61:
62 public HeterogeneousReactingModel<CloudType>
63{
64 // Private Data
65
66 // Model constants
67
68 //- Binary diffusivity [m2/s]
69 const scalar D12_;
70
71 //- Porosity of product layer
72 const scalar epsilon_;
73
74 //- Tortuosity
75 const scalar gamma_;
76
77 //- Spread factor in pellet
78 const scalar sigma_;
79
80 //- Effectiveness factor
81 const scalar E_;
82
83 //- Kinetic rate coefficient [m/s]
84 const scalar A_;
85
86 //- Effective areas [-]
87 const scalar Aeff_;
88
89 //- Kinetic rate activation energy [J/kmol]
90 const scalar Ea_;
91
92 //- Stoichiomatric solid reactant
93 const scalar nuFuel_;
94
95 //- Stoichiomatric oxydizer reactant
96 const scalar nuOx_;
97
98 //- Stoichiomatric solid product
99 const scalar nuProd_;
100
101
102 // Addressing
103
104 //- O2 position in global list
105 label O2GlobalId_;
106
107 //- Fuel solid local Id
108 label FuelLocalId_;
109
110 //- Product solid local Id
111 label ProdLocalId_;
112
113
114 // Local copies of thermo properties
115
116 //- Molecular weight of O2 [kg/kmol]
117 scalar WO2_;
118
119
120
121public:
122
123 //- Runtime type information
124 TypeName("MUCSheterogeneousRate");
125
126
127 // Constructors
128
129 //- Construct from dictionary
131 (
132 const dictionary& dict,
134 );
135
136 //- Construct copy
138 (
140 );
141
142 //- Construct and return a clone
144 {
146 (
148 );
149 }
150
151
152 //- Destructor
153 virtual ~MUCSheterogeneousRate() = default;
154
155
156 // Member Functions
157
158 //- Update surface reactions
159 virtual scalar calculate
160 (
161 const scalar dt,
162 const scalar Re,
163 const scalar nu,
164 const label celli,
165 const scalar d,
166 const scalar T,
167 const scalar Tc,
168 const scalar pc,
169 const scalar rhoc,
170 const scalar mass,
171 const scalarField& YSolid,
172 scalarField& F,
173 const scalar N,
174 scalar& NCpW,
175 scalarField& dMassSolid,
176 scalarField& dMassSRCarrier
177 ) const;
178
179
180 //- Number of reactions in the model
181 virtual label nReactions() const;
182
183};
184
185
186// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
187
188} // End namespace Foam
189
190// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
191
192#ifdef NoRepository
193 #include "MUCSheterogeneousRate.C"
194#endif
195
196// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
197
198#endif
199
200// ************************************************************************* //
const CloudType & owner() const
Return const access to the owner cloud.
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:75
Base class for heterogeneous reacting models.
Heteregeneous noncatalytic reaction MUCS approach. Reference: D. Papanastassiou and G....
virtual ~MUCSheterogeneousRate()=default
Destructor.
virtual label nReactions() const
Number of reactions in the model.
virtual scalar calculate(const scalar dt, const scalar Re, const scalar nu, const label celli, const scalar d, const scalar T, const scalar Tc, const scalar pc, const scalar rhoc, const scalar mass, const scalarField &YSolid, scalarField &F, const scalar N, scalar &NCpW, scalarField &dMassSolid, scalarField &dMassSRCarrier) const
Update surface reactions.
TypeName("MUCSheterogeneousRate")
Runtime type information.
virtual autoPtr< HeterogeneousReactingModel< CloudType > > clone() const
Construct and return a clone.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:113
const volScalarField & T
volVectorField F(fluid.F())
Namespace for OpenFOAM.
scalarField Re(const UList< complex > &cf)
Extract real component.
Definition: complexField.C:159
volScalarField & nu
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73
const Vector< label > N(dict.get< Vector< label > >("N"))