30 template<
class CloudType>
34 return cloudCopyPtr_();
38 template<
class CloudType>
42 return particleProperties_;
46 template<
class CloudType>
50 return outputProperties_;
54 template<
class CloudType>
57 return outputProperties_;
61 template<
class CloudType>
69 template<
class CloudType>
76 template<
class CloudType>
77 inline const typename CloudType::particleType::constantProperties&
84 template<
class CloudType>
85 inline typename CloudType::particleType::constantProperties&
92 template<
class CloudType>
96 return subModelProperties_;
100 template<
class CloudType>
107 template<
class CloudType>
114 template<
class CloudType>
121 template<
class CloudType>
128 template<
class CloudType>
135 template<
class CloudType>
142 template<
class CloudType>
151 template<
class CloudType>
159 template<
class CloudType>
167 template<
class CloudType>
175 template<
class CloudType>
183 template<
class CloudType>
187 return dispersionModel_;
191 template<
class CloudType>
195 return dispersionModel_();
199 template<
class CloudType>
203 return patchInteractionModel_;
207 template<
class CloudType>
211 return patchInteractionModel_();
215 template<
class CloudType>
219 return stochasticCollisionModel_();
223 template<
class CloudType>
227 return stochasticCollisionModel_();
231 template<
class CloudType>
239 template<
class CloudType>
247 template<
class CloudType>
255 template<
class CloudType>
262 template<
class CloudType>
265 scalar sysMass = 0.0;
269 sysMass +=
p.nParticle()*
p.mass();
276 template<
class CloudType>
286 linearMomentum +=
p.nParticle()*
p.mass()*
p.U();
289 return linearMomentum;
293 template<
class CloudType>
297 scalar linearKineticEnergy = 0.0;
303 linearKineticEnergy +=
p.nParticle()*0.5*
p.mass()*(
p.U() &
p.U());
306 return linearKineticEnergy;
310 template<
class CloudType>
322 si +=
p.nParticle()*
pow(
p.d(), i);
323 sj +=
p.nParticle()*
pow(
p.d(), j);
328 sj =
max(sj, vSmall);
334 template<
class CloudType>
341 d =
min(d, iter().d());
348 template<
class CloudType>
355 d =
max(d, iter().d());
362 template<
class CloudType>
369 template<
class CloudType>
377 template<
class CloudType>
381 if (cellOccupancyPtr_.empty())
383 buildCellOccupancy();
386 return cellOccupancyPtr_();
390 template<
class CloudType>
394 return cellLengthScale_;
398 template<
class CloudType>
406 template<
class CloudType>
414 template<
class CloudType>
422 template<
class CloudType>
430 template<
class CloudType>
436 Info<<
"UTrans min/max = " <<
min(UTrans()).value() <<
", "
437 <<
max(UTrans()).value() <<
nl
438 <<
"UCoeff min/max = " <<
min(UCoeff()).value() <<
", "
439 <<
max(UCoeff()).value() <<
endl;
442 if (solution_.coupled())
444 if (solution_.semiImplicit(
"U"))
447 Vdt(this->mesh().V()*this->db().time().deltaT());
449 return UTrans()/Vdt -
fvm::Sp(UCoeff()/Vdt,
U) + UCoeff()/Vdt*
U;
456 fvm.
source() = -UTrans()/(this->db().time().deltaT());
466 template<
class CloudType>
474 this->
name() +
":vDotSweep",
477 extrapolatedCalculatedFvPatchScalarField::typeName
485 const label celli =
p.cell();
487 vDotSweep[celli] +=
p.nParticle()*
p.areaP()*
mag(
p.U() - U_[celli]);
497 template<
class CloudType>
505 this->
name() +
":alpha",
508 extrapolatedCalculatedFvPatchScalarField::typeName
516 const label celli =
p.cell();
518 alpha[celli] +=
p.nParticle()*
p.volume();
521 alpha.primitiveFieldRef() /= this->mesh().V();
522 alpha.correctBoundaryConditions();
528 template<
class CloudType>
546 const label celli =
p.cell();
548 Y[celli] +=
p.nParticle()*
p.mass();
551 Y /= (this->mesh().V()*rho_);
557 template<
class CloudType>
565 this->
name() +
":rhoEff",
575 const label celli =
p.cell();
577 rhoEff[celli] +=
p.nParticle()*
p.mass();
580 rhoEff /= this->mesh().V();
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic GeometricField class.
Internal::FieldType & primitiveFieldRef()
Return a reference to the primitive field.
void correctBoundaryConditions()
Correct boundary field.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
List of injection models.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Templated base class for momentum cloud.
volScalarField::Internal & UCoeffRef()
Access coefficient for carrier phase U equation.
const parcelType::constantProperties & constProps() const
Return the constant properties.
const dictionary & subModelProperties() const
Return reference to the sub-models dictionary.
functionType & functions()
Optional cloud function objects.
const InjectionModelList< MomentumCloud< CloudType > > & injectors() const
Return const access to the injection model.
scalar massInSystem() const
Total mass in system.
const DispersionModel< MomentumCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
const PatchInteractionModel< MomentumCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
const tmp< volScalarField > alpha() const
Return the particle volume fraction field.
const scalarField & cellLengthScale() const
Return the cell length scale.
tmp< volVectorField::Internal > UTrans() const
Return momentum source.
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 SurfaceFilmModel< MomentumCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
const volScalarField & rho() const
Return carrier gas density.
distributions::standardNormal & stdNormal() const
Return reference to the standard normal distribution.
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
tmp< volScalarField::Internal > UCoeff() const
Return coefficient for carrier phase U equation.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
label nParcels() const
Total number of parcels.
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
const cloudSolution & solution() const
Return const access to the solution properties.
scalar Dmin() const
Min diameter.
const tmp< volScalarField > vDotSweep() const
Volume swept rate of parcels per cell.
const StochasticCollisionModel< MomentumCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
volVectorField::Internal & UTransRef()
Access momentum source.
const forceType & forces() const
Optional particle forces.
const MomentumCloud & cloudCopy() const
Return a reference to the cloud copy.
scalar Dmax() const
Max diameter.
const tmp< volScalarField > Y() const
Return the particle mass fraction field.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
const dimensionedVector & g() const
Gravity.
tmp< fvVectorMatrix > SU(const volVectorField &U) const
Return tmp momentum source term.
const IOdictionary & outputProperties() const
Return output properties dictionary.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
randomGenerator & rndGen() const
Return reference to the random generator.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
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 any number of values (e....
Standard normal distribution. Not selectable.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Base for a set of schemes which integrate simple ODEs which arise from semi-implicit rate expressions...
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
Calculate the matrix for implicit and explicit sources.
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
tmp< VolField< Type > > Sp(const volScalarField &sp, const VolField< Type > &vf)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const bool)
Return a word representation of a bool.
const dimensionSet dimless
const dimensionSet dimForce
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const dimensionSet dimTime
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
const dimensionSet dimDensity
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
fvMatrix< vector > fvVectorMatrix
dimensioned< scalar > mag(const dimensioned< Type > &)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
PtrList< volScalarField > & Y