Go to the documentation of this file.
57 #ifndef KinematicCloud_H
58 #define KinematicCloud_H
81 class integrationScheme;
83 template<
class CloudType>
86 template<
class CloudType>
89 template<
class CloudType>
92 template<
class CloudType>
95 template<
class CloudType>
98 template<
class CloudType>
101 template<
class CloudType>
104 template<
class CloudType>
112 template<
class CloudType>
274 template<
class TrackCloudType>
277 TrackCloudType&
cloud,
289 template<
class TrackCloudType>
292 TrackCloudType&
cloud,
385 inline const typename parcelType::constantProperties&
389 inline typename parcelType::constantProperties&
constProps();
541 bool incompressible =
false
569 inline scalar
Dij(
const label i,
const label j)
const;
572 inline scalar
Dmax()
const;
599 const scalar lagrangianDt
606 const scalar lagrangianDt,
607 const bool fullyDescribed
645 const typename parcelType::trackingData& td
652 template<
class TrackCloudType>
655 TrackCloudType&
cloud,
656 typename parcelType::trackingData& td
void patchData(const parcelType &p, const polyPatch &pp, vector &normal, vector &Up) const
Calculate the patch normal and velocity to interact with,.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
tmp< fvVectorMatrix > SU(volVectorField &U, bool incompressible=false) const
Return tmp momentum source term (compressible)
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
void scaleSources()
Apply scaling to (transient) cloud sources.
autoPtr< SurfaceFilmModel< KinematicCloud< CloudType > > > surfaceFilmModel_
Surface film model.
const IOdictionary & outputProperties() const
Return output properties dictionary.
virtual void writeObjects(objectRegistry &obr) const
Write particle fields as objects into the obr registry.
const dimensionedVector & g_
Gravity.
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
Construct and return clone based on (this) with new name.
A class for handling words, derived from Foam::string.
functionType & functions()
Optional cloud function objects.
void setModels()
Set cloud sub-models.
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
Particle motion.
autoPtr< IsotropyModel< KinematicCloud< CloudType > > > isotropyModel_
Exchange model.
scalar pAmbient() const
Return const-access to the ambient pressure.
A class for managing temporary objects.
autoPtr< StochasticCollisionModel< KinematicCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
Base class for dispersion modelling.
const volVectorField & U_
Velocity [m/s].
autoPtr< PatchInteractionModel< KinematicCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
scalar totalParticlePerParcel() const
Average particle per parcel.
const fvMesh & mesh() const
Return reference to the mesh.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
void relaxSources(const KinematicCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
scalar massInSystem() const
Total mass in system.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
const DampingModel< KinematicCloud< CloudType > > & dampingModel() const
Return const access to the damping model.
virtual label nParcels() const
Return the number of particles in the cloud.
volScalarField::Internal & UCoeff()
Return coefficient for carrier phase U equation.
const KinematicCloud & cloudCopy() const
Return a reference to the cloud copy.
autoPtr< volVectorField::Internal > UTrans_
Momentum.
void storeState()
Store the current cloud state.
volVectorField::Internal & UTrans()
Return reference to momentum source.
Base class for collisional damping models.
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions.
scalar pAmbient_
Averaged ambient domain pressure.
virtual label nParcels() const
Total number of parcels.
const forceType & forces() const
Optional particle forces.
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
Class to hold thermo particle constant properties.
virtual void readObjects(const objectRegistry &obr)
Read particle fields from objects in the obr registry.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Registry of regIOobjects.
const parcelType::constantProperties & constProps() const
Return the constant properties.
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
scalar rotationalKineticEnergyOfSystem() const
Total rotational kinetic energy in the system.
Virtual abstract base class for templated KinematicCloud.
void evolve()
Evolve the cloud.
Templated base class for kinematic cloud.
const word & cloudName() const
Return the cloud type.
Templated patch interaction model class.
virtual ~KinematicCloud()=default
Destructor.
InjectionModelList< KinematicCloud< CloudType > > injectors_
Injector models.
Templated stochastic collision model class.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
Templated wall surface film model class.
autoPtr< PackingModel< KinematicCloud< CloudType > > > packingModel_
Packing model.
A patch is a list of labels that address the faces in the global face list.
autoPtr< DampingModel< KinematicCloud< CloudType > > > dampingModel_
Damping model.
autoPtr< integrationScheme > UIntegrator_
Velocity integration.
Stores all relevant solution info for cloud.
Random rndGen_
Random number generator - used by some injection routines.
KinematicCloud< CloudType > kinematicCloudType
Convenience typedef for this cloud type.
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven)
const PackingModel< KinematicCloud< CloudType > > & packingModel() const
Return const access to the packing model.
IOdictionary particleProperties_
Dictionary of particle properties.
Templated base class for dsmc cloud.
Base class for packing models.
autoPtr< volScalarField::Internal > UCoeff_
Coefficient for carrier phase U equation.
const volScalarField & mu_
Dynamic viscosity [Pa.s].
void preEvolve(const typename parcelType::trackingData &td)
Pre-evolve.
CloudFunctionObjectList< KinematicCloud< CloudType > > functionType
Function object type.
const cloudSolution & solution() const
Return const access to the solution properties.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const fvMesh & mesh_
References to the mesh and time databases.
Mesh data needed to do the Finite Volume discretisation.
ParticleType particleType
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
List of cloud function objects.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the templated type.
void resetSourceTerms()
Reset the cloud source terms.
Random & rndGen() const
Return reference to the random object.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
const IsotropyModel< KinematicCloud< CloudType > > & isotropyModel() const
Return const access to the isotropy model.
void solve(TrackCloudType &cloud, typename parcelType::trackingData &td)
Solve the cloud - calls all evolution functions.
functionType functions_
Optional cloud function objects.
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
const dictionary subModelProperties_
Sub-models dictionary.
void cloudReset(KinematicCloud< CloudType > &c)
Reset state of cloud.
parcelType::constantProperties constProps_
Parcel constant properties.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const dimensionedVector & g() const
Gravity.
void updateMesh()
Update mesh.
cloudSolution solution_
Solution properties.
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
ParcelType::trackingData trackingData
Use base tracking data.
forceType forces_
Optional particle forces.
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
Relax field.
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Return const access to the injection model.
CloudType cloudType
Type of cloud this cloud was instantiated for.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const dimensionedScalar c
Speed of light in a vacuum.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
void restoreState()
Reset the current cloud to the previously stored state.
void updateCellOccupancy()
Update (i.e. build) the cellOccupancy if it has.
scalarField cellLengthScale_
Cell length scale.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
void info()
Print cloud information.
void buildCellOccupancy()
Build the cellOccupancy.
Base class for collisional return-to-isotropy models.
const volVectorField & U() const
Return carrier gas velocity.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
const volScalarField & rho_
Density [kg/m3].
vector linearMomentumOfSystem() const
Total linear momentum of the system.
scalar Dmax() const
Max diameter.
void evolveCloud(TrackCloudType &cloud, typename parcelType::trackingData &td)
Evolve the cloud.
autoPtr< DispersionModel< KinematicCloud< CloudType > > > dispersionModel_
Dispersion model.
ParticleForceList< KinematicCloud< CloudType > > forceType
Force models type.
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
Scale field.
List of injection models.
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const volScalarField & rho() const
Return carrier gas density.
const scalarField & cellLengthScale() const
Return the cell length scale.
IOdictionary outputProperties_
Dictionary of output properties.
void postEvolve(const typename parcelType::trackingData &td)
Post-evolve.