Interrogates an injectedParticleCloud to convert the raw particle data into a set of 'binned' injectors. More...
Public Member Functions | |
TypeName ("injectedParticleDistributionInjection") | |
Runtime type information. More... | |
InjectedParticleDistributionInjection (const dictionary &dict, CloudType &owner, const word &modelName) | |
Construct from dictionary. More... | |
InjectedParticleDistributionInjection (const InjectedParticleDistributionInjection< CloudType > &im) | |
Construct copy. More... | |
virtual autoPtr< InjectionModel< CloudType > > | clone () const |
Construct and return a clone. More... | |
virtual | ~InjectedParticleDistributionInjection () |
Destructor. More... | |
virtual void | updateMesh () |
Set injector locations when mesh is updated. More... | |
scalar | timeEnd () const |
Return the end-of-injection time. More... | |
virtual label | parcelsToInject (const scalar time0, const scalar time1) |
Number of parcels to introduce relative to SOI. More... | |
virtual scalar | volumeToInject (const scalar time0, const scalar time1) |
Volume of parcels to introduce relative to SOI. More... | |
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. More... | |
virtual void | setProperties (const label parcelI, const label nParcels, const scalar time, typename CloudType::parcelType &parcel) |
Set the parcel properties. More... | |
virtual bool | fullyDescribed () const |
Flag to identify whether model fully describes the parcel. More... | |
virtual bool | validInjection (const label parcelI) |
Return flag to identify whether or not injection of parcelI is. More... | |
void | info () |
Write injection info. More... | |
Public Member Functions inherited from InjectionModel< CloudType > | |
TypeName ("injectionModel") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, InjectionModel, dictionary,(const dictionary &dict, CloudType &owner, const word &modelType),(dict, owner, modelType)) | |
Declare runtime constructor selection table. More... | |
InjectionModel (CloudType &owner) | |
Construct null from owner. More... | |
InjectionModel (const dictionary &dict, CloudType &owner, const word &modelName, const word &modelType) | |
Construct from dictionary. More... | |
InjectionModel (const InjectionModel< CloudType > &im) | |
Construct copy. More... | |
virtual | ~InjectionModel ()=default |
Destructor. More... | |
scalar | timeStart () const |
Return the start-of-injection time. More... | |
scalar | volumeTotal () const |
Return the total volume to be injected across the event. More... | |
scalar | massTotal () const |
Return mass of particles to introduce. More... | |
scalar | massInjected () const |
Return mass of particles injected (cumulative) More... | |
label | injectorID () const |
Return injectorID. More... | |
virtual scalar | averageParcelMass () |
Return the average parcel mass over the injection period. More... | |
label | nInjections () const |
Return the number of injections. More... | |
label | parcelsAddedTotal () const |
Return the total number parcels added. More... | |
template<class TrackCloudType > | |
void | inject (TrackCloudType &cloud, typename CloudType::parcelType::trackingData &td) |
Main injection loop. More... | |
template<class TrackCloudType > | |
void | injectSteadyState (TrackCloudType &cloud, typename CloudType::parcelType::trackingData &td, const scalar trackTime) |
Main injection loop - steady-state. More... | |
Public Member Functions inherited from CloudSubModelBase< CloudType > | |
CloudSubModelBase (CloudType &owner) | |
Construct null from owner cloud. More... | |
CloudSubModelBase (CloudType &owner, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs") | |
Construct from owner cloud without name. More... | |
CloudSubModelBase (const word &modelName, CloudType &owner, const dictionary &dict, const word &baseName, const word &modelType) | |
Construct from owner cloud with name. More... | |
CloudSubModelBase (const CloudSubModelBase< CloudType > &smb) | |
Construct as copy. More... | |
virtual | ~CloudSubModelBase ()=default |
Destructor. More... | |
const CloudType & | owner () const |
Return const access to the owner cloud. More... | |
virtual bool | writeTime () const |
Flag to indicate when to write a property. More... | |
virtual fileName | localPath () const |
Output directory. More... | |
CloudType & | owner () |
Return non-const access to the owner cloud for manipulation. More... | |
virtual void | write (Ostream &os) const |
Write to os. More... | |
Public Member Functions inherited from subModelBase | |
subModelBase (dictionary &properties) | |
Construct null. More... | |
subModelBase (dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType, const word &dictExt="Coeffs") | |
Construct from components without name. More... | |
subModelBase (const word &modelName, dictionary &properties, const dictionary &dict, const word &baseName, const word &modelType) | |
Construct from components with name. More... | |
subModelBase (const subModelBase &smb) | |
Construct as copy. More... | |
virtual | ~subModelBase ()=default |
Destructor. More... | |
const word & | modelName () const |
Return const access to the name of the sub-model. More... | |
const dictionary & | dict () const |
Return const access to the cloud dictionary. More... | |
const word & | baseName () const |
Return const access to the base name of the sub-model. More... | |
const word & | modelType () const |
Return const access to the sub-model type. More... | |
const dictionary & | coeffDict () const |
Return const access to the coefficients dictionary. More... | |
const dictionary & | properties () const |
Return const access to the properties dictionary. More... | |
virtual bool | defaultCoeffs (const bool printMsg) const |
Returns true if defaultCoeffs is true and outputs on printMsg. More... | |
virtual bool | active () const |
Return the model 'active' status - default active = true. More... | |
virtual void | cacheFields (const bool store) |
Cache dependent sub-model fields. More... | |
template<class Type > | |
Type | getBaseProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
Retrieve generic property from the base model. More... | |
template<class Type > | |
void | getBaseProperty (const word &entryName, Type &value) const |
Retrieve generic property from the base model. More... | |
template<class Type > | |
void | setBaseProperty (const word &entryName, const Type &value) |
Add generic property to the base model. More... | |
bool | getModelDict (const word &entryName, dictionary &dict) const |
Retrieve dictionary, return true if set. More... | |
template<class Type > | |
bool | getModelProperty (const word &entryName, Type &value) const |
Retrieve generic property from the sub-model. More... | |
template<class Type > | |
Type | getModelProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
Retrieve generic property from the sub-model. More... | |
template<class Type > | |
void | setModelProperty (const word &entryName, const Type &value) |
Add generic property to the sub-model. More... | |
Protected Member Functions | |
void | initialise () |
Initialise injectors. More... | |
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. More... | |
virtual bool | findCellAtPosition (label &celli, label &tetFacei, label &tetPti, vector &position, bool errorOnNotFound=true) |
Find the cell that contains the supplied position. More... | |
virtual scalar | setNumberOfParticles (const label parcels, const scalar volumeFraction, const scalar diameter, const scalar rho) |
Set number of particles to inject given parcel properties. More... | |
virtual void | postInjectCheck (const label parcelsAdded, const scalar massAdded) |
Post injection checks. More... | |
Protected Member Functions inherited from subModelBase | |
bool | inLine () const |
Flag to indicate whether data is/was read in-line. More... | |
Protected Attributes | |
const word | cloudName_ |
Name of cloud used to seed the new particles. More... | |
scalarList | startTime_ |
List of start time per injector. More... | |
scalarList | endTime_ |
List of end time per injector. More... | |
List< vectorList > | position_ |
List of position per injector. More... | |
vector | positionOffset_ |
Position offset to apply to input positions. More... | |
scalarList | volumeFlowRate_ |
List of volume flow rate per injector [m3/s]. More... | |
List< vectorList > | U_ |
List of parcel velocity per injector. More... | |
scalar | binWidth_ |
Bin width when generating particle distributions. More... | |
PtrList< distributionModels::general > | sizeDistribution_ |
List of size distribution model per injector. More... | |
scalar | parcelsPerInjector_ |
Target number of parcels to inject per injector. More... | |
label | resampleSize_ |
Resample size. More... | |
bool | applyDistributionMassTotal_ |
Flag to apply mass calculated from distribution instead of. More... | |
Switch | ignoreOutOfBounds_ |
Flag to suppress errors if particle injection site is out-of-bounds. More... | |
label | nParcelsInjected_ |
Running total of number of parcels injected. More... | |
label | nParcelsInjected0_ |
Number of parcels injected in last step (local proc only) More... | |
label | currentInjectori_ |
Current injector. More... | |
label | currentSamplei_ |
Current sample. More... | |
Protected Attributes inherited from InjectionModel< CloudType > | |
scalar | SOI_ |
Start of injection [s]. More... | |
scalar | volumeTotal_ |
Total volume of particles introduced by this injector [m^3] Note: scaled to ensure massTotal is achieved. More... | |
scalar | massTotal_ |
Total mass to inject [kg]. More... | |
autoPtr< Function1< scalar > > | massFlowRate_ |
Mass flow rate profile for steady calculations. More... | |
scalar | massInjected_ |
Total mass injected to date [kg]. More... | |
label | nInjections_ |
Number of injections counter. More... | |
label | parcelsAddedTotal_ |
Running counter of total number of parcels added. More... | |
parcelBasis | parcelBasis_ |
Parcel basis enumeration. More... | |
scalar | nParticleFixed_ |
nParticle to assign to parcels when the 'fixed' basis is selected More... | |
scalar | time0_ |
Continuous phase time at start of injection time step [s]. More... | |
scalar | timeStep0_ |
Time at start of injection time step [s]. More... | |
scalar | minParticlesPerParcel_ |
Minimum number of particles used to represent each parcel default = 1. More... | |
scalar | delayedVolume_ |
Volume that should have been injected, but would lead to less than minParticlesPerParcel_ particle per parcel. More... | |
label | injectorID_ |
Optional injector ID. More... | |
bool | ignoreOutOfBounds_ |
Optional flag to indicate that injections attempted outside the mesh should be ignored. More... | |
Protected Attributes inherited from CloudSubModelBase< CloudType > | |
CloudType & | owner_ |
Reference to the cloud. More... | |
Protected Attributes inherited from subModelBase | |
const word | modelName_ |
Name of the sub-model. More... | |
dictionary & | properties_ |
Reference to properties dictionary e.g. for restart. More... | |
const dictionary | dict_ |
Copy of dictionary used during construction. More... | |
const word | baseName_ |
Name of the sub-model base class. More... | |
const word | modelType_ |
Type of the sub-model. More... | |
const dictionary | coeffDict_ |
Coefficients dictionary. More... | |
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. More... | |
Public Types inherited from CloudSubModelBase< CloudType > | |
typedef CloudType | cloudType |
Type of cloud this model was instantiated for. More... | |
Static Public Member Functions inherited from InjectionModel< CloudType > | |
static autoPtr< InjectionModel< CloudType > > | New (const dictionary &dict, CloudType &owner) |
Selector with lookup from dictionary. More... | |
static autoPtr< InjectionModel< CloudType > > | New (const dictionary &dict, const word &modelName, const word &modelType, CloudType &owner) |
Selector with name and type. More... | |
Public Attributes inherited from subModelBase | |
bool | log |
Flag to write log into Info. More... | |
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 225 of file InjectedParticleDistributionInjection.C.
References dict, dictName(), Foam::endl(), forAll, Foam::Info, Foam::name(), and rndGen.
InjectedParticleDistributionInjection | ( | const InjectedParticleDistributionInjection< CloudType > & | im | ) |
Construct copy.
Definition at line 301 of file InjectedParticleDistributionInjection.C.
References forAll, and InjectedParticleDistributionInjection< CloudType >::sizeDistribution_.
|
virtual |
Destructor.
Definition at line 345 of file InjectedParticleDistributionInjection.C.
|
protected |
Initialise injectors.
Definition at line 31 of file InjectedParticleDistributionInjection.C.
References Pstream::allGatherList(), List< T >::append(), Foam::endl(), forAll, Random::globalPosition(), Foam::Info, Foam::max(), mesh, Foam::min(), UPstream::myProcNo(), UPstream::nProcs(), p, UPstream::parRun(), Foam::constant::mathematical::pi(), Foam::pow3(), rndGen, List< T >::set(), List< T >::setSize(), UList< T >::size(), HashTable< T, Key, Hash >::size(), List< T >::transfer(), U, and Foam::fieldTypes::volume.
TypeName | ( | "injectedParticleDistributionInjection" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Implements InjectionModel< CloudType >.
Definition at line 225 of file InjectedParticleDistributionInjection.H.
|
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 Foam::max().
|
virtual |
Number of parcels to introduce relative to SOI.
Implements InjectionModel< CloudType >.
Definition at line 367 of file InjectedParticleDistributionInjection.C.
References forAll, Foam::min(), and Foam::returnReduce().
|
virtual |
Volume of parcels to introduce relative to SOI.
Implements InjectionModel< CloudType >.
Definition at line 409 of file InjectedParticleDistributionInjection.C.
References forAll, Foam::min(), and Foam::fieldTypes::volume.
|
virtual |
Set the injection position and owner cell, tetFace and tetPt.
Implements InjectionModel< CloudType >.
Definition at line 430 of file InjectedParticleDistributionInjection.C.
References Random::globalPosition().
|
virtual |
Set the parcel properties.
Implements InjectionModel< CloudType >.
Definition at line 459 of file InjectedParticleDistributionInjection.C.
|
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 488 of file InjectedParticleDistributionInjection.C.
|
virtual |
Write injection info.
Reimplemented from InjectionModel< CloudType >.
Definition at line 497 of file InjectedParticleDistributionInjection.C.
References dict, dictName(), forAll, InjectionModel< CloudType >::info(), Foam::name(), and general::writeDict().
|
protected |
Name of cloud used to seed the new particles.
Definition at line 101 of file InjectedParticleDistributionInjection.H.
|
protected |
List of start time per injector.
Definition at line 106 of file InjectedParticleDistributionInjection.H.
|
protected |
List of end time per injector.
Definition at line 111 of file InjectedParticleDistributionInjection.H.
|
protected |
List of position per injector.
Definition at line 116 of file InjectedParticleDistributionInjection.H.
|
protected |
Position offset to apply to input positions.
Definition at line 121 of file InjectedParticleDistributionInjection.H.
|
protected |
List of volume flow rate per injector [m3/s].
Definition at line 126 of file InjectedParticleDistributionInjection.H.
|
protected |
List of parcel velocity per injector.
Definition at line 131 of file InjectedParticleDistributionInjection.H.
|
protected |
Bin width when generating particle distributions.
Definition at line 136 of file InjectedParticleDistributionInjection.H.
|
protected |
List of size distribution model per injector.
Definition at line 141 of file InjectedParticleDistributionInjection.H.
Referenced by InjectedParticleDistributionInjection< CloudType >::InjectedParticleDistributionInjection().
|
protected |
Target number of parcels to inject per injector.
Definition at line 146 of file InjectedParticleDistributionInjection.H.
|
protected |
Resample size.
Definition at line 151 of file InjectedParticleDistributionInjection.H.
|
protected |
Flag to apply mass calculated from distribution instead of.
InjectionModel massTotal_
Definition at line 158 of file InjectedParticleDistributionInjection.H.
|
protected |
Flag to suppress errors if particle injection site is out-of-bounds.
Definition at line 163 of file InjectedParticleDistributionInjection.H.
|
protected |
Running total of number of parcels injected.
Definition at line 168 of file InjectedParticleDistributionInjection.H.
|
protected |
Number of parcels injected in last step (local proc only)
Definition at line 173 of file InjectedParticleDistributionInjection.H.
|
protected |
Current injector.
Definition at line 178 of file InjectedParticleDistributionInjection.H.
|
protected |
Current sample.
Definition at line 183 of file InjectedParticleDistributionInjection.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.