1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright held by original author
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM 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 2 of the License, or (at your
14 option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
28 #include "atomizationModel.H"
29 #include "breakupModel.H"
30 #include "collisionModel.H"
31 #include "dispersionModel.H"
32 #include "interpolationCellPoint.H"
33 #include "processorPolyPatch.H"
34 #include "mathematicalConstants.H"
36 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 sms_.setSize(rho_.size());
46 shs_.setSize(rho_.size());
49 srhos_[i].setSize(rho_.size());
52 UInterpolator_ = interpolation<vector>::New(interpolationSchemes_, U_);
54 rhoInterpolator_ = interpolation<scalar>::New(interpolationSchemes_, rho_);
56 pInterpolator_ = interpolation<scalar>::New(interpolationSchemes_, p_);
58 TInterpolator_ = interpolation<scalar>::New(interpolationSchemes_, T_);
60 calculateAmbientPressure();
61 calculateAmbientTemperature();
62 collisions().collideParcels(runTime_.deltaT().value());
64 dispersion().disperseParcels();
69 UInterpolator_.clear();
70 rhoInterpolator_.clear();
71 pInterpolator_.clear();
72 TInterpolator_.clear();
78 // Reset Spray Source Terms
86 Cloud<parcel>::move(*this);
90 void spray::breakupLoop()
92 forAllIter(spray, *this, elmnt)
95 vector velocity = UInterpolator().interpolate
101 // liquidCore < 0.5 indicates discrete drops
102 if (elmnt().liquidCore() <= 0.5)
104 breakup().updateParcelProperties
107 runTime_.deltaT().value(),
112 breakup().breakupParcel
115 runTime_.deltaT().value(),
124 void spray::atomizationLoop()
126 forAllIter(spray, *this, elmnt)
129 vector velocity = UInterpolator().interpolate
135 // liquidCore > 0.5 indicates a liquid core
136 if (elmnt().liquidCore() > 0.5)
138 atomization().atomizeParcel
141 runTime_.deltaT().value(),
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 } // End namespace Foam
154 // ************************************************************************* //