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 commonRailInjector_H
00038 #define commonRailInjector_H
00039 
00040 #include <dieselSpray/injectorType.H>
00041 #include <OpenFOAM/vector.H>
00042 
00043 
00044 
00045 namespace Foam
00046 {
00047 
00048 
00049 
00050 
00051 
00052 class commonRailInjector
00053 :
00054     public injectorType
00055 {
00056 
00057 private:
00058 
00059     typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
00060 
00061     
00062 
00063         dictionary propsDict_;
00064 
00065         vector position_;
00066         vector direction_;
00067         scalar d_;
00068         scalar mass_;
00069         scalar injectionPressure_;
00070         scalar T_;
00071         label nParcels_;
00072         scalarField X_;
00073         List<pair> massFlowRateProfile_;
00074         List<pair> velocityProfile_;
00075         List<pair> injectionPressureProfile_;
00076         List<pair> CdProfile_;
00077         List<pair> TProfile_;
00078         scalar averageParcelMass_;
00079 
00080         bool pressureIndependentVelocity_;
00081 
00082         
00083         
00084         vector tangentialInjectionVector1_, tangentialInjectionVector2_;
00085 
00086 
00087     
00088 
00089         
00090         commonRailInjector(const commonRailInjector&);
00091 
00092         
00093         void operator=(const commonRailInjector&);
00094 
00095         
00096         
00097         void setTangentialVectors();
00098 
00099         
00100         scalar fractionOfInjection(const scalar time) const;
00101 
00102 
00103 public:
00104 
00105     
00106     TypeName("commonRailInjector");
00107 
00108 
00109     
00110 
00111         
00112         commonRailInjector
00113         (
00114             const Time& t,
00115             const dictionary& dict
00116         );
00117 
00118 
00119     
00120 
00121         ~commonRailInjector();
00122 
00123 
00124     
00125 
00126         
00127         label nParcelsToInject
00128         (
00129             const scalar t0,
00130             const scalar t1
00131         ) const;
00132 
00133         
00134         const vector position(const label n) const;
00135 
00136         
00137         vector position
00138         (
00139             const label n,
00140             const scalar time,
00141             const bool twoD,
00142             const scalar angleOfWedge,
00143             const vector& axisOfSymmetry,
00144             const vector& axisOfWedge,
00145             const vector& axisOfWedgeNormal,
00146             Random& rndGen
00147         ) const;
00148     
00149         
00150         label nHoles() const;
00151 
00152         
00153         scalar d() const;
00154 
00155         
00156         const vector& direction
00157         (
00158             const label i,
00159             const scalar time
00160         ) const;
00161 
00162         
00163         scalar mass
00164         (
00165             const scalar t0,
00166             const scalar t1,
00167             const bool twoD,
00168             const scalar angleOfWedge
00169         ) const;
00170 
00171         
00172         scalar mass() const;
00173 
00174         
00175         const scalarField& X() const;
00176 
00177         
00178         List<pair> T() const;
00179 
00180         
00181         scalar T(const scalar time) const;
00182 
00183         
00184         scalar tsoi() const;
00185 
00186         
00187         scalar teoi() const;
00188 
00189         
00190         scalar injectedMass(const scalar t) const;
00191 
00192         List<pair> massFlowRateProfile() const
00193         {
00194             return massFlowRateProfile_;
00195         }
00196 
00197         scalar massFlowRate(const scalar time) const;
00198 
00199         List<pair> injectionPressureProfile() const
00200         {
00201             return injectionPressureProfile_;
00202         }
00203     
00204         scalar injectionPressure(const scalar time) const;
00205 
00206         List<pair> velocityProfile() const
00207         {
00208             return velocityProfile_;
00209         }
00210         
00211         scalar velocity(const scalar time) const;
00212 
00213         List<pair> CdProfile() const;
00214         scalar Cd(const scalar time) const;
00215 
00216         vector tan1(const label n) const;
00217         vector tan2(const label n) const;
00218 
00219         void correctProfiles
00220         (
00221             const liquidMixture& fuel,
00222             const scalar referencePressure
00223         );
00224 
00225         bool pressureIndependentVelocity() const
00226         {
00227             return pressureIndependentVelocity_;
00228         }
00229 
00230 };
00231 
00232 
00233 
00234 
00235 } 
00236 
00237 
00238 
00239 #endif
00240 
00241