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>
464 this->
name() +
":vDotSweep",
473 extrapolatedCalculatedFvPatchScalarField::typeName
481 const label celli = p.cell();
483 vDotSweep[celli] += p.nParticle()*p.areaP()*
mag(p.U() - U_[celli]);
493 template<
class CloudType>
503 this->
name() +
":theta",
512 extrapolatedCalculatedFvPatchScalarField::typeName
520 const label celli = p.cell();
522 theta[celli] += p.nParticle()*p.volume();
532 template<
class CloudType>
542 this->
name() +
":alpha",
558 const label celli = p.cell();
560 alpha[celli] += p.nParticle()*p.mass();
563 alpha /= (mesh_.V()*rho_);
569 template<
class CloudType>
579 this->
name() +
":rhoEff",
595 const label celli = p.cell();
597 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.
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.
A class for managing temporary objects.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
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.