31 template<
class CloudType>
38 if ((time0 >= 0.0) && (time0 < duration_))
40 return round(injectorCells_.size()*(time1 - time0)*nParcelsPerSecond_);
49 template<
class CloudType>
57 if ((time0 >= 0.0) && (time0 < duration_))
61 volume += injectors_[i].mDot()/injectors_[i].rho()*(time1 - time0);
71 template<
class CloudType>
79 inputFileName_(this->coeffDict().lookup(
"inputFile")),
80 duration_(
readScalar(this->coeffDict().lookup(
"duration"))),
83 readScalar(this->coeffDict().lookup(
"parcelsPerSecond"))
90 owner.db().time().constant(),
99 injectorCells_.setSize(injectors_.size());
102 this->findCellAtPosition(injectorCells_[i], injectors_[i].x());
106 this->volumeTotal_ = 0.0;
109 this->volumeTotal_ += injectors_[i].mDot()/injectors_[i].rho();
111 this->volumeTotal_ *= duration_;
117 template<
class CloudType>
124 template<
class CloudType>
131 template<
class CloudType>
134 return this->SOI_ + duration_;
138 template<
class CloudType>
142 const label nParcels,
148 label injectorI = parcelI*injectorCells_.size()/nParcels;
150 position = injectors_[injectorI].
x();
151 cellOwner = injectorCells_[injectorI];
155 template<
class CloudType>
159 const label nParcels,
161 typename CloudType::parcelType&
parcel
164 label injectorI = parcelI*injectorCells_.size()/nParcels;
167 parcel.U() = injectors_[injectorI].U();
170 parcel.d() = injectors_[injectorI].d();
173 parcel.rho() = injectors_[injectorI].rho();
177 template<
class CloudType>
184 template<
class CloudType>