51 #ifndef KinematicCloud_H 52 #define KinematicCloud_H 76 template<
class CloudType>
79 template<
class CloudType>
82 template<
class CloudType>
85 template<
class CloudType>
88 template<
class CloudType>
96 template<
class CloudType>
157 typename parcelType::constantProperties
constProps_;
246 template<
class TrackData>
247 void solve(TrackData& td);
257 template<
class TrackData>
353 inline const typename parcelType::constantProperties&
357 inline typename parcelType::constantProperties&
constProps();
403 inline const forceType&
forces()
const;
406 inline forceType&
forces();
505 inline scalar
Dmax()
const;
532 const scalar lagrangianDt
539 const scalar lagrangianDt,
540 const bool fullyDescribed
582 template<
class TrackData>
583 void motion(TrackData& td);
591 const scalar trackFraction,
autoPtr< DimensionedField< vector, volMesh > > UTrans_
Momentum.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void scaleSources()
Apply scaling to (transient) cloud sources.
void setModels()
Set cloud sub-models.
const volVectorField & U_
Velocity [m/s].
void relaxSources(const KinematicCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
Scale field.
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
void storeState()
Store the current cloud state.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
autoPtr< PatchInteractionModel< KinematicCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
A list of keyword definitions, which are a keyword followed by any number of values (e...
InjectionModelList< KinematicCloud< CloudType > > injectors_
Injector models.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual ~KinematicCloud()
Destructor.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
DimensionedField< vector, volMesh > & UTrans()
Return reference to momentum source.
void postEvolve()
Post-evolve.
CloudFunctionObjectList< KinematicCloud< CloudType > > functionType
Function object type.
scalar rotationalKineticEnergyOfSystem() const
Total rotational kinetic energy in the system.
const forceType & forces() const
Optional particle forces.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
autoPtr< SurfaceFilmModel< KinematicCloud< CloudType > > > surfaceFilmModel_
Surface film model.
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
Relax field.
void updateCellOccupancy()
Update (i.e. build) the cellOccupancy if it has.
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
void buildCellOccupancy()
Build the cellOccupancy.
const scalarField & cellLengthScale() const
Return the cell length scale.
const volScalarField & rho_
Density [kg/m3].
Templated patch interaction model class.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const cloudSolution & solution() const
Return const access to the solution properties.
void updateMesh()
Update mesh.
const volScalarField & mu_
Dynamic viscosity [Pa.s].
const vectorIntegrationScheme & UIntegrator() const
Return reference to velocity integration.
DimensionedField< scalar, volMesh > & UCoeff()
Return coefficient for carrier phase U equation.
scalar pAmbient() const
Return const-access to the ambient pressure.
void resetSourceTerms()
Reset the cloud source terms.
CloudType cloudType
Type of cloud this cloud was instantiated for.
A class for handling words, derived from string.
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Return const access to the injection model.
const dimensionedVector & g() const
Gravity.
scalar pAmbient_
Averaged ambient domain pressure.
List of injection models.
Foam::autoPtr< IOobject > clone() const
Clone.
parcelType::constantProperties constProps_
Parcel constant properties.
const fvMesh & mesh_
References to the mesh and time databases.
const fvMesh & mesh() const
Return reference to the mesh.
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
const dictionary subModelProperties_
Sub-models dictionary.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
cachedRandom & rndGen()
Return reference to the random object.
const IOdictionary & outputProperties() const
Return output properties dictionary.
const KinematicCloud & cloudCopy() const
Return a reference to the cloud copy.
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven)
Templated wall surface film model class.
void evolveCloud(TrackData &td)
Evolve the cloud.
tmp< fvVectorMatrix > SU(volVectorField &U) const
Return tmp momentum source term.
virtual void readFields()
Read the field data for the cloud of particles. Dummy at.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
label nParcels() const
Total number of parcels.
A normal distribution model.
const volVectorField & U() const
Return carrier gas velocity.
void motion(TrackData &td)
Particle motion.
Virtual abstract base class for templated KinematicCloud.
cloudSolution solution_
Solution properties.
Templated base class for kinematic cloud.
Stores all relevant solution info for cloud.
KinematicCloud< CloudType > kinematicCloudType
Convenience typedef for this cloud type.
void evolve()
Evolve the cloud.
IOdictionary particleProperties_
Dictionary of particle properties.
void patchData(const parcelType &p, const polyPatch &pp, const scalar trackFraction, const tetIndices &tetIs, vector &normal, vector &Up) const
Calculate the patch normal and velocity to interact with,.
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
Templated stochastic collision model class.
Mesh data needed to do the Finite Volume discretisation.
const dimensionedScalar c
Speed of light in a vacuum.
void info()
Print cloud information.
Top level model for Integration schemes.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual bool hasWallImpactDistance() const
Switch to specify if particles of the cloud can return.
forceType forces_
Optional particle forces.
void restoreState()
Reset the current cloud to the previously stored state.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
scalar massInSystem() const
Total mass in system.
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
const word & cloudName() const
Return the cloud type.
functionType functions_
Optional cloud function objects.
const parcelType::constantProperties & constProps() const
Return the constant properties.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
List of cloud function objects.
void cloudReset(KinematicCloud< CloudType > &c)
Reset state of cloud.
A class for managing temporary objects.
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
A patch is a list of labels that address the faces in the global face list.
autoPtr< DispersionModel< KinematicCloud< CloudType > > > dispersionModel_
Dispersion model.
IOdictionary outputProperties_
Dictionary of output properties.
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
const dimensionedVector & g_
Gravity.
functionType & functions()
Optional cloud function objects.
Templated base class for dsmc cloud.
void preEvolve()
Pre-evolve.
void solve(TrackData &td)
Solve the cloud - calls all evolution functions.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
scalar Dmax() const
Max diameter.
cachedRandom rndGen_
Random number generator - used by some injection routines.
const word & name() const
Return name.
const volScalarField & rho() const
Return carrier gas density.
autoPtr< StochasticCollisionModel< KinematicCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
autoPtr< DimensionedField< scalar, volMesh > > UCoeff_
Coefficient for carrier phase U equation.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
ParticleForceList< KinematicCloud< CloudType > > forceType
Force models type.
autoPtr< vectorIntegrationScheme > UIntegrator_
Velocity integration.
scalarField cellLengthScale_
Cell length scale.