57#ifndef InjectedParticleInjection_H
58#define InjectedParticleInjection_H
69class injectedParticleCloud;
75template<
class CloudType>
130 TypeName(
"injectedParticleInjection");
175 virtual scalar
volumeToInject(
const scalar time0,
const scalar time1);
184 const label nParcels,
196 const label nParcels,
const CloudType & owner() const
Return const access to the owner cloud.
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Replays an set of particle data based on an injectedParticleCloud, using the assumption of one partic...
void initialise()
Initialise injectors.
const word cloudName_
Name of cloud used to seed the new particles.
virtual autoPtr< InjectionModel< CloudType > > clone() const
Construct and return a clone.
virtual ~InjectedParticleInjection()=default
Destructor.
virtual scalar volumeToInject(const scalar time0, const scalar time1)
Volume of parcels to introduce relative to SOI.
vectorList U_
List of velocity per particle [m/s].
labelList injectorCells_
List of cell label per injector.
virtual label parcelsToInject(const scalar time0, const scalar time1)
Number of parcels to introduce relative to SOI.
void info(Ostream &os)
Write injection info to stream.
vector positionOffset_
Position offset to apply to input positions.
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.
virtual void setProperties(const label parceli, const label nParcels, const scalar time, typename CloudType::parcelType &parcel)
Set the parcel properties.
labelList injectorTetPts_
List of tetPt label per injector.
label currentParticlei_
Index of current particle.
vectorList position_
List of position per particle [m].
Switch ignoreOutOfBounds_
Flag to suppress errors if particle injection site is out-of-bounds.
labelList injectorTetFaces_
List of tetFace label per injector.
TypeName("injectedParticleInjection")
Runtime type information.
scalarList time_
List of injection time per particle [s].
virtual void updateMesh()
Set injector locations when mesh is updated.
virtual bool validInjection(const label parceli)
Return flag to identify whether or not injection of parcelI is.
virtual bool fullyDescribed() const
Flag to identify whether model fully describes the parcel.
scalarList volume_
List of volume per particle [m3].
scalarList diameter_
List of diameter per particle [m].
scalar timeEnd() const
Return the end-of-injection time.
Templated injection model class.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const dictionary & dict() const
Return const access to the cloud dictionary.
const word & modelName() const
Return const access to the name of the sub-model.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.