Loading...
Searching...
No Matches
ReactingMultiphaseCloudI.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) 2011-2013 OpenFOAM Foundation
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/>.
26\*---------------------------------------------------------------------------*/
27
28// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
29
30template<class CloudType>
34 return *cloudCopyPtr_;
35}
36
37
38template<class CloudType>
39inline const typename CloudType::particleType::constantProperties&
42 return constProps_;
43}
44
45
46template<class CloudType>
47inline typename CloudType::particleType::constantProperties&
49{
50 return constProps_;
51}
53
54template<class CloudType>
56<
58>&
60{
62}
64
65template<class CloudType>
67<
69>&
71{
73}
75
76template<class CloudType>
78<
80>&
82{
84}
86
87template<class CloudType>
89<
91>&
93{
95}
96
97
98template<class CloudType>
100(
101 const parcelType& p,
102 const typename parcelType::trackingData& td
103)
104{
105 const label celli = p.cell();
106
107 const scalar m = p.nParticle()*p.mass();
108 const scalar pc = td.pc();
109 const scalar T = p.T();
110
111 this->rhokTrans()[celli] += m;
112
113 this->UTrans()[celli] += m*p.U();
114
115 const auto& comp = this->composition();
116 const label idG = comp.idGas();
117 const label idL = comp.idLiquid();
118 // const label idS = composition.idSolid();
119
120 // Absorb parcel into carrier phase
121 auto transfer = [&]
122 (
123 const label phaseType,
124 const label phasei,
125 const scalarField& Y
126 )
127 {
128 const scalar YMix = p.Y()[phaseType];
129
130 forAll(Y, i)
131 {
132 const label gid = comp.localToCarrierId(phaseType, i);
133 this->rhoTrans(gid)[celli] += m*YMix*Y[i];
134 this->hsTrans()[celli] += m*YMix*comp.Hs(phasei, Y, pc, T);
135 }
136 };
137
138 transfer(parcelType::GAS, idG, p.YGas());
139 transfer(parcelType::LIQ, idL, p.YLiquid());
140 // No mapping between solid components and carrier phase
141 //transfer(parcelType::SLD, idS, p.YSolid());
142}
143
144
145// ************************************************************************* //
Templated devolatilisation model class.
void transfer(ILList< DLListBase, T > &lst)
Templated base class for multiphase reacting cloud.
const DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > & devolatilisation() const
Return const access to devolatilisation model.
const parcelType::constantProperties & constProps() const
Return the constant properties.
autoPtr< SurfaceReactionModel< ReactingMultiphaseCloud< CloudType > > > surfaceReactionModel_
Surface reaction model.
const ReactingMultiphaseCloud & cloudCopy() const
Return a reference to the cloud copy.
autoPtr< DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > > devolatilisationModel_
Devolatilisation model.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
parcelType::constantProperties constProps_
Parcel constant properties.
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
const SurfaceReactionModel< ReactingMultiphaseCloud< CloudType > > & surfaceReaction() const
Return const access to reacting surface reaction model.
Templated surface reaction model class.
basicSpecieMixture & composition
volScalarField & p
PtrList< volScalarField > & Y
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
label phasei
Definition pEqn.H:27
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
#define forAll(list, i)
Loop across all elements in list.
Definition stdFoam.H:299