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 -------------------------------------------------------------------------------
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 \*---------------------------------------------------------------------------*/
27 
28 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
29 
30 template<class CloudType>
33 {
34  return *cloudCopyPtr_;
35 }
36 
37 
38 template<class CloudType>
39 inline const typename CloudType::particleType::constantProperties&
41 {
42  return constProps_;
43 }
44 
45 
46 template<class CloudType>
47 inline typename CloudType::particleType::constantProperties&
49 {
50  return constProps_;
51 }
52 
53 
54 template<class CloudType>
55 inline const Foam::DevolatilisationModel
56 <
58 >&
60 {
61  return devolatilisationModel_;
62 }
63 
64 
65 template<class CloudType>
67 <
69 >&
71 {
72  return *devolatilisationModel_;
73 }
74 
75 
76 template<class CloudType>
77 inline const Foam::SurfaceReactionModel
78 <
80 >&
82 {
83  return surfaceReactionModel_;
84 }
85 
86 
87 template<class CloudType>
89 <
91 >&
93 {
94  return *surfaceReactionModel_;
95 }
96 
97 
98 template<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 // ************************************************************************* //
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
label phasei
Definition: pEqn.H:27
basicSpecieMixture & composition
Templated base class for multiphase reacting cloud.
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:421
const volScalarField & T
const ReactingMultiphaseCloud & cloudCopy() const
Return a reference to the cloud copy.
PtrList< volScalarField > & Y
const SurfaceReactionModel< ReactingMultiphaseCloud< CloudType > > & surfaceReaction() const
Return const access to reacting surface reaction model.
const parcelType::constantProperties & constProps() const
Return the constant properties.
Templated devolatilisation model class.
volScalarField & p
Templated surface reaction model class.
const DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > & devolatilisation() const
Return const access to devolatilisation model.