Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef injectorType_H
00038 #define injectorType_H
00039
00040 #include <OpenFOAM/IOdictionary.H>
00041 #include <OpenFOAM/Time.H>
00042 #include <OpenFOAM/autoPtr.H>
00043 #include <OpenFOAM/runTimeSelectionTables.H>
00044 #include <OpenFOAM/vector.H>
00045 #include <OpenFOAM/scalarField.H>
00046 #include <OpenFOAM/Random.H>
00047 #include <liquidMixture/liquidMixture.H>
00048
00049
00050
00051 namespace Foam
00052 {
00053
00054
00055
00056
00057
00058 class injectorType
00059 {
00060 typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
00061
00062 public:
00063
00064
00065 TypeName("injectorType");
00066
00067
00068
00069 declareRunTimeSelectionTable
00070 (
00071 autoPtr,
00072 injectorType,
00073 dictionary,
00074 (
00075 const Time& t,
00076 const dictionary& dict
00077 ),
00078 (t, dict)
00079 );
00080
00081
00082
00083
00084
00085 injectorType
00086 (
00087 const Time& t,
00088 const dictionary& dict
00089 );
00090
00091
00092
00093
00094 static autoPtr<injectorType> New
00095 (
00096 const Time& t,
00097 const dictionary& dict
00098 );
00099
00100
00101
00102
00103 virtual ~injectorType();
00104
00105
00106
00107
00108
00109 virtual label nParcelsToInject
00110 (
00111 const scalar time0,
00112 const scalar time1
00113 ) const = 0;
00114
00115
00116 virtual const vector position(const label n) const = 0;
00117
00118
00119 virtual vector position
00120 (
00121 const label n,
00122 const scalar time,
00123 const bool twoD,
00124 const scalar angleOfWedge,
00125 const vector& axisOfSymmetry,
00126 const vector& axisOfWedge,
00127 const vector& axisOfWedgeNormal,
00128 Random& rndGen
00129 ) const = 0;
00130
00131
00132 virtual label nHoles() const = 0;
00133
00134
00135 virtual scalar d() const = 0;
00136
00137
00138 virtual const vector& direction
00139 (
00140 const label i,
00141 const scalar time
00142 ) const = 0;
00143
00144
00145 virtual scalar mass
00146 (
00147 const scalar time0,
00148 const scalar time1,
00149 const bool twoD,
00150 const scalar angleOfWedge
00151 ) const = 0;
00152
00153
00154 virtual scalar mass() const = 0;
00155
00156
00157 virtual List<pair> massFlowRateProfile() const = 0;
00158
00159
00160 virtual scalar massFlowRate(const scalar time) const = 0;
00161
00162
00163 virtual List<pair> injectionPressureProfile() const = 0;
00164
00165
00166 virtual scalar injectionPressure(const scalar time) const = 0;
00167
00168
00169 virtual List<pair> velocityProfile() const = 0;
00170
00171
00172 virtual scalar velocity(const scalar time) const = 0;
00173
00174
00175 virtual List<pair> CdProfile() const = 0;
00176
00177
00178 virtual scalar Cd(const scalar time) const = 0;
00179
00180
00181 virtual const scalarField& X() const = 0;
00182
00183
00184 virtual List<pair> T() const = 0;
00185
00186
00187 virtual scalar T(const scalar time) const = 0;
00188
00189
00190 virtual scalar tsoi() const = 0;
00191
00192
00193 virtual scalar teoi() const = 0;
00194
00195 virtual scalar injectedMass(const scalar t) const = 0;
00196
00197 virtual bool pressureIndependentVelocity() const = 0;
00198
00199
00200 virtual vector tan1(const label n) const = 0;
00201
00202
00203 virtual vector tan2(const label n) const = 0;
00204
00205 scalar getTableValue
00206 (
00207 const List<pair>& table,
00208 const scalar value
00209 ) const;
00210
00211 scalar integrateTable
00212 (
00213 const List<pair>& table,
00214 const scalar value
00215 ) const;
00216
00217 scalar integrateTable
00218 (
00219 const List<pair>& table
00220 ) const;
00221
00222 virtual void correctProfiles
00223 (
00224 const liquidMixture& fuel,
00225 const scalar referencePressure
00226 ) = 0;
00227
00228 };
00229
00230
00231
00232
00233 }
00234
00235
00236
00237 #endif
00238
00239