Formatting
[foam-extend-3.2.git] / src / lagrangian / dieselSpray / spray / sprayOps.C
blob5b9404a02ae9c878c119fec7e970d44b36f809d1
1 /*---------------------------------------------------------------------------*\
2   =========                 |
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 -------------------------------------------------------------------------------
8 License
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/>.
24 \*---------------------------------------------------------------------------*/
26 #include "spray.H"
27 #include "atomizationModel.H"
28 #include "breakupModel.H"
29 #include "collisionModel.H"
30 #include "dispersionModel.H"
31 #include "interpolationCellPoint.H"
32 #include "processorPolyPatch.H"
33 #include "mathematicalConstants.H"
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 namespace Foam
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 void spray::evolve()
44     sms_.setSize(rho_.size());
45     shs_.setSize(rho_.size());
46     forAll(srhos_, i)
47     {
48         srhos_[i].setSize(rho_.size());
49     }
51     UInterpolator_ = interpolation<vector>::New(interpolationSchemes_, U_);
53     rhoInterpolator_ = interpolation<scalar>::New(interpolationSchemes_, rho_);
55     pInterpolator_ = interpolation<scalar>::New(interpolationSchemes_, p_);
57     TInterpolator_ = interpolation<scalar>::New(interpolationSchemes_, T_);
59     calculateAmbientPressure();
60     calculateAmbientTemperature();
61     collisions().collideParcels(runTime_.deltaT().value());
62     move();
63     dispersion().disperseParcels();
64     inject();
65     atomizationLoop();
66     breakupLoop();
68     UInterpolator_.clear();
69     rhoInterpolator_.clear();
70     pInterpolator_.clear();
71     TInterpolator_.clear();
75 void spray::move()
77     // Reset Spray Source Terms
78     sms_ = vector::zero;
79     shs_ = 0.0;
80     forAll(srhos_, i)
81     {
82         srhos_[i] = 0.0;
83     }
85     Cloud<parcel>::move(*this);
89 void spray::breakupLoop()
91     forAllIter(spray, *this, elmnt)
92     {
93         // interpolate...
94         vector velocity = UInterpolator().interpolate
95         (
96             elmnt().position(),
97             elmnt().cell()
98         );
100         // liquidCore < 0.5 indicates discrete drops
101         if (elmnt().liquidCore() <= 0.5)
102         {
103             breakup().updateParcelProperties
104             (
105                 elmnt(),
106                 runTime_.deltaT().value(),
107                 velocity,
108                 fuels_
109             );
111             breakup().breakupParcel
112             (
113                 elmnt(),
114                 runTime_.deltaT().value(),
115                 velocity,
116                 fuels_
117             );
118         }
119     }
123 void spray::atomizationLoop()
125     forAllIter(spray, *this, elmnt)
126     {
127         // interpolate...
128         vector velocity = UInterpolator().interpolate
129         (
130             elmnt().position(),
131             elmnt().cell()
132         );
134         // liquidCore > 0.5 indicates a liquid core
135         if (elmnt().liquidCore() > 0.5)
136         {
137             atomization().atomizeParcel
138             (
139                 elmnt(),
140                 runTime_.deltaT().value(),
141                 velocity,
142                 fuels_
143             );
144         }
145     }
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 } // End namespace Foam
153 // ************************************************************************* //