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/>.
28 Templated base class for thermodynamic cloud
30 - Adds to kinematic cloud
34 ThermoCloudTemplateI.H
37 \*---------------------------------------------------------------------------*/
39 #ifndef ThermoCloudTemplate_H
40 #define ThermoCloudTemplate_H
42 #include "KinematicCloudTemplate.H"
43 #include "thermoCloud.H"
44 #include "basicThermo.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 // Forward declaration of classes
53 template<class CloudType>
54 class HeatTransferModel;
56 /*---------------------------------------------------------------------------*\
57 Class ThermoCloud Declaration
58 \*---------------------------------------------------------------------------*/
60 template<class ParcelType>
63 public KinematicCloud<ParcelType>,
66 // Private Member Functions
68 //- Disallow default bitwise copy construct
69 ThermoCloud(const ThermoCloud&);
71 //- Disallow default bitwise assignment
72 void operator=(const ThermoCloud&);
79 //- Thermo parcel constant properties
80 typename ParcelType::constantProperties constProps_;
83 // References to the carrier gas fields
85 //- Thermodynamics package (basic)
86 basicThermo& carrierThermo_;
89 // References to the cloud sub-models
91 //- Heat transfer model
92 autoPtr<HeatTransferModel<ThermoCloud<ParcelType> > >
96 // Reference to the particle integration schemes
98 //- Temperature integration
99 autoPtr<scalarIntegrationScheme> TIntegrator_;
104 //- Include radiation
110 //- Sensible enthalpy transfer [J/kg]
111 DimensionedField<scalar, volMesh> hsTrans_;
114 // Protected member functions
116 // Cloud evolution functions
132 //- Construct given carrier gas fields
135 const word& cloudName,
136 const volScalarField& rho,
137 const volVectorField& U,
138 const dimensionedVector& g,
140 bool readFields = true
145 virtual ~ThermoCloud();
148 //- Type of parcel the cloud was instantiated for
149 typedef ParcelType parcelType;
156 //- Return the constant properties
157 inline const typename ParcelType::constantProperties&
160 //- Return const access to thermo package
161 inline const basicThermo& carrierThermo() const;
163 //- Return access to thermo package
164 inline basicThermo& carrierThermo();
169 //- Return reference to heat transfer model
170 inline const HeatTransferModel<ThermoCloud<ParcelType> >&
171 heatTransfer() const;
174 // Integration schemes
176 //-Return reference to velocity integration
177 inline const scalarIntegrationScheme& TIntegrator() const;
183 inline bool radiation() const;
190 //- Sensible enthalpy transfer [J/kg]
191 inline DimensionedField<scalar, volMesh>& hsTrans();
193 //- Return enthalpy source [J/kg/m3/s]
194 inline tmp<DimensionedField<scalar, volMesh> > Sh() const;
197 // Radiation - overrides thermoCloud virtual abstract members
199 //- Return tmp equivalent particulate emission
200 inline tmp<volScalarField> Ep() const;
202 //- Return tmp equivalent particulate absorption
203 inline tmp<volScalarField> ap() const;
205 //- Return tmp equivalent particulate scattering factor
206 inline tmp<volScalarField> sigmap() const;
211 //- Print cloud information
215 // Cloud evolution functions
217 //- Check parcel properties
218 void checkParcelProperties
221 const scalar lagrangianDt,
222 const bool fullyDescribed
225 //- Reset the spray source terms
226 void resetSourceTerms();
228 //- Evolve the spray (inject, move)
233 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
235 } // End namespace Foam
237 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
239 #include "ThermoCloudTemplateI.H"
241 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
244 # include "ThermoCloudTemplate.C"
247 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
251 // ************************************************************************* //