30 template<
class CloudType>
38 if ((time0 >= 0.0) && (time0 < duration_))
40 return round(injectorCells_.size()*(time1 - time0)*nParcelsPerSecond_);
49 template<
class CloudType>
58 if ((time0 >= 0.0) && (time0 < duration_))
62 volume += injectors_[i].mDot()/injectors_[i].rho()*(time1 - time0);
72 template<
class CloudType>
81 inputFileName_(this->coeffDict().lookup(
"inputFile")),
82 duration_(
readScalar(this->coeffDict().lookup(
"duration"))),
85 readScalar(this->coeffDict().lookup(
"parcelsPerSecond"))
92 owner.db().time().constant(),
101 injectorCells_.setSize(injectors_.size());
104 this->findCellAtPosition(injectorCells_[i], injectors_[i].x());
108 this->volumeTotal_ = 0.0;
111 this->volumeTotal_ += injectors_[i].mDot()/injectors_[i].rho();
113 this->volumeTotal_ *= duration_;
119 template<
class CloudType>
127 template<
class CloudType>
134 template<
class CloudType>
138 return this->SOI_ + duration_;
142 template<
class CloudType>
146 const label nParcels,
152 label injectorI = parcelI*injectorCells_.size()/nParcels;
154 position = injectors_[injectorI].
x();
155 cellOwner = injectorCells_[injectorI];
159 template<
class CloudType>
163 const label nParcels,
165 typename CloudType::parcelType&
parcel
168 label injectorI = parcelI*injectorCells_.size()/nParcels;
171 parcel.U() = injectors_[injectorI].U();
174 parcel.d() = injectors_[injectorI].d();
177 parcel.rho() = injectors_[injectorI].rho();
180 parcel.T() = injectors_[injectorI].T();
183 parcel.cp() = injectors_[injectorI].cp();
186 parcel.Y() = injectors_[injectorI].Y();
189 parcel.YGas() = injectors_[injectorI].YGas();
192 parcel.YLiquid() = injectors_[injectorI].YLiquid();
195 parcel.YSolid() = injectors_[injectorI].YSolid();
199 template<
class CloudType>
207 template<
class CloudType>