51 #ifndef MomentumCloud_H 52 #define MomentumCloud_H 75 class integrationScheme;
77 template<
class CloudType>
80 template<
class CloudType>
83 template<
class CloudType>
86 template<
class CloudType>
89 template<
class CloudType>
104 template<
class CloudType>
108 public MomentumCloudName
153 typename parcelType::constantProperties
constProps_;
242 template<
class TrackCloudType>
245 TrackCloudType&
cloud,
246 typename parcelType::trackingData& td
257 template<
class TrackCloudType>
260 TrackCloudType&
cloud,
261 typename parcelType::trackingData& td
364 inline const typename parcelType::constantProperties&
368 inline typename parcelType::constantProperties&
constProps();
414 inline const forceType&
forces()
const;
417 inline forceType&
forces();
517 inline scalar
Dmax()
const;
544 const scalar lagrangianDt
551 const scalar lagrangianDt,
552 const bool fullyDescribed
594 template<
class TrackCloudType>
597 TrackCloudType&
cloud,
598 typename parcelType::trackingData& td
CloudFunctionObjectList< MomentumCloud< CloudType > > functionType
Function object type.
tmp< fvVectorMatrix > SU(const volVectorField &U) const
Return tmp momentum source term.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
autoPtr< StochasticCollisionModel< MomentumCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
const volVectorField & U_
Velocity [m/s].
void preEvolve()
Pre-evolve.
void scaleSources()
Apply scaling to (transient) cloud sources.
autoPtr< IOobject > clone() const
Clone.
void updateCellOccupancy()
Update (i.e. build) the cellOccupancy if it has.
IOdictionary particleProperties_
Dictionary of particle properties.
void postEvolve()
Post-evolve.
void solve(TrackCloudType &cloud, typename parcelType::trackingData &td)
Solve the cloud - calls all evolution functions.
const word & name() const
Return name.
void setModels()
Set cloud sub-models.
const SurfaceFilmModel< MomentumCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
timeIOdictionary outputProperties_
Dictionary of output properties.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject *> &storedObjects)
Read the selected GeometricFields of the specified type.
void operator=(const MomentumCloud &)=delete
Disallow default bitwise assignment.
A list of keyword definitions, which are a keyword followed by any number of values (e...
const word & cloudName() const
Return the cloud type.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
cloudSolution solution_
Solution properties.
functionType & functions()
Optional cloud function objects.
tmp< volVectorField::Internal > UTrans() const
Return momentum source.
MomentumCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const volScalarField &mu, const dimensionedVector &g, const bool readFields=true)
Construct given carrier fields.
const PatchInteractionModel< MomentumCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
void storeState()
Store the current cloud state.
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
autoPtr< PatchInteractionModel< MomentumCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
void topoChange()
Update mesh.
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
void buildCellOccupancy()
Build the cellOccupancy.
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
Scale field.
void resetSourceTerms()
Reset the cloud source terms.
MomentumCloud< CloudType > momentumCloudType
Convenience typedef for this cloud type.
const parcelType::constantProperties & constProps() const
Return the constant properties.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
const dimensionedScalar c
Speed of light in a vacuum.
Random rndGen_
Random number generator - used by some injection routines.
InjectionModelList< MomentumCloud< CloudType > > injectors_
Injector models.
autoPtr< SurfaceFilmModel< MomentumCloud< CloudType > > > surfaceFilmModel_
Surface film model.
const dimensionedVector & g_
Gravity.
Templated patch interaction model class.
void info()
Print cloud information.
volVectorField::Internal & UTransRef()
Access momentum source.
const cloudSolution & solution() const
Return const access to the solution properties.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Templated base class for momentum cloud.
autoPtr< volScalarField::Internal > UCoeff_
Coefficient for carrier phase U equation.
const volScalarField & rho_
Density [kg/m^3].
const volScalarField & rho() const
Return carrier gas density.
void cloudReset(MomentumCloud< CloudType > &c)
Reset state of cloud.
volScalarField::Internal & UCoeffRef()
Access coefficient for carrier phase U equation.
ParticleForceList< MomentumCloud< CloudType > > forceType
Force models type.
parcelType::constantProperties constProps_
Parcel constant properties.
A class for handling words, derived from string.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Base-class for fluid thermodynamic properties.
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
forceType forces_
Optional particle forces.
const StochasticCollisionModel< MomentumCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
A cloud is a collection of lagrangian particles.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
void evolveCloud(TrackCloudType &cloud, typename parcelType::trackingData &td)
Evolve the cloud.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
List of injection models.
TemplateName(FvFaceCellWave)
const InjectionModelList< MomentumCloud< CloudType > > & injectors() const
Return const access to the injection model.
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
Relax field.
const IOdictionary & outputProperties() const
Return output properties dictionary.
autoPtr< DispersionModel< MomentumCloud< CloudType > > > dispersionModel_
Dispersion model.
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
const dictionary subModelProperties_
Sub-models dictionary.
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
Particle motion.
scalar massInSystem() const
Total mass in system.
autoPtr< integrationScheme > UIntegrator_
Velocity integration.
virtual void autoMap(const polyTopoChangeMap &)
Remap the cells of particles corresponding to the.
autoPtr< volVectorField::Internal > UTrans_
Momentum.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
scalar Dmax() const
Max diameter.
const volScalarField & mu_
Dynamic viscosity [Pa.s].
const scalarField & cellLengthScale() const
Return the cell length scale.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
virtual ~MomentumCloud()
Destructor.
scalar pAmbient() const
Return const-access to the ambient pressure.
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions...
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
void relaxSources(const MomentumCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
label nParcels() const
Total number of parcels.
timeIOdictionary derived from IOdictionary with globalFile set false to enable writing to processor t...
const fvMesh & mesh() const
Return references to the mesh.
scalar rotationalKineticEnergyOfSystem() const
Total rotational kinetic energy in the system.
Random & rndGen() const
Return reference to the random object.
Stores all relevant solution info for cloud.
CloudType cloudType
Type of cloud this cloud was instantiated for.
tmp< volScalarField::Internal > UCoeff() const
Return coefficient for carrier phase U equation.
void patchData(const parcelType &p, const polyPatch &pp, vector &normal, vector &Up) const
Calculate the patch normal and velocity to interact with,.
Templated stochastic collision model class.
Mesh data needed to do the Finite Volume discretisation.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
A special matrix type and solver, designed for finite volume solutions of scalar equations.
const volVectorField & U() const
Return carrier gas velocity.
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.
const dimensionedVector & g() const
Gravity.
const DispersionModel< MomentumCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
A class for managing temporary objects.
A patch is a list of labels that address the faces in the global face list.
const forceType & forces() const
Optional particle forces.
const MomentumCloud & cloudCopy() const
Return a reference to the cloud copy.
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven)
scalarField cellLengthScale_
Cell length scale.
Templated base class for dsmc cloud.
scalar pAmbient_
Averaged ambient domain pressure.
void restoreState()
Reset the current cloud to the previously stored state.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
void evolve()
Evolve the cloud.
functionType functions_
Optional cloud function objects.