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
26 Foam::multiHoleInjector
36 \*---------------------------------------------------------------------------*/
38 #ifndef multiHoleInjector_H
39 #define multiHoleInjector_H
41 #include "injectorType.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 /*---------------------------------------------------------------------------*\
50 Class multiHoleInjector Declaration
51 \*---------------------------------------------------------------------------*/
53 class multiHoleInjector
60 typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
64 dictionary propsDict_;
66 vector centerPosition_;
70 scalar umbrellaAngle_;
71 scalar nozzleTipDiameter_;
72 List<scalar> angleSpacing_;
78 List<pair> massFlowRateProfile_;
79 List<pair> velocityProfile_;
80 List<pair> injectionPressureProfile_;
81 List<pair> CdProfile_;
83 scalar averageParcelMass_;
84 List<vector> direction_;
85 List<vector> position_;
87 bool pressureIndependentVelocity_;
89 //- two orthogonal vectors that are also orthogonal
90 // to the injection direction
91 List<vector> tangentialInjectionVector1_, tangentialInjectionVector2_;
94 // Private Member Functions
96 //- Disallow default bitwise copy construct
97 multiHoleInjector(const multiHoleInjector&);
99 //- Disallow default bitwise assignment
100 void operator=(const multiHoleInjector&);
102 //- Create two vectors orthonoal to each other
103 // and the injection vector
104 void setTangentialVectors();
106 //- Return the fraction of the total injected liquid
107 scalar fractionOfInjection(const scalar time) const;
112 //- Runtime type information
113 TypeName("multiHoleInjector");
118 //- Construct from components
122 const dictionary& dict
128 ~multiHoleInjector();
133 //- Return number of particles to inject
134 label nParcelsToInject
140 //- Return the injection position
141 const vector position(const label n) const;
143 //- Return the injection position
149 const scalar angleOfWedge,
150 const vector& axisOfSymmetry,
151 const vector& axisOfWedge,
152 const vector& axisOfWedgeNormal,
156 //- Return the number of holes
157 label nHoles() const;
159 //- Return the injector diameter
162 //- Return the injection direction
163 const vector& direction
169 //- Return the mass of the injected particle
175 const scalar angleOfWedge
178 //- Return the mass injected by the injector
181 //- Return the fuel mass fractions of the injected particle
182 const scalarField& X() const;
184 //- Return the temperature profile of the injected particle
185 List<pair> T() const;
187 //- Return the temperature of the injected particle
188 scalar T(const scalar time) const;
190 //- Return the start-of-injection time
193 //- Return the end-of-injection time
196 //- Return the injected liquid mass
197 scalar injectedMass(const scalar t) const;
199 List<pair> massFlowRateProfile() const
201 return massFlowRateProfile_;
204 scalar massFlowRate(const scalar time) const;
206 List<pair> injectionPressureProfile() const
208 return injectionPressureProfile_;
211 scalar injectionPressure(const scalar time) const;
213 List<pair> velocityProfile() const
215 return velocityProfile_;
218 scalar velocity(const scalar time) const;
220 List<pair> CdProfile() const;
221 scalar Cd(const scalar time) const;
223 vector tan1(const label n) const;
224 vector tan2(const label n) const;
228 const liquidMixture& fuel,
229 const scalar referencePressure
232 bool pressureIndependentVelocity() const
234 return pressureIndependentVelocity_;
240 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
242 } // End namespace Foam
244 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
248 // ************************************************************************* //