31 template<
class CloudType>
40 inputFileName_(this->coeffDict().
lookup(
"inputFile")),
52 owner.db().time().constant(),
62 duration_ = owner.db().time().userTimeToTime(duration_);
65 injectorCells_.setSize(injectors_.size());
66 injectorTetFaces_.setSize(injectors_.size());
67 injectorTetPts_.setSize(injectors_.size());
72 this->volumeTotal_ = 0.0;
75 this->volumeTotal_ += injectors_[i].mDot()/injectors_[i].rho();
77 this->volumeTotal_ *= duration_;
81 template<
class CloudType>
88 inputFileName_(im.inputFileName_),
89 duration_(im.duration_),
90 parcelsPerSecond_(im.parcelsPerSecond_),
91 randomise_(im.randomise_),
92 injectors_(im.injectors_),
93 injectorCells_(im.injectorCells_),
94 injectorTetFaces_(im.injectorTetFaces_),
95 injectorTetPts_(im.injectorTetPts_)
101 template<
class CloudType>
108 template<
class CloudType>
114 this->findCellAtPosition
117 injectorTetFaces_[i],
125 template<
class CloudType>
128 return this->SOI_ + duration_;
132 template<
class CloudType>
139 if ((time0 >= 0.0) && (time0 < duration_))
141 return floor(injectorCells_.size()*(time1 - time0)*parcelsPerSecond_);
150 template<
class CloudType>
158 if ((time0 >= 0.0) && (time0 < duration_))
162 volume += injectors_[i].mDot()/injectors_[i].rho()*(time1 - time0);
170 template<
class CloudType>
174 const label nParcels,
186 injectorI = rnd.
position<
label>(0, injectorCells_.size() - 1);
190 injectorI = parcelI*injectorCells_.size()/nParcels;
193 position = injectors_[injectorI].
x();
194 cellOwner = injectorCells_[injectorI];
195 tetFaceI = injectorTetFaces_[injectorI];
196 tetPtI = injectorTetPts_[injectorI];
200 template<
class CloudType>
204 const label nParcels,
209 label injectorI = parcelI*injectorCells_.size()/nParcels;
212 parcel.U() = injectors_[injectorI].U();
215 parcel.d() = injectors_[injectorI].d();
218 parcel.rho() = injectors_[injectorI].rho();
221 parcel.T() = injectors_[injectorI].T();
224 parcel.cp() = injectors_[injectorI].cp();
228 template<
class CloudType>
235 template<
class CloudType>