Go to the documentation of this file.
30 template<
class CloudType>
39 inputFileName_(this->coeffDict().
lookup(
"inputFile")),
51 owner.db().time().constant(),
61 duration_ = owner.db().time().userTimeToTime(duration_);
64 injectorCells_.setSize(injectors_.size());
65 injectorTetFaces_.setSize(injectors_.size());
66 injectorTetPts_.setSize(injectors_.size());
71 this->volumeTotal_ = 0.0;
74 this->volumeTotal_ += injectors_[i].mDot()/injectors_[i].rho();
76 this->volumeTotal_ *= duration_;
80 template<
class CloudType>
100 template<
class CloudType>
107 template<
class CloudType>
113 this->findCellAtPosition
116 injectorTetFaces_[i],
124 template<
class CloudType>
127 return this->SOI_ + duration_;
131 template<
class CloudType>
138 if ((time0 >= 0.0) && (time0 < duration_))
140 return floor(injectorCells_.size()*(time1 - time0)*parcelsPerSecond_);
149 template<
class CloudType>
157 if ((time0 >= 0.0) && (time0 < duration_))
161 volume += injectors_[i].mDot()/injectors_[i].rho()*(time1 - time0);
169 template<
class CloudType>
173 const label nParcels,
185 injectorI = rnd.
position<
label>(0, injectorCells_.size() - 1);
189 injectorI = parcelI*injectorCells_.size()/nParcels;
192 position = injectors_[injectorI].
x();
193 cellOwner = injectorCells_[injectorI];
194 tetFaceI = injectorTetFaces_[injectorI];
195 tetPtI = injectorTetPts_[injectorI];
199 template<
class CloudType>
203 const label nParcels,
208 label injectorI = parcelI*injectorCells_.size()/nParcels;
211 parcel.U() = injectors_[injectorI].U();
214 parcel.d() = injectors_[injectorI].d();
217 parcel.rho() = injectors_[injectorI].rho();
220 parcel.T() = injectors_[injectorI].T();
223 parcel.Cp() = injectors_[injectorI].Cp();
226 parcel.Y() = injectors_[injectorI].Y();
230 template<
class CloudType>
237 template<
class CloudType>
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
A class for handling words, derived from string.
virtual scalar volumeToInject(const scalar time0, const scalar time1)
Volume of parcels to introduce relative to SOI.
virtual void updateMesh()
Set injector locations when mesh is updated.
labelList injectorTetFaces_
List of tetFace labels corresoponding to injector positions.
virtual void setProperties(const label parcelI, const label nParcels, const scalar time, typename CloudType::parcelType &parcel)
Set the parcel properties.
#define forAll(list, i)
Loop across all elements in list.
Templated injection model class.
virtual ~ReactingLookupTableInjection()
Destructor.
labelList injectorCells_
List of cell labels corresoponding to injector positions.
ReactingLookupTableInjection(const dictionary &dict, CloudType &owner, const word &modelName)
Construct from dictionary.
Random & rndGen()
Return refernce to the random object.
scalar duration_
Injection duration - common to all injection sources.
reactingParcelInjectionDataIOList injectors_
List of injectors.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const word inputFileName_
Name of file containing injector/parcel data.
Type position(const Type &start, const Type &end)
Return a sample between start and end.
const scalar parcelsPerSecond_
Number of parcels per injector - common to all injection sources.
Templated base class for dsmc cloud.
virtual void setPositionAndCell(const label parcelI, const label nParcels, const scalar time, vector &position, label &cellOwner, label &tetFaceI, label &tetPtI)
Set the injection position and owner cell, tetFace and tetPt.
A list of keyword definitions, which are a keyword followed by any number of values (e....
virtual bool validInjection(const label parcelI)
Return flag to identify whether or not injection of parcelI is.
bool randomise_
Flag to indicate to randomise injection positions.
scalar timeEnd() const
Return the end-of-injection time.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
virtual label parcelsToInject(const scalar time0, const scalar time1)
Number of parcels to introduce relative to SOI.
virtual bool fullyDescribed() const
Flag to identify whether model fully describes the parcel.
labelList injectorTetPts_
List of tetPt labels corresoponding to injector positions.
Particle injection sources read from look-up table. Each row corresponds to an injection site.
stressControl lookup("compactNormalStress") >> compactNormalStress