Loading...
Searching...
No Matches
ConeNozzleInjection< CloudType > Class Template Reference

Cone injection. More...

#include <ConeNozzleInjection.H>

Inheritance diagram for ConeNozzleInjection< CloudType >:
Collaboration diagram for ConeNozzleInjection< CloudType >:

Public Types

enum class  injectionMethod { imPoint , imDisc , imDiscSegments }
 Injection method enumeration. More...
enum class  flowType { ftConstantVelocity , ftPressureDrivenVelocity , ftFlowRateAndDischarge }
 Flow type enumeration. More...
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.

Public Member Functions

 TypeName ("coneNozzleInjection")
 Runtime type information.
 ConeNozzleInjection (const dictionary &dict, CloudType &owner, const word &modelName)
 Construct from dictionary.
 ConeNozzleInjection (const ConeNozzleInjection< CloudType > &im)
 Construct copy.
virtual autoPtr< InjectionModel< CloudType > > clone () const
 Construct and return a clone.
virtual ~ConeNozzleInjection ()=default
 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.
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.
virtual 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 CloudTypeowner () 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.
CloudTypeowner ()
 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 wordmodelName () const
 Return const access to the name of the sub-model.
const dictionarydict () const
 Return const access to the cloud dictionary.
const wordbaseName () const
 Return const access to the base name of the sub-model.
const wordmodelType () const
 Return const access to the sub-model type.
const dictionarycoeffDict () const
 Return const access to the coefficients dictionary.
const dictionaryproperties () 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.

Static Public Attributes

static const Enum< injectionMethodinjectionMethodNames
static const Enum< flowTypeflowTypeNames

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.
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.
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 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 >
CloudTypeowner_
 Reference to the cloud.
Protected Attributes inherited from subModelBase
const word modelName_
 Name of the sub-model.
dictionaryproperties_
 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.

Detailed Description

template<class CloudType>
class Foam::ConeNozzleInjection< CloudType >

Cone injection.

User specifies:

  • time of start of injection
  • injector position
  • direction (along injection axis)
  • parcel flow rate
  • inner and outer half-cone angles

Properties:

  • Parcel diameters obtained by size distribution model.
  • Parcel velocity is calculated as:
    • Constant velocity:
            U = \<specified by user\>
      
    • Pressure driven velocity:
            U = sqrt(2*(Pinj - Pamb)/rho)
      
    • Flow rate and discharge:
            U = V_dot/(A*Cd)
      
Source files

Definition at line 85 of file ConeNozzleInjection.H.

Member Enumeration Documentation

◆ injectionMethod

template<class CloudType>
enum class injectionMethod
strong

Injection method enumeration.

Enumerator
imPoint 
imDisc 
imDiscSegments 

Definition at line 94 of file ConeNozzleInjection.H.

◆ flowType

template<class CloudType>
enum class flowType
strong

Flow type enumeration.

Enumerator
ftConstantVelocity 
ftPressureDrivenVelocity 
ftFlowRateAndDischarge 

Definition at line 106 of file ConeNozzleInjection.H.

Constructor & Destructor Documentation

◆ ConeNozzleInjection() [1/2]

◆ ConeNozzleInjection() [2/2]

template<class CloudType>
ConeNozzleInjection ( const ConeNozzleInjection< CloudType > & im)

Construct copy.

Definition at line 295 of file ConeNozzleInjection.C.

References clone(), ConeNozzleInjection(), and InjectionModel< CloudType >::InjectionModel().

Here is the call graph for this function:

◆ ~ConeNozzleInjection()

template<class CloudType>
virtual ~ConeNozzleInjection ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

template<class CloudType>
TypeName ( "coneNozzleInjection" )

Runtime type information.

References ConeNozzleInjection(), subModelBase::dict(), subModelBase::modelName(), and CloudSubModelBase< CloudType >::owner().

Here is the call graph for this function:

◆ clone()

template<class CloudType>
virtual autoPtr< InjectionModel< CloudType > > clone ( ) const
inlinevirtual

Construct and return a clone.

Implements InjectionModel< CloudType >.

Definition at line 308 of file ConeNozzleInjection.H.

References ConeNozzleInjection().

Referenced by ConeNozzleInjection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateMesh()

template<class CloudType>
void updateMesh ( )
virtual

Set injector locations when mesh is updated.

Reimplemented from InjectionModel< CloudType >.

Definition at line 335 of file ConeNozzleInjection.C.

References InjectionModel< CloudType >::findCellAtPosition().

Referenced by ConeNozzleInjection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ timeEnd()

template<class CloudType>
Foam::scalar timeEnd ( ) const
virtual

Return the end-of-injection time.

Implements InjectionModel< CloudType >.

Definition at line 354 of file ConeNozzleInjection.C.

References InjectionModel< CloudType >::SOI_.

◆ parcelsToInject()

template<class CloudType>
Foam::label parcelsToInject ( const scalar time0,
const scalar time1 )
virtual

Number of parcels to introduce relative to SOI.

Implements InjectionModel< CloudType >.

Definition at line 361 of file ConeNozzleInjection.C.

◆ volumeToInject()

template<class CloudType>
Foam::scalar volumeToInject ( const scalar time0,
const scalar time1 )
virtual

Volume of parcels to introduce relative to SOI.

Implements InjectionModel< CloudType >.

Definition at line 377 of file ConeNozzleInjection.C.

◆ setPositionAndCell()

template<class CloudType>
void setPositionAndCell ( const label parcelI,
const label nParcels,
const scalar time,
vector & position,
label & cellOwner,
label & tetFacei,
label & tetPti )
virtual

◆ setProperties()

◆ fullyDescribed()

template<class CloudType>
bool fullyDescribed ( ) const
virtual

Flag to identify whether model fully describes the parcel.

Implements InjectionModel< CloudType >.

Definition at line 641 of file ConeNozzleInjection.C.

◆ validInjection()

template<class CloudType>
bool validInjection ( const label parcelI)
virtual

Return flag to identify whether or not injection of parcelI is.

permitted

Implements InjectionModel< CloudType >.

Definition at line 648 of file ConeNozzleInjection.C.

◆ info()

template<class CloudType>
void info ( )
virtual

Write injection info.

Reimplemented from InjectionModel< CloudType >.

Definition at line 655 of file ConeNozzleInjection.C.

References InjectionModel< CloudType >::info(), subModelBase::setModelProperty(), and CloudSubModelBase< CloudType >::writeTime().

Here is the call graph for this function:

Member Data Documentation

◆ injectionMethodNames

template<class CloudType>
const Foam::Enum< typename Foam::ConeNozzleInjection< CloudType >::injectionMethod > injectionMethodNames
static

Definition at line 101 of file ConeNozzleInjection.H.

Referenced by ConeNozzleInjection(), and setPositionAndCell().

◆ flowTypeNames

template<class CloudType>
const Foam::Enum< typename Foam::ConeNozzleInjection< CloudType >::flowType > flowTypeNames
static

Definition at line 113 of file ConeNozzleInjection.H.

Referenced by ConeNozzleInjection(), and setProperties().


The documentation for this class was generated from the following files:
  • src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.H
  • src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C