31 template<
class CloudType>
35 return cloudCopyPtr_();
39 template<
class CloudType>
46 template<
class CloudType>
50 return particleProperties_;
54 template<
class CloudType>
58 return outputProperties_;
62 template<
class CloudType>
65 return outputProperties_;
69 template<
class CloudType>
77 template<
class CloudType>
84 template<
class CloudType>
85 inline const typename CloudType::particleType::constantProperties&
92 template<
class CloudType>
93 inline typename CloudType::particleType::constantProperties&
100 template<
class CloudType>
104 return subModelProperties_;
108 template<
class CloudType>
115 template<
class CloudType>
122 template<
class CloudType>
129 template<
class CloudType>
136 template<
class CloudType>
143 template<
class CloudType>
150 template<
class CloudType>
159 template<
class CloudType>
167 template<
class CloudType>
175 template<
class CloudType>
183 template<
class CloudType>
191 template<
class CloudType>
195 return dispersionModel_;
199 template<
class CloudType>
203 return dispersionModel_();
207 template<
class CloudType>
211 return patchInteractionModel_;
215 template<
class CloudType>
219 return patchInteractionModel_();
223 template<
class CloudType>
227 return stochasticCollisionModel_();
231 template<
class CloudType>
235 return stochasticCollisionModel_();
239 template<
class CloudType>
243 return surfaceFilmModel_();
247 template<
class CloudType>
251 return surfaceFilmModel_();
255 template<
class CloudType>
263 template<
class CloudType>
270 template<
class CloudType>
273 scalar sysMass = 0.0;
277 sysMass += p.nParticle()*p.mass();
284 template<
class CloudType>
294 linearMomentum += p.nParticle()*p.mass()*p.U();
297 return linearMomentum;
301 template<
class CloudType>
305 scalar linearKineticEnergy = 0.0;
311 linearKineticEnergy += p.nParticle()*0.5*p.mass()*(p.U() & p.U());
314 return linearKineticEnergy;
318 template<
class CloudType>
330 si += p.nParticle()*
pow(p.d(), i);
331 sj += p.nParticle()*
pow(p.d(), j);
336 sj =
max(sj, vSmall);
342 template<
class CloudType>
358 template<
class CloudType>
365 template<
class CloudType>
369 if (cellOccupancyPtr_.empty())
371 buildCellOccupancy();
374 return cellOccupancyPtr_();
378 template<
class CloudType>
382 return cellLengthScale_;
386 template<
class CloudType>
394 template<
class CloudType>
402 template<
class CloudType>
410 template<
class CloudType>
418 template<
class CloudType>
424 Info<<
"UTrans min/max = " <<
min(UTrans()).value() <<
", " 425 <<
max(UTrans()).value() <<
nl 426 <<
"UCoeff min/max = " <<
min(UCoeff()).value() <<
", " 427 <<
max(UCoeff()).value() <<
endl;
430 if (solution_.coupled())
432 if (solution_.semiImplicit(
"U"))
435 Vdt(mesh_.V()*this->db().time().deltaT());
437 return UTrans()/Vdt -
fvm::Sp(UCoeff()/Vdt, U) + UCoeff()/Vdt*
U;
444 fvm.
source() = -UTrans()/(this->db().time().deltaT());
454 template<
class CloudType>
462 this->
name() +
":vDotSweep",
465 extrapolatedCalculatedFvPatchScalarField::typeName
473 const label celli = p.cell();
475 vDotSweep[celli] += p.nParticle()*p.areaP()*
mag(p.U() - U_[celli]);
485 template<
class CloudType>
493 this->
name() +
":theta",
496 extrapolatedCalculatedFvPatchScalarField::typeName
504 const label celli = p.cell();
506 theta[celli] += p.nParticle()*p.volume();
516 template<
class CloudType>
524 this->
name() +
":alpha",
534 const label celli = p.cell();
536 alpha[celli] += p.nParticle()*p.mass();
539 alpha /= (mesh_.V()*rho_);
545 template<
class CloudType>
553 this->
name() +
":rhoEff",
563 const label celli = p.cell();
565 rhoEff[celli] += p.nParticle()*p.mass();
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
const scalarField & cellLengthScale() const
Return the cell length scale.
A list of keyword definitions, which are a keyword followed by any number of values (e...
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
scalar Dmax() const
Max diameter.
Cloud< basicKinematicCollidingParcel > ::particleType parcelType
Type of parcel the cloud was instantiated for.
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Return const access to the injection model.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
T & ref() const
Return non-const reference or generate a fatal error.
const KinematicCloud & cloudCopy() const
Return a reference to the cloud copy.
const volScalarField & rho() const
Return carrier gas density.
const fvMesh & mesh() const
Return reference to the mesh.
Ostream & endl(Ostream &os)
Add newline and flush stream.
volVectorField::Internal & UTrans()
Return reference to momentum source.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
const parcelType::constantProperties & constProps() const
Return the constant properties.
Templated patch interaction model class.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
scalar massInSystem() const
Total mass in system.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const forceType & forces() const
Optional particle forces.
volScalarField::Internal & UCoeff()
Return coefficient for carrier phase U equation.
List of injection models.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
const dimensionSet dimForce
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
scalar pAmbient() const
Return const-access to the ambient pressure.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
word name(const complex &)
Return a string representation of a complex.
const dimensionSet dimDensity
const cloudSolution & solution() const
Return const access to the solution properties.
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions...
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const IOdictionary & particleProperties() const
Return particle properties dictionary.
Templated base class for kinematic cloud.
Stores all relevant solution info for cloud.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
Templated stochastic collision model class.
Mesh data needed to do the Finite Volume discretisation.
fvMatrix< vector > fvVectorMatrix
vector linearMomentumOfSystem() const
Total linear momentum of the system.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionedVector & g() const
Gravity.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const IOdictionary & outputProperties() const
Return output properties dictionary.
void correctBoundaryConditions()
Correct boundary field.
const volVectorField & U() const
Return carrier gas velocity.
dimensioned< scalar > mag(const dimensioned< Type > &)
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
A class for managing temporary objects.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
tmp< fvVectorMatrix > SU(volVectorField &U) const
Return tmp momentum source term.
functionType & functions()
Optional cloud function objects.
Random & rndGen() const
Return reference to the random object.
Calculate the matrix for implicit and explicit sources.
label nParcels() const
Total number of parcels.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.