1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
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
13 the Free Software Foundation, either version 3 of the License, or
14 (at your 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, see <http://www.gnu.org/licenses/>.
25 Foam::multiHoleInjector
35 \*---------------------------------------------------------------------------*/
37 #ifndef multiHoleInjector_H
38 #define multiHoleInjector_H
40 #include "injectorType.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 /*---------------------------------------------------------------------------*\
49 Class multiHoleInjector Declaration
50 \*---------------------------------------------------------------------------*/
52 class multiHoleInjector
59 typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
63 dictionary propsDict_;
65 vector centerPosition_;
69 scalar umbrellaAngle_;
70 scalar nozzleTipDiameter_;
71 List<scalar> angleSpacing_;
77 List<pair> massFlowRateProfile_;
78 List<pair> velocityProfile_;
79 List<pair> injectionPressureProfile_;
80 List<pair> CdProfile_;
82 scalar averageParcelMass_;
83 List<vector> direction_;
84 List<vector> position_;
86 bool pressureIndependentVelocity_;
88 //- two orthogonal vectors that are also orthogonal
89 // to the injection direction
90 List<vector> tangentialInjectionVector1_, tangentialInjectionVector2_;
93 // Private Member Functions
95 //- Disallow default bitwise copy construct
96 multiHoleInjector(const multiHoleInjector&);
98 //- Disallow default bitwise assignment
99 void operator=(const multiHoleInjector&);
101 //- Create two vectors orthonoal to each other
102 // and the injection vector
103 void setTangentialVectors();
105 //- Return the fraction of the total injected liquid
106 scalar fractionOfInjection(const scalar time) const;
111 //- Runtime type information
112 TypeName("multiHoleInjector");
117 //- Construct from components
121 const dictionary& dict
126 virtual ~multiHoleInjector();
131 //- Return number of particles to inject
132 label nParcelsToInject
138 //- Return the injection position
139 const vector position(const label n) const;
141 //- Return the injection position
147 const scalar angleOfWedge,
148 const vector& axisOfSymmetry,
149 const vector& axisOfWedge,
150 const vector& axisOfWedgeNormal,
154 //- Return the number of holes
155 label nHoles() const;
157 //- Return the injector diameter
160 //- Return the injection direction
161 const vector& direction
167 //- Return the mass of the injected particle
173 const scalar angleOfWedge
176 //- Return the mass injected by the injector
179 //- Return the fuel mass fractions of the injected particle
180 const scalarField& X() const;
182 //- Return the temperature profile of the injected particle
183 List<pair> T() const;
185 //- Return the temperature of the injected particle
186 scalar T(const scalar time) const;
188 //- Return the start-of-injection time
191 //- Return the end-of-injection time
194 //- Return the injected liquid mass
195 scalar injectedMass(const scalar t) const;
197 List<pair> massFlowRateProfile() const
199 return massFlowRateProfile_;
202 scalar massFlowRate(const scalar time) const;
204 List<pair> injectionPressureProfile() const
206 return injectionPressureProfile_;
209 scalar injectionPressure(const scalar time) const;
211 List<pair> velocityProfile() const
213 return velocityProfile_;
216 scalar velocity(const scalar time) const;
218 List<pair> CdProfile() const;
219 scalar Cd(const scalar time) const;
221 vector tan1(const label n) const;
222 vector tan2(const label n) const;
226 const liquidMixtureProperties& fuel,
227 const scalar referencePressure
230 bool pressureIndependentVelocity() const
232 return pressureIndependentVelocity_;
237 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
239 } // End namespace Foam
241 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
245 // ************************************************************************* //