Interrogates an injectedParticleCloud to convert the raw particle data into a set of 'binned' injectors. More...
#include <InjectedParticleDistributionInjection.H>


Public Member Functions | |
| TypeName ("injectedParticleDistributionInjection") | |
| Runtime type information. | |
| InjectedParticleDistributionInjection (const dictionary &dict, CloudType &owner, const word &modelName) | |
| Construct from dictionary. | |
| InjectedParticleDistributionInjection (const InjectedParticleDistributionInjection< CloudType > &im) | |
| Construct copy. | |
| virtual autoPtr< InjectionModel< CloudType > > | clone () const |
| Construct and return a clone. | |
| virtual | ~InjectedParticleDistributionInjection () |
| Destructor. | |
| virtual void | updateMesh () |
| Set injector locations when mesh is updated. | |
| scalar | timeEnd () const |
| Return the end-of-injection time. | |
| virtual label | parcelsToInject (const scalar time0, const scalar time1) |
| Number of parcels to introduce relative to SOI. | |
| virtual scalar | volumeToInject (const scalar time0, const scalar time1) |
| Volume of parcels to introduce relative to SOI. | |
| 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. | |
| virtual bool | fullyDescribed () const |
| Flag to identify whether model fully describes the parcel. | |
| virtual bool | validInjection (const label parcelI) |
| Return flag to identify whether or not injection of parcelI is. | |
| void | info () |
| Write injection info. | |
| Public Member Functions inherited from InjectionModel< CloudType > | |
| TypeName ("injectionModel") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, InjectionModel, dictionary,(const dictionary &dict, CloudType &owner, const word &modelType),(dict, owner, modelType)) | |
| Declare runtime constructor selection table. | |
| InjectionModel (CloudType &owner) | |
| Construct null from owner. | |
| InjectionModel (const dictionary &dict, CloudType &owner, const word &modelName, const word &modelType) | |
| Construct from dictionary. | |
| InjectionModel (const InjectionModel< CloudType > &im) | |
| Construct copy. | |
| virtual | ~InjectionModel ()=default |
| Destructor. | |
| scalar | timeStart () const |
| Return the start-of-injection time. | |
| scalar | volumeTotal () const |
| Return the total volume to be injected across the event. | |
| scalar | massTotal () const |
| Return mass of particles to introduce. | |
| scalar | massInjected () const |
| Return mass of particles injected (cumulative). | |
| label | injectorID () const |
| Return injectorID. | |
| virtual scalar | averageParcelMass () |
| Return the average parcel mass over the injection period. | |
| label | nInjections () const |
| Return the number of injections. | |
| label | parcelsAddedTotal () const |
| Return the total number parcels added. | |
| template<class TrackCloudType> | |
| void | inject (TrackCloudType &cloud, typename CloudType::parcelType::trackingData &td) |
| Main injection loop. | |
| template<class TrackCloudType> | |
| void | injectSteadyState (TrackCloudType &cloud, typename CloudType::parcelType::trackingData &td, const scalar trackTime) |
| Main injection loop - steady-state. | |
| Public Member Functions inherited from CloudSubModelBase< CloudType > | |
| CloudSubModelBase (CloudType &owner) | |
| Construct null from owner cloud. | |
| CloudSubModelBase (CloudType &owner, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs") | |
| Construct from owner cloud without name. | |
| CloudSubModelBase (const word &modelName, CloudType &owner, const dictionary &dict, const word &baseName, const word &modelType) | |
| Construct from owner cloud with name. | |
| CloudSubModelBase (const CloudSubModelBase< CloudType > &smb) | |
| Construct as copy. | |
| virtual | ~CloudSubModelBase ()=default |
| Destructor. | |
| const CloudType & | owner () const |
| Return const access to the owner cloud. | |
| virtual bool | writeTime () const |
| Flag to indicate when to write a property. | |
| virtual fileName | localPath () const |
| Output directory. | |
| CloudType & | owner () |
| Return non-const access to the owner cloud for manipulation. | |
| virtual void | write (Ostream &os) const |
| Write to os. | |
| Public Member Functions inherited from subModelBase | |
| subModelBase (dictionary &properties) | |
| Construct null. | |
| subModelBase (dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs") | |
| Construct from components without name. | |
| subModelBase (const word &modelName, dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType) | |
| Construct from components with name. | |
| subModelBase (const subModelBase &smb) | |
| Construct as copy. | |
| virtual | ~subModelBase ()=default |
| Destructor. | |
| const word & | modelName () const |
| Return const access to the name of the sub-model. | |
| const dictionary & | dict () const |
| Return const access to the cloud dictionary. | |
| const word & | baseName () const |
| Return const access to the base name of the sub-model. | |
| const word & | modelType () const |
| Return const access to the sub-model type. | |
| const dictionary & | coeffDict () const |
| Return const access to the coefficients dictionary. | |
| const dictionary & | properties () const |
| Return const access to the properties dictionary. | |
| virtual bool | defaultCoeffs (const bool printMsg) const |
| Returns true if defaultCoeffs is true and outputs on printMsg. | |
| virtual bool | active () const |
| Return the model 'active' status - default active = true. | |
| virtual void | cacheFields (const bool store) |
| Cache dependent sub-model fields. | |
| template<class Type> | |
| Type | getBaseProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve generic property from the base model. | |
| template<class Type> | |
| void | getBaseProperty (const word &entryName, Type &value) const |
| Retrieve generic property from the base model. | |
| template<class Type> | |
| void | setBaseProperty (const word &entryName, const Type &value) |
| Add generic property to the base model. | |
| bool | getModelDict (const word &entryName, dictionary &dict) const |
| Retrieve dictionary, return true if set. | |
| template<class Type> | |
| bool | getModelProperty (const word &entryName, Type &value) const |
| Retrieve generic property from the sub-model. | |
| template<class Type> | |
| Type | getModelProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve generic property from the sub-model. | |
| template<class Type> | |
| void | setModelProperty (const word &entryName, const Type &value) |
| Add generic property to the sub-model. | |
Protected Member Functions | |
| void | initialise () |
| Initialise injectors. | |
| Protected Member Functions inherited from InjectionModel< CloudType > | |
| virtual bool | prepareForNextTimeStep (const scalar time, label &newParcels, scalar &newVolumeFraction) |
| Determine properties for next time step/injection interval. | |
| virtual bool | findCellAtPosition (label &celli, label &tetFacei, label &tetPti, vector &position, bool errorOnNotFound=true) |
| Find the cell that contains the supplied position. | |
| virtual scalar | setNumberOfParticles (const label parcels, const scalar volumeFraction, const scalar diameter, const scalar rho) |
| Set number of particles to inject given parcel properties. | |
| virtual void | postInjectCheck (const label parcelsAdded, const scalar massAdded) |
| Post injection checks. | |
| Protected Member Functions inherited from subModelBase | |
| bool | inLine () const |
| Flag to indicate whether data is/was read in-line. | |
Protected Attributes | |
| const word | cloudName_ |
| Name of cloud used to seed the new particles. | |
| scalarList | startTime_ |
| List of start time per injector. | |
| scalarList | endTime_ |
| List of end time per injector. | |
| List< vectorList > | position_ |
| List of position per injector. | |
| vector | positionOffset_ |
| Position offset to apply to input positions. | |
| scalarList | volumeFlowRate_ |
| List of volume flow rate per injector [m3/s]. | |
| List< vectorList > | U_ |
| List of parcel velocity per injector. | |
| scalar | binWidth_ |
| Bin width when generating particle distributions. | |
| PtrList< distributionModels::general > | sizeDistribution_ |
| List of size distribution model per injector. | |
| scalar | parcelsPerInjector_ |
| Target number of parcels to inject per injector. | |
| label | resampleSize_ |
| Resample size. | |
| bool | applyDistributionMassTotal_ |
| Flag to apply mass calculated from distribution instead of. | |
| Switch | ignoreOutOfBounds_ |
| Flag to suppress errors if particle injection site is out-of-bounds. | |
| label | nParcelsInjected_ |
| Running total of number of parcels injected. | |
| label | nParcelsInjected0_ |
| Number of parcels injected in last step (local proc only). | |
| label | currentInjectori_ |
| Current injector. | |
| label | currentSamplei_ |
| Current sample. | |
| Protected Attributes inherited from InjectionModel< CloudType > | |
| scalar | SOI_ |
| Start of injection [s]. | |
| scalar | volumeTotal_ |
| Total volume of particles introduced by this injector [m^3] Note: scaled to ensure massTotal is achieved. | |
| scalar | massTotal_ |
| Total mass to inject [kg]. | |
| autoPtr< Function1< scalar > > | massFlowRate_ |
| Mass flow rate profile for steady calculations. | |
| scalar | massInjected_ |
| Total mass injected to date [kg]. | |
| label | nInjections_ |
| Number of injections counter. | |
| label | parcelsAddedTotal_ |
| Running counter of total number of parcels added. | |
| parcelBasis | parcelBasis_ |
| Parcel basis enumeration. | |
| scalar | nParticleFixed_ |
| nParticle to assign to parcels when the 'fixed' basis is selected | |
| scalar | time0_ |
| Continuous phase time at start of injection time step [s]. | |
| scalar | timeStep0_ |
| Time at start of injection time step [s]. | |
| scalar | minParticlesPerParcel_ |
| Minimum number of particles used to represent each parcel default = 1. | |
| scalar | delayedVolume_ |
| Volume that should have been injected, but would lead to less than minParticlesPerParcel_ particle per parcel. | |
| label | injectorID_ |
| Optional injector ID. | |
| bool | ignoreOutOfBounds_ |
| Optional flag to indicate that injections attempted outside the mesh should be ignored. | |
| Protected Attributes inherited from CloudSubModelBase< CloudType > | |
| CloudType & | owner_ |
| Reference to the cloud. | |
| Protected Attributes inherited from subModelBase | |
| const word | modelName_ |
| Name of the sub-model. | |
| dictionary & | properties_ |
| Reference to properties dictionary e.g. for restart. | |
| const dictionary | dict_ |
| Copy of dictionary used during construction. | |
| const word | baseName_ |
| Name of the sub-model base class. | |
| const word | modelType_ |
| Type of the sub-model. | |
| const dictionary | coeffDict_ |
| Coefficients dictionary. | |
Additional Inherited Members | |
| Public Types inherited from InjectionModel< CloudType > | |
| enum | parcelBasis { pbNumber , pbMass , pbFixed } |
| Parcel basis representation options i.e constant number of particles OR constant mass per parcel. More... | |
| typedef CloudType::parcelType | parcelType |
| Convenience typedef for parcelType. | |
| Public Types inherited from CloudSubModelBase< CloudType > | |
| typedef CloudType | cloudType |
| Type of cloud this model was instantiated for. | |
| Static Public Member Functions inherited from InjectionModel< CloudType > | |
| static autoPtr< InjectionModel< CloudType > > | New (const dictionary &dict, CloudType &owner) |
| Selector with lookup from dictionary. | |
| static autoPtr< InjectionModel< CloudType > > | New (const dictionary &dict, const word &modelName, const word &modelType, CloudType &owner) |
| Selector with name and type. | |
| Public Attributes inherited from subModelBase | |
| bool | log |
| Flag to write log into Info. | |
Interrogates an injectedParticleCloud to convert the raw particle data into a set of 'binned' injectors.
The bins are set according to the particle tag property, from which:
general distributions with a user-specified bin widthThe mass to inject can be set according to the raw input data mass total by using the applyDistributionMassTotal switch
model1
{
type injectedParticleDistributionInjection;
SOI 0;
parcelBasisType mass;
cloud eulerianParticleCloud;
positionOffset (-0.025 2 -0.025);
binWidth 0.1e-3;
parcelsPerInjector 500;
resampleSize 100; // optional
applyDistributionMassTotal yes;
// Placeholder only when using applyDistributionMassTotal
massTotal 0;
}
Definition at line 90 of file InjectedParticleDistributionInjection.H.
| InjectedParticleDistributionInjection | ( | const dictionary & | dict, |
| CloudType & | owner, | ||
| const word & | modelName ) |
Construct from dictionary.
Definition at line 223 of file InjectedParticleDistributionInjection.C.
References applyDistributionMassTotal_, binWidth_, cloudName_, subModelBase::coeffDict(), currentInjectori_, currentSamplei_, subModelBase::dict(), endTime_, subModelBase::getModelProperty(), Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, ignoreOutOfBounds_, InjectionModel< CloudType >::InjectionModel(), subModelBase::modelName(), nParcelsInjected0_, nParcelsInjected_, CloudSubModelBase< CloudType >::owner(), InjectionModel< CloudType >::parcelsAddedTotal(), parcelsPerInjector_, position_, positionOffset_, resampleSize_, sizeDistribution_, startTime_, U_, and volumeFlowRate_.
Referenced by clone(), InjectedParticleDistributionInjection(), and TypeName().


| InjectedParticleDistributionInjection | ( | const InjectedParticleDistributionInjection< CloudType > & | im | ) |
Construct copy.
Definition at line 299 of file InjectedParticleDistributionInjection.C.
References applyDistributionMassTotal_, binWidth_, cloudName_, currentInjectori_, currentSamplei_, endTime_, forAll, ignoreOutOfBounds_, InjectedParticleDistributionInjection(), InjectionModel< CloudType >::InjectionModel(), nParcelsInjected0_, nParcelsInjected_, parcelsPerInjector_, position_, positionOffset_, resampleSize_, sizeDistribution_, startTime_, U_, and volumeFlowRate_.

|
virtual |
Destructor.
Definition at line 344 of file InjectedParticleDistributionInjection.C.
|
protected |
Initialise injectors.
Definition at line 31 of file InjectedParticleDistributionInjection.C.
References Pstream::allGatherList(), List< T >::append(), binWidth_, cloudName_, Foam::ListListOps::combine(), Foam::endl(), endTime_, forAll, Random::globalPosition(), Foam::Info, Foam::max(), mesh, Foam::min(), UPstream::myProcNo(), UPstream::nProcs(), CloudSubModelBase< CloudType >::owner(), p, UPstream::parRun(), Foam::constant::mathematical::pi(), position_, positionOffset_, Foam::pow3(), resampleSize_, rndGen, HashTable< T, Key, Hash >::size(), UList< T >::size(), sizeDistribution_, startTime_, List< T >::transfer(), U, U_, volumeFlowRate_, and InjectionModel< CloudType >::volumeTotal_.

| TypeName | ( | "injectedParticleDistributionInjection" | ) |
Runtime type information.
References subModelBase::dict(), InjectedParticleDistributionInjection(), subModelBase::modelName(), and CloudSubModelBase< CloudType >::owner().

|
inlinevirtual |
Construct and return a clone.
Implements InjectionModel< CloudType >.
Definition at line 225 of file InjectedParticleDistributionInjection.H.
References InjectedParticleDistributionInjection().

|
virtual |
Set injector locations when mesh is updated.
Reimplemented from InjectionModel< CloudType >.
Definition at line 352 of file InjectedParticleDistributionInjection.C.
|
virtual |
Return the end-of-injection time.
Implements InjectionModel< CloudType >.
Definition at line 358 of file InjectedParticleDistributionInjection.C.
References endTime_, and Foam::max().

|
virtual |
Number of parcels to introduce relative to SOI.
Implements InjectionModel< CloudType >.
Definition at line 366 of file InjectedParticleDistributionInjection.C.
References endTime_, forAll, Foam::min(), nParcelsInjected0_, nParcelsInjected_, parcelsPerInjector_, Foam::returnReduce(), startTime_, and volumeFlowRate_.

|
virtual |
Volume of parcels to introduce relative to SOI.
Implements InjectionModel< CloudType >.
Definition at line 408 of file InjectedParticleDistributionInjection.C.
References endTime_, forAll, Foam::min(), startTime_, and volumeFlowRate_.

|
virtual |
Set the injection position and owner cell, tetFace and tetPt.
Implements InjectionModel< CloudType >.
Definition at line 429 of file InjectedParticleDistributionInjection.C.
References currentInjectori_, currentSamplei_, InjectionModel< CloudType >::findCellAtPosition(), Random::globalPosition(), CloudSubModelBase< CloudType >::owner(), position_, and resampleSize_.

|
virtual |
Set the parcel properties.
Implements InjectionModel< CloudType >.
Definition at line 458 of file InjectedParticleDistributionInjection.C.
References currentInjectori_, currentSamplei_, nParcelsInjected0_, sizeDistribution_, DSMCParcel< ParcelType >::U(), and U_.

|
virtual |
Flag to identify whether model fully describes the parcel.
Implements InjectionModel< CloudType >.
Definition at line 480 of file InjectedParticleDistributionInjection.C.
|
virtual |
Return flag to identify whether or not injection of parcelI is.
permitted
Implements InjectionModel< CloudType >.
Definition at line 487 of file InjectedParticleDistributionInjection.C.
|
virtual |
Write injection info.
Reimplemented from InjectionModel< CloudType >.
Definition at line 497 of file InjectedParticleDistributionInjection.C.
References dict, subModelBase::dict(), dictName(), endTime_, forAll, InjectionModel< CloudType >::info(), Foam::name(), position_, subModelBase::setModelProperty(), sizeDistribution_, startTime_, U_, volumeFlowRate_, general::writeDict(), and CloudSubModelBase< CloudType >::writeTime().

Name of cloud used to seed the new particles.
Definition at line 101 of file InjectedParticleDistributionInjection.H.
Referenced by initialise(), InjectedParticleDistributionInjection(), and InjectedParticleDistributionInjection().
|
protected |
List of start time per injector.
Definition at line 106 of file InjectedParticleDistributionInjection.H.
Referenced by info(), initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), parcelsToInject(), and volumeToInject().
|
protected |
List of end time per injector.
Definition at line 111 of file InjectedParticleDistributionInjection.H.
Referenced by info(), initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), parcelsToInject(), timeEnd(), and volumeToInject().
|
protected |
List of position per injector.
Definition at line 116 of file InjectedParticleDistributionInjection.H.
Referenced by info(), initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), and setPositionAndCell().
Position offset to apply to input positions.
Definition at line 121 of file InjectedParticleDistributionInjection.H.
Referenced by initialise(), InjectedParticleDistributionInjection(), and InjectedParticleDistributionInjection().
|
protected |
List of volume flow rate per injector [m3/s].
Definition at line 126 of file InjectedParticleDistributionInjection.H.
Referenced by info(), initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), parcelsToInject(), and volumeToInject().
|
protected |
List of parcel velocity per injector.
Definition at line 131 of file InjectedParticleDistributionInjection.H.
Referenced by info(), initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), and setProperties().
|
protected |
Bin width when generating particle distributions.
Definition at line 136 of file InjectedParticleDistributionInjection.H.
Referenced by initialise(), InjectedParticleDistributionInjection(), and InjectedParticleDistributionInjection().
|
protected |
List of size distribution model per injector.
Definition at line 141 of file InjectedParticleDistributionInjection.H.
Referenced by info(), initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), and setProperties().
|
protected |
Target number of parcels to inject per injector.
Definition at line 146 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), and parcelsToInject().
|
protected |
Resample size.
Definition at line 151 of file InjectedParticleDistributionInjection.H.
Referenced by initialise(), InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), and setPositionAndCell().
|
protected |
Flag to apply mass calculated from distribution instead of.
InjectionModel massTotal_
Definition at line 158 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), and InjectedParticleDistributionInjection().
Flag to suppress errors if particle injection site is out-of-bounds.
Definition at line 163 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), and InjectedParticleDistributionInjection().
|
protected |
Running total of number of parcels injected.
Definition at line 168 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), and parcelsToInject().
|
protected |
Number of parcels injected in last step (local proc only).
Definition at line 173 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), parcelsToInject(), and setProperties().
|
protected |
Current injector.
Definition at line 178 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), setPositionAndCell(), and setProperties().
|
protected |
Current sample.
Definition at line 183 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection(), InjectedParticleDistributionInjection(), setPositionAndCell(), and setProperties().