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 #ifndef engineValve_H
00036 #define engineValve_H
00037
00038 #include <OpenFOAM/word.H>
00039 #include <meshTools/coordinateSystem.H>
00040 #include <OpenFOAM/polyPatchID.H>
00041 #include <OpenFOAM/graph.H>
00042
00043
00044
00045 namespace Foam
00046 {
00047
00048
00049 class polyMesh;
00050 class engineTime;
00051
00052
00053
00054
00055
00056 class engineValve
00057 {
00058
00059
00060
00061 word name_;
00062
00063
00064 const polyMesh& mesh_;
00065
00066
00067 const engineTime& engineDB_;
00068
00069
00070 autoPtr<coordinateSystem> csPtr_;
00071
00072
00073
00074
00075
00076 polyPatchID bottomPatch_;
00077
00078
00079 polyPatchID poppetPatch_;
00080
00081
00082 polyPatchID stemPatch_;
00083
00084
00085 polyPatchID curtainInPortPatch_;
00086
00087
00088 polyPatchID curtainInCylinderPatch_;
00089
00090
00091 polyPatchID detachInCylinderPatch_;
00092
00093
00094 polyPatchID detachInPortPatch_;
00095
00096
00097 labelList detachFaces_;
00098
00099
00100
00101
00102
00103 graph liftProfile_;
00104
00105
00106 scalar liftProfileStart_;
00107
00108
00109 scalar liftProfileEnd_;
00110
00111
00112 const scalar minLift_;
00113
00114
00115
00116
00117
00118 const scalar minTopLayer_;
00119
00120
00121 const scalar maxTopLayer_;
00122
00123
00124 const scalar minBottomLayer_;
00125
00126
00127 const scalar maxBottomLayer_;
00128
00129
00130
00131 const scalar diameter_;
00132
00133
00134
00135
00136
00137 engineValve(const engineValve&);
00138
00139
00140 void operator=(const engineValve&);
00141
00142
00143
00144 scalar adjustCrankAngle(const scalar theta) const;
00145
00146 public:
00147
00148
00149
00150
00151
00152
00153
00154 engineValve
00155 (
00156 const word& name,
00157 const polyMesh& mesh,
00158 const autoPtr<coordinateSystem>& valveCS,
00159 const word& bottomPatchName,
00160 const word& poppetPatchName,
00161 const word& stemPatchName,
00162 const word& curtainInPortPatchName,
00163 const word& curtainInCylinderPatchName,
00164 const word& detachInCylinderPatchName,
00165 const word& detachInPortPatchName,
00166 const labelList& detachFaces,
00167 const graph& liftProfile,
00168 const scalar minLift,
00169 const scalar minTopLayer,
00170 const scalar maxTopLayer,
00171 const scalar minBottomLayer,
00172 const scalar maxBottomLayer,
00173 const scalar diameter
00174
00175 );
00176
00177
00178 engineValve
00179 (
00180 const word& name,
00181 const polyMesh& mesh,
00182 const dictionary& dict
00183 );
00184
00185
00186
00187
00188
00189
00190
00191
00192 const word& name() const
00193 {
00194 return name_;
00195 }
00196
00197
00198 const coordinateSystem& cs() const
00199 {
00200 return csPtr_();
00201 }
00202
00203
00204 const graph& liftProfile() const
00205 {
00206 return liftProfile_;
00207 }
00208
00209
00210 scalar diameter() const
00211 {
00212 return diameter_;
00213 }
00214
00215
00216
00217
00218
00219 const polyPatchID& bottomPatchID() const
00220 {
00221 return bottomPatch_;
00222 }
00223
00224
00225 const polyPatchID& poppetPatchID() const
00226 {
00227 return poppetPatch_;
00228 }
00229
00230
00231 const polyPatchID& stemPatchID() const
00232 {
00233 return stemPatch_;
00234 }
00235
00236
00237 const polyPatchID& curtainInCylinderPatchID() const
00238 {
00239 return curtainInCylinderPatch_;
00240 }
00241
00242
00243 const polyPatchID& curtainInPortPatchID() const
00244 {
00245 return curtainInPortPatch_;
00246 }
00247
00248
00249
00250 const polyPatchID& detachInCylinderPatchID() const
00251 {
00252 return detachInCylinderPatch_;
00253 }
00254
00255
00256 const polyPatchID& detachInPortPatchID() const
00257 {
00258 return detachInPortPatch_;
00259 }
00260
00261
00262 const labelList& detachFaces() const
00263 {
00264 return detachFaces_;
00265 }
00266
00267
00268
00269
00270 scalar minTopLayer() const
00271 {
00272 return minTopLayer_;
00273 }
00274
00275 scalar maxTopLayer() const
00276 {
00277 return maxTopLayer_;
00278 }
00279
00280 scalar minBottomLayer() const
00281 {
00282 return minBottomLayer_;
00283 }
00284
00285 scalar maxBottomLayer() const
00286 {
00287 return maxBottomLayer_;
00288 }
00289
00290
00291
00292
00293
00294 scalar lift(const scalar theta) const;
00295
00296
00297 bool isOpen() const;
00298
00299
00300 scalar curLift() const;
00301
00302
00303 scalar curVelocity() const;
00304
00305
00306
00307 labelList movingPatchIDs() const;
00308
00309
00310
00311 void writeDict(Ostream&) const;
00312 };
00313
00314
00315
00316
00317 }
00318
00319
00320
00321 #endif
00322
00323