1 /*---------------------------------------------------------------------------*\
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 -------------------------------------------------------------------------------
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/>.
25 Foam::ReactingMultiphaseCloud
28 Templated base class for multiphase reacting cloud
30 - Adds to reacting cloud
31 - multiphase composition
36 ReactingMultiphaseCloudTemplateI.H
37 ReactingMultiphaseCloudTemplate.C
39 \*---------------------------------------------------------------------------*/
41 #ifndef ReactingMultiphaseCloudTemplate_H
42 #define ReactingMultiphaseCloudTemplate_H
44 #include "ReactingCloudTemplate.H"
45 #include "reactingMultiphaseCloud.H"
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 // Forward declaration of classes
54 template<class CloudType>
55 class DevolatilisationModel;
57 template<class CloudType>
58 class SurfaceReactionModel;
60 /*---------------------------------------------------------------------------*\
61 Class ReactingMultiphaseCloud Declaration
62 \*---------------------------------------------------------------------------*/
64 template<class ParcelType>
65 class ReactingMultiphaseCloud
67 public ReactingCloud<ParcelType>,
68 public reactingMultiphaseCloud
70 // Private member functions
72 //- Disallow default bitwise copy construct
73 ReactingMultiphaseCloud(const ReactingMultiphaseCloud&);
75 //- Disallow default bitwise assignment
76 void operator=(const ReactingMultiphaseCloud&);
83 //- Parcel constant properties
84 typename ParcelType::constantProperties constProps_;
87 // References to the cloud sub-models
89 //- Devolatilisation model
92 DevolatilisationModel<ReactingMultiphaseCloud<ParcelType> >
94 devolatilisationModel_;
96 //- Surface reaction model
99 SurfaceReactionModel<ReactingMultiphaseCloud<ParcelType> >
101 surfaceReactionModel_;
106 //- Total mass transferred to continuous phase via devolatilisation
107 scalar dMassDevolatilisation_;
109 //- Total mass transferred to continuous phase via surface
111 scalar dMassSurfaceReaction_;
114 // Protected member functions
116 // Cloud evolution functions
132 //- Construct given carrier gas fields
133 ReactingMultiphaseCloud
135 const word& cloudName,
136 const volScalarField& rho,
137 const volVectorField& U,
138 const dimensionedVector& g,
140 bool readFields = true
145 virtual ~ReactingMultiphaseCloud();
148 //- Type of parcel the cloud was instantiated for
149 typedef ParcelType parcelType;
156 //- Return the constant properties
157 inline const typename ParcelType::constantProperties&
163 //- Return reference to devolatilisation model
164 inline const DevolatilisationModel
166 ReactingMultiphaseCloud<ParcelType>
168 devolatilisation() const;
170 //- Return reference to reacting surface reaction model
171 inline const SurfaceReactionModel
173 ReactingMultiphaseCloud<ParcelType>
175 surfaceReaction() const;
180 //- Print cloud information
183 //- Add to cumulative volatilisation mass transfer
184 void addToMassDevolatilisation(const scalar dMass);
186 //- Add to cumulative surface reaction transfer
187 void addToMassSurfaceReaction(const scalar dMass);
190 // Cloud evolution functions
192 //- Check parcel properties
193 void checkParcelProperties
196 const scalar lagrangianDt,
197 const bool fullyDescribed
200 //- Reset the spray source terms
201 void resetSourceTerms();
203 //- Evolve the spray (inject, move)
208 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
210 } // End namespace Foam
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
214 #include "ReactingMultiphaseCloudTemplateI.H"
216 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
219 # include "ReactingMultiphaseCloudTemplate.C"
222 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
226 // ************************************************************************* //