This injector injects particles in a number of cones. The user specifies a position and a direction to inject at, and two angles to inject between. Optionally, this injector can introduce particles over a disc, instead of at a point, in which case inner and outer diameters of the disc are also specified. More...
Public Types | |
enum | injectionMethod { imPoint , imDisc } |
Injection method enumeration. More... | |
enum | flowType { ftConstantVelocity , ftPressureDrivenVelocity , ftFlowRateAndDischarge } |
Flow type enumeration. More... | |
Public Types inherited from InjectionModel< CloudType > | |
typedef CloudType::parcelType | parcelType |
Convenience typedef for parcelType. More... | |
Public Types inherited from injectionModel | |
enum class | uniformParcelSize { nParticle , surfaceArea , volume } |
Enumeration for the parcels' uniform size. More... | |
Public Types inherited from CloudSubModelBase< CloudType > | |
typedef CloudType | cloudType |
Type of cloud this model was instantiated for. More... | |
Public Member Functions | |
TypeName ("coneInjection") | |
Runtime type information. More... | |
ConeInjection (const dictionary &dict, CloudType &owner, const word &modelName) | |
Construct from dictionary. More... | |
ConeInjection (const ConeInjection< CloudType > &im) | |
Construct copy. More... | |
virtual autoPtr< InjectionModel< CloudType > > | clone () const |
Construct and return a clone. More... | |
virtual | ~ConeInjection () |
Destructor. More... | |
virtual void | topoChange () |
Set injector locations when mesh is updated. More... | |
scalar | timeEnd () const |
Return the end-of-injection time. More... | |
virtual label | nParcelsToInject (const scalar time0, const scalar time1) |
Number of parcels to introduce relative to SOI. More... | |
virtual scalar | massToInject (const scalar time0, const scalar time1) |
Parcel mass to introduce relative to SOI. More... | |
virtual void | setPositionAndCell (const label parcelI, const label nParcels, const scalar time, barycentric &coordinates, label &celli, label &tetFacei, label &tetPti, label &facei) |
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::trackingData &td, typename CloudType::parcelType &parcel) |
Set the parcel properties. More... | |
virtual bool | fullyDescribed () const |
Flag to identify whether model fully describes the parcel. 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 () |
Destructor. More... | |
scalar | timeStart () const |
Return the start-of-injection time. More... | |
scalar | massInjected () const |
Return mass of particles injected (cumulative) More... | |
scalar | averageParcelMass () |
Return the average injected parcel mass. 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) |
Main injection loop - steady-state. More... | |
virtual void | setProperties (const label parcelI, const label nParcels, const scalar time, typename parcelType::trackingData &td, parcelType &parcel)=0 |
Set the parcel properties. More... | |
virtual void | info (Ostream &os) |
Write injection info to stream. 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) | |
Copy constructor. More... | |
virtual | ~CloudSubModelBase () |
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... | |
CloudType & | owner () |
Return non-const access to the owner cloud for manipulation. More... | |
virtual void | write (Ostream &os) const |
Write. 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) | |
Copy constructor. More... | |
virtual | ~subModelBase () |
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 void | cacheFields (const bool store) |
Cache dependent sub-model fields. More... | |
template<class Type > | |
Type | getBaseProperty (const word &entryName, const Type &defaultValue=pTraits< 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... | |
template<class Type > | |
void | 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=pTraits< 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... | |
void | operator= (const subModelBase &)=delete |
Disallow default bitwise assignment. More... | |
Additional Inherited Members | |
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... | |
Static Public Member Functions inherited from injectionModel | |
static scalar | globalScalar01 (randomGenerator &rndGen) |
Return a scalar uniformly distributed between zero and one. Samples. More... | |
Static Public Attributes inherited from injectionModel | |
static const NamedEnum< uniformParcelSize, 3 > | uniformParcelSizeNames_ |
Names of the parcels' uniform size. More... | |
Protected Member Functions inherited from InjectionModel< CloudType > | |
scalar | readMassTotal (const dictionary &dict, CloudType &owner) |
Read the total mass value for instantaneous injections. More... | |
scalar | readDuration (const dictionary &dict, CloudType &owner) |
Read the duration for continuous injections. More... | |
autoPtr< Function1< scalar > > | readMassFlowRate (const dictionary &dict, CloudType &owner, const scalar duration) |
Read the mass flow rate function for continuous injections. More... | |
autoPtr< Function1< scalar > > | readParcelsPerSecond (const dictionary &dict, CloudType &owner) |
Read the number of parcels injected per second for continuous. More... | |
label | index () const |
Get the index of this injector. More... | |
bool | findCellAtPosition (const point &position, barycentric &coordinates, label &celli, label &tetFacei, label &tetPti, bool errorOnNotFound=true) |
Find the cell that contains the supplied position. More... | |
void | constrainPosition (typename CloudType::parcelType::trackingData &td, typename CloudType::parcelType &parcel) |
Constrain a parcel's position appropriately to the geometric. More... | |
label | sizeSampleQ () const |
Return the sampling moment to be used by the size distribution. More... | |
void | setNumberOfParticles (PtrList< parcelType > &parcelPtrs, const scalar mass) const |
Set number of particles to inject given parcel properties. More... | |
virtual void | preInject (typename parcelType::trackingData &td) |
Pre injection hook. More... | |
virtual void | postInject (const label parcelsAdded, const scalar massAdded, typename parcelType::trackingData &td) |
Post injection hook. More... | |
Protected Member Functions inherited from subModelBase | |
bool | inLine () const |
Flag to indicate whether data is/was read in-line. More... | |
Protected Attributes inherited from InjectionModel< CloudType > | |
scalar | SOI_ |
Start of injection [s]. 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... | |
scalar | nParticleFixed_ |
Fixed nParticle to assign to parcels. Only valid if. More... | |
uniformParcelSize | uniformParcelSize_ |
Size uniform to all parcels. 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... | |
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... | |
This injector injects particles in a number of cones. The user specifies a position and a direction to inject at, and two angles to inject between. Optionally, this injector can introduce particles over a disc, instead of at a point, in which case inner and outer diameters of the disc are also specified.
The velocity is specified either as constant, or it is calculated from an injection pressure, or it is calculated from the injector mass flow rate and a discharge coefficient; i.e.:
Constant velocity:
Pressure driven velocity:
Flow rate and discharge:
Property | Description | Required | Default |
---|---|---|---|
position | The injection position | yes | |
direction | The injection direction | yes | |
thetaInner | The inner cone angle | yes | |
thetaOuter | The outer cone angle | yes | |
injectionMethod | Inject at a point or on a disc | no | point |
dInner | The inner disc diameter | if disc or flowRateAndDischarge | |
dInner | The outer disc diameter | if disc or flowRateAndDischarge | |
flowType | Inject with constantVelocity, pressureDrivenVelocity or flowRateAndDischarge | no | constantVelocity |
Umag | The injection velocity | if constantVelocity | |
Pinj | The injection pressure | if pressureDrivenVelocity | |
Cd | The discharge coefficient | if flowRateAndDischarge |
Example specification:
injectionModels { model1 { type coneInjection; // Times SOI 0; duration 1; // Quantities parcelsPerSecond 1000000; // - Inject parcels with a fixed number of particles nParticle 1; //// - Or, inject a specified mass of particles //massTotal 6.0e-6; //uniformParcelSize volume; // Sizes sizeDistribution { type fixedValue; fixedValueDistribution { value 0.0025; } } // Geometry position (-0.15 -0.1 0); direction (1 0 0); thetaInner 0; thetaOuter 45; // - Inject at a point injectionMethod point; //// - Or, inject over a disc: //injectionMethod disc; //dInner 0; //dOuter 0.05; // Velocity // - Inject with constant velocity flowType constantVelocity; Umag 1; //// - Or, inject with flow rate and discharge coefficient //// This also requires massTotal, dInner and dOuter //flowType flowRateAndDischarge; //Cd 0.9; //// - Or, inject at a pressure //flowType pressureDrivenVelocity; //Pinj 10e5; } }
Definition at line 215 of file ConeInjection.H.
enum injectionMethod |
Injection method enumeration.
Enumerator | |
---|---|
imPoint | |
imDisc |
Definition at line 222 of file ConeInjection.H.
enum flowType |
Flow type enumeration.
Enumerator | |
---|---|
ftConstantVelocity | |
ftPressureDrivenVelocity | |
ftFlowRateAndDischarge |
Definition at line 229 of file ConeInjection.H.
ConeInjection | ( | const dictionary & | dict, |
CloudType & | owner, | ||
const word & | modelName | ||
) |
Construct from dictionary.
Definition at line 141 of file ConeInjection.C.
References ConeInjection< CloudType >::topoChange().
ConeInjection | ( | const ConeInjection< CloudType > & | im | ) |
Construct copy.
Definition at line 223 of file ConeInjection.C.
|
virtual |
Destructor.
Definition at line 254 of file ConeInjection.C.
TypeName | ( | "coneInjection" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Implements InjectionModel< CloudType >.
Definition at line 334 of file ConeInjection.H.
|
virtual |
Set injector locations when mesh is updated.
Reimplemented from InjectionModel< CloudType >.
Definition at line 261 of file ConeInjection.C.
Referenced by ConeInjection< CloudType >::ConeInjection().
|
virtual |
Return the end-of-injection time.
Implements InjectionModel< CloudType >.
Definition at line 279 of file ConeInjection.C.
|
virtual |
Number of parcels to introduce relative to SOI.
Implements InjectionModel< CloudType >.
Definition at line 286 of file ConeInjection.C.
|
virtual |
Parcel mass to introduce relative to SOI.
Implements InjectionModel< CloudType >.
Definition at line 313 of file ConeInjection.C.
|
virtual |
Set the injection position and owner cell, tetFace and tetPt.
Implements InjectionModel< CloudType >.
Definition at line 331 of file ConeInjection.C.
References Foam::cos(), n, Foam::normalised(), Foam::perpendicular(), Foam::pos(), rndGen(), Foam::sin(), Foam::sqr(), Foam::sqrt(), Foam::constant::mathematical::twoPi(), and dimensioned< Type >::value().
|
virtual |
Set the parcel properties.
Definition at line 403 of file ConeInjection.C.
References A, Foam::cos(), Foam::mag(), VectorSpace< Form, Cmpt, Ncmpts >::max, n, Foam::normalised(), Foam::perpendicular(), Foam::constant::mathematical::pi(), rho, rndGen(), randomGenerator::scalar01(), Foam::sin(), Foam::sqr(), Foam::sqrt(), and Foam::constant::mathematical::twoPi().
|
virtual |
Flag to identify whether model fully describes the parcel.
Implements InjectionModel< CloudType >.
Definition at line 503 of file ConeInjection.C.