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 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::MUCSheterogeneousRate
28 
29 Group
30  grpLagrangianIntermediateSurfaceReactionSubModels
31 
32 Description
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 
48 namespace Foam
49 {
50 
51 // Forward declarations
52 template<class CloudType>
54 
55 /*---------------------------------------------------------------------------*\
56  Class MUCSheterogeneousRate Declaration
57 \*---------------------------------------------------------------------------*/
58 
59 template<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 
121 public:
122 
123  //- Runtime type information
124  TypeName("MUCSheterogeneousRate");
125 
126 
127  // Constructors
128 
129  //- Construct from dictionary
131  (
132  const dictionary& dict,
133  CloudType& owner
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 // ************************************************************************* //
Foam::MUCSheterogeneousRate::MUCSheterogeneousRate
MUCSheterogeneousRate(const dictionary &dict, CloudType &owner)
Construct from dictionary.
Definition: MUCSheterogeneousRate.C:35
Foam::HeterogeneousReactingModel
Base class for heterogeneous reacting models.
Definition: ReactingHeterogeneousCloud.H:55
Foam::MUCSheterogeneousRate::clone
virtual autoPtr< HeterogeneousReactingModel< CloudType > > clone() const
Construct and return a clone.
Definition: MUCSheterogeneousRate.H:142
F
volVectorField F(fluid.F())
HeterogeneousReactingModel.H
nu
volScalarField & nu
Definition: readMechanicalProperties.H:176
Foam::Field< scalar >
Foam::T
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Definition: FieldFieldFunctions.C:58
Foam::MUCSheterogeneousRate::calculate
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.
Definition: MUCSheterogeneousRate.C:107
Foam::MUCSheterogeneousRate::TypeName
TypeName("MUCSheterogeneousRate")
Runtime type information.
Foam::DSMCCloud
Templated base class for dsmc cloud.
Definition: DSMCCloud.H:71
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
MUCSheterogeneousRate.C
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::Re
scalarField Re(const UList< complex > &cf)
Extract real component.
Definition: complexField.C:159
Foam::MUCSheterogeneousRate::nReactions
virtual label nReactions() const
Number of reactions in the model.
Definition: MUCSheterogeneousRate.C:235
N
const Vector< label > N(dict.get< Vector< label >>("N"))
Foam::MUCSheterogeneousRate::~MUCSheterogeneousRate
virtual ~MUCSheterogeneousRate()=default
Destructor.
Foam::MUCSheterogeneousRate
Heteregeneous noncatalytic reaction MUCS approach. Reference: D. Papanastassiou and G....
Definition: MUCSheterogeneousRate.H:52