33template<
class CloudType>
37 return *cloudCopyPtr_;
41template<
class CloudType>
48template<
class CloudType>
56template<
class CloudType>
64template<
class CloudType>
71template<
class CloudType>
79template<
class CloudType>
86template<
class CloudType>
87inline const typename CloudType::particleType::constantProperties&
94template<
class CloudType>
95inline typename CloudType::particleType::constantProperties&
102template<
class CloudType>
110template<
class CloudType>
117template<
class CloudType>
124template<
class CloudType>
131template<
class CloudType>
138template<
class CloudType>
145template<
class CloudType>
152template<
class CloudType>
161template<
class CloudType>
169template<
class CloudType>
177template<
class CloudType>
185template<
class CloudType>
193template<
class CloudType>
201template<
class CloudType>
209template<
class CloudType>
217template<
class CloudType>
225template<
class CloudType>
233template<
class CloudType>
241template<
class CloudType>
249template<
class CloudType>
257template<
class CloudType>
265template<
class CloudType>
273template<
class CloudType>
281template<
class CloudType>
289template<
class CloudType>
297template<
class CloudType>
305template<
class CloudType>
313template<
class CloudType>
316 scalar sysMass = 0.0;
317 for (
const parcelType&
p : *
this)
319 sysMass +=
p.nParticle()*
p.mass();
326template<
class CloudType>
332 for (
const parcelType&
p : *
this)
334 linearMomentum +=
p.nParticle()*
p.mass()*
p.U();
337 return linearMomentum;
341template<
class CloudType>
345 scalar parPerParcel = 0;
347 for (
const parcelType&
p : *
this)
349 parPerParcel +=
p.nParticle();
356template<
class CloudType>
360 scalar linearKineticEnergy = 0;
362 for (
const parcelType&
p : *
this)
364 linearKineticEnergy +=
p.nParticle()*0.5*
p.mass()*(
p.U() &
p.U());
367 return linearKineticEnergy;
371template<
class CloudType>
380 for (
const parcelType&
p : *
this)
382 si +=
p.nParticle()*pow(
p.d(), i);
383 sj +=
p.nParticle()*pow(
p.d(), j);
386 reduce(si, sumOp<scalar>());
387 reduce(sj, sumOp<scalar>());
394template<
class CloudType>
398 for (
const parcelType&
p : *
this)
409template<
class CloudType>
416template<
class CloudType>
420 if (!cellOccupancyPtr_)
422 buildCellOccupancy();
429template<
class CloudType>
437template<
class CloudType>
441 const typename parcelType::trackingData&
td
444 const scalar m =
p.nParticle()*
p.mass();
446 rhokTrans()[
p.cell()] += m;
452template<
class CloudType>
460template<
class CloudType>
468template<
class CloudType>
476template<
class CloudType>
484template<
class CloudType>
492template<
class CloudType>
500template<
class CloudType>
506 Pout<<
"rhokTrans min/max = " <<
min(rhokTrans()).value() <<
", "
512 return rhokTrans()/this->db().time().deltaT()/this->
mesh().V();
515 return tmp<volScalarField::Internal>::New
527template<
class CloudType>
536 <<
"UCoeff min/max = " <<
min(
UCoeff()).value() <<
", "
546 if (solution_.coupled())
551 Vdt(
mesh_.V()*this->db().time().deltaT());
563 auto&
fvm = tfvm.ref();
575template<
class CloudType>
590 const label celli =
p.cell();
595 vDotSweep.primitiveFieldRef() /= mesh_.V();
596 vDotSweep.correctBoundaryConditions();
602template<
class CloudType>
613 auto&
theta = ttheta.ref();
617 const label celli =
p.cell();
619 theta[celli] +=
p.nParticle()*
p.volume();
622 theta.primitiveFieldRef() /= mesh_.V();
623 theta.correctBoundaryConditions();
629template<
class CloudType>
643 const label celli =
p.cell();
645 alpha[celli] +=
p.nParticle()*
p.mass();
648 alpha /= (mesh_.V()*rho_);
654template<
class CloudType>
668 const label celli =
p.cell();
670 rhoEff[celli] +=
p.nParticle()*
p.mass();
Base class for collisional damping models.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet & dimensions() const noexcept
Return dimensions.
Base class for dispersion modelling.
DimensionedField< scalar, volMesh > Internal
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const objectRegistry & db() const noexcept
Return the local objectRegistry.
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
List of injection models.
Base class for collisional return-to-isotropy models.
Templated base class for kinematic cloud.
const parcelType::constantProperties & constProps() const
Return the constant properties.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
autoPtr< volScalarField::Internal > rhokTrans_
Mass for kinematic cloud.
cloudSolution solution_
Solution properties.
autoPtr< DampingModel< KinematicCloud< CloudType > > > dampingModel_
Damping model.
autoPtr< volVectorField::Internal > UTrans_
Momentum.
scalar massInSystem() const
Total mass in system.
scalar totalParticlePerParcel() const
Average particle per parcel.
forceType forces_
Optional particle forces.
tmp< volScalarField::Internal > Srhok() const
Return tmp mass source for kinematic.
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
const fvMesh & mesh_
References to the mesh and time databases.
autoPtr< SurfaceFilmModel< KinematicCloud< CloudType > > > surfaceFilmModel_
Surface film model.
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
const scalarField & cellLengthScale() const
Return the cell length scale.
scalar pAmbient_
Averaged ambient domain pressure.
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
scalarField cellLengthScale_
Cell length scale.
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
autoPtr< integrationScheme > UIntegrator_
Velocity integration.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
const volVectorField & U() const
Return carrier gas velocity.
scalar pAmbient() const
Return const-access to the ambient pressure.
const KinematicCloud & cloudCopy() const
Return a reference to the cloud copy.
InjectionModelList< KinematicCloud< CloudType > > injectors_
Injector models.
const volScalarField & rho() const
Return carrier gas density.
autoPtr< IsotropyModel< KinematicCloud< CloudType > > > isotropyModel_
Exchange model.
autoPtr< DispersionModel< KinematicCloud< CloudType > > > dispersionModel_
Dispersion model.
autoPtr< PatchInteractionModel< KinematicCloud< CloudType > > > patchInteractionModel_
Patch interaction model.
const volVectorField & U_
Velocity [m/s].
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
const volScalarField & mu_
Dynamic viscosity [Pa.s].
const dimensionedVector & g_
Gravity.
functionType & functions()
Optional cloud function objects.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
const cloudSolution & solution() const
Return const access to the solution properties.
const dictionary subModelProperties_
Sub-models dictionary.
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
const PackingModel< KinematicCloud< CloudType > > & packingModel() const
Return const access to the packing model.
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
volScalarField::Internal & UCoeff()
Return coefficient for carrier phase U equation.
functionType functions_
Optional cloud function objects.
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
parcelType::constantProperties constProps_
Parcel constant properties.
scalar Dmax() const
Max diameter.
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
Cell occupancy information for each parcel, (demand driven).
const DampingModel< KinematicCloud< CloudType > > & dampingModel() const
Return const access to the damping model.
const volScalarField & rho_
Density [kg/m3].
CloudFunctionObjectList< KinematicCloud< CloudType > > functionType
Function object type.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
IOdictionary particleProperties_
Dictionary of particle properties.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
volVectorField::Internal & UTrans()
Return reference to momentum source.
tmp< fvVectorMatrix > SU(volVectorField &U, bool incompressible=false) const
Return tmp momentum source term (compressible).
const dimensionedVector & g() const
Gravity.
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
const fvMesh & mesh() const
Return reference to the mesh.
Random rndGen_
Random number generator - used by some injection routines.
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Return const access to the injection model.
Random & rndGen() const
Return reference to the random object.
volScalarField::Internal & rhokTrans()
Return reference to mass for kinematic source.
const forceType & forces() const
Optional particle forces.
ParticleForceList< KinematicCloud< CloudType > > forceType
Force models type.
autoPtr< PackingModel< KinematicCloud< CloudType > > > packingModel_
Packing model.
const IOdictionary & outputProperties() const
Return output properties dictionary.
const IsotropyModel< KinematicCloud< CloudType > > & isotropyModel() const
Return const access to the isotropy model.
void buildCellOccupancy()
Build the cellOccupancy.
autoPtr< volScalarField::Internal > UCoeff_
IOdictionary outputProperties_
Dictionary of output properties.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
autoPtr< StochasticCollisionModel< KinematicCloud< CloudType > > > stochasticCollisionModel_
Stochastic collision model.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Base class for packing models.
Templated patch interaction model class.
Templated stochastic collision model class.
Templated wall surface film model class.
Stores all relevant solution info for cloud.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
Mesh data needed to do the Finite Volume discretisation.
static const word & extrapolatedCalculatedType() noexcept
The type name for extrapolatedCalculated patch fields combines zero-gradient and calculated.
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions.
IOobject newIOobject(const word &name, IOobjectOption ioOpt) const
Create an IOobject at the current time instance (timeName) with the specified options.
Selector class for relaxation factors, solver type and solution.
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
Calculate the finiteVolume matrix for implicit and explicit sources.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
Namespace for handling debugging switches.
Namespace of functions to calculate implicit derivatives returning a matrix.
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
GeometricField< vector, fvPatchField, volMesh > volVectorField
const dimensionSet dimless
Dimensionless.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
void reduce(T &value, BinaryOp bop, const int tag=UPstream::msgType(), const int communicator=UPstream::worldComm)
Reduce inplace (cf. MPI Allreduce).
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
const dimensionSet dimForce
static constexpr const zero Zero
Global zero (0).
const dimensionSet dimVolume(pow3(dimLength))
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimDensity
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
constexpr char nl
The newline '\n' character (0x0a).