32 template<
class CloudType>
39 if (
sum(nParcelsInjected_) < nParcelsPerInjector_*positions_.size())
41 return positions_.size();
50 template<
class CloudType>
57 if (
sum(nParcelsInjected_) < nParcelsPerInjector_*positions_.size())
59 return this->volumeTotal_/nParcelsPerInjector_;
70 template<
class CloudType>
78 factor_(
readScalar(this->coeffDict().lookup(
"factor"))),
83 this->coeffDict().lookup(
"referenceField")
90 this->coeffDict().lookup(
"thresholdField")
93 positionsFile_(this->coeffDict().lookup(
"positionsFile")),
99 owner.db().time().constant(),
105 injectorCells_(positions_.size()),
108 readLabel(this->coeffDict().lookup(
"parcelsPerInjector"))
110 nParcelsInjected_(positions_.size(), 0),
111 U0_(this->coeffDict().lookup(
"U0")),
112 diameters_(positions_.size()),
117 this->coeffDict().subDict(
"parcelPDF"),
125 diameters_[i] = parcelPDF_->sample();
135 this->findCellAtPosition
146 template<
class CloudType>
153 template<
class CloudType>
160 template<
class CloudType>
167 template<
class CloudType>
177 position = positions_[parcelI];
178 cellOwner = injectorCells_[parcelI];
182 template<
class CloudType>
188 typename CloudType::parcelType&
parcel
195 parcel.d() = diameters_[parcelI];
199 template<
class CloudType>
206 template<
class CloudType>
212 const label cellI = injectorCells_[parcelI];
216 nParcelsInjected_[parcelI] < nParcelsPerInjector_
217 && factor_*referenceField_[cellI] > thresholdField_[cellI]
220 nParcelsInjected_[parcelI]++;