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>
235 return surfaceFilmModel_();
239 template<
class CloudType>
243 return surfaceFilmModel_();
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>
350 template<
class CloudType>
357 template<
class CloudType>
361 if (cellOccupancyPtr_.empty())
363 buildCellOccupancy();
366 return cellOccupancyPtr_();
370 template<
class CloudType>
374 return cellLengthScale_;
378 template<
class CloudType>
386 template<
class CloudType>
394 template<
class CloudType>
402 template<
class CloudType>
410 template<
class CloudType>
416 Info<<
"UTrans min/max = " <<
min(UTrans()).value() <<
", " 417 <<
max(UTrans()).value() <<
nl 418 <<
"UCoeff min/max = " <<
min(UCoeff()).value() <<
", " 419 <<
max(UCoeff()).value() <<
endl;
422 if (solution_.coupled())
424 if (solution_.semiImplicit(
"U"))
427 Vdt(this->
mesh().V()*this->db().time().deltaT());
429 return UTrans()/Vdt -
fvm::Sp(UCoeff()/Vdt, U) + UCoeff()/Vdt*
U;
436 fvm.
source() = -UTrans()/(this->db().time().deltaT());
446 template<
class CloudType>
454 this->
name() +
":vDotSweep",
457 extrapolatedCalculatedFvPatchScalarField::typeName
465 const label celli = p.cell();
467 vDotSweep[celli] += p.nParticle()*p.areaP()*
mag(p.U() - U_[celli]);
477 template<
class CloudType>
485 this->
name() +
":theta",
488 extrapolatedCalculatedFvPatchScalarField::typeName
496 const label celli = p.cell();
498 theta[celli] += p.nParticle()*p.volume();
508 template<
class CloudType>
516 this->
name() +
":alpha",
526 const label celli = p.cell();
528 alpha[celli] += p.nParticle()*p.mass();
531 alpha /= (this->
mesh().V()*rho_);
537 template<
class CloudType>
545 this->
name() +
":rhoEff",
555 const label celli = p.cell();
557 rhoEff[celli] += p.nParticle()*p.mass();
560 rhoEff /= this->
mesh().V();
tmp< fvVectorMatrix > SU(const volVectorField &U) const
Return tmp momentum source term.
scalar linearKineticEnergyOfSystem() const
Total linear kinetic energy in the system.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
const SurfaceFilmModel< MomentumCloud< CloudType > > & surfaceFilm() const
Return const-access to the surface film model.
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of 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...
T & ref() const
Return non-const reference or generate a fatal error.
functionType & functions()
Optional cloud function objects.
tmp< volVectorField::Internal > UTrans() const
Return momentum source.
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
const PatchInteractionModel< MomentumCloud< CloudType > > & patchInteraction() const
Return const-access to the patch interaction model.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const tmp< volScalarField > alpha() const
Return the particle mass fraction field.
scalar Dij(const label i, const label j) const
Mean diameter Dij.
const dimensionSet dimless
const parcelType::constantProperties & constProps() const
Return the constant properties.
Templated patch interaction model class.
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.
const volScalarField & rho() const
Return carrier gas density.
const dimensionSet dimTime
volScalarField::Internal & UCoeffRef()
Access coefficient for carrier phase U equation.
const integrationScheme & UIntegrator() const
Return reference to velocity integration.
const StochasticCollisionModel< MomentumCloud< CloudType > > & stochasticCollision() const
Return const-access to the stochastic collision model.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
const dimensionSet dimDensity
const tmp< volScalarField > rhoEff() const
Return the particle effective density field.
List of injection models.
const InjectionModelList< MomentumCloud< CloudType > > & injectors() const
Return const access to the injection model.
const IOdictionary & outputProperties() const
Return output properties dictionary.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
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.
const tmp< volScalarField > theta() const
Return the particle volume fraction field.
const dimensionSet dimForce
scalar massInSystem() const
Total mass in system.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
scalar Dmax() const
Max diameter.
const scalarField & cellLengthScale() const
Return the cell length scale.
const IOdictionary & particleProperties() const
Return particle properties dictionary.
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 tmp< volScalarField::Internal > & Sp
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.
label nParcels() const
Total number of parcels.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Random & rndGen() const
Return reference to the random object.
Stores all relevant solution info for cloud.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
tmp< volScalarField::Internal > UCoeff() const
Return coefficient for carrier phase U equation.
Templated stochastic collision model class.
fvMatrix< vector > fvVectorMatrix
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
void correctBoundaryConditions()
Correct boundary field.
dimensioned< scalar > mag(const dimensioned< Type > &)
const volVectorField & U() const
Return carrier gas velocity.
const dimensionedVector & g() const
Gravity.
const DispersionModel< MomentumCloud< CloudType > > & dispersion() const
Return const-access to the dispersion model.
A class for managing temporary objects.
const forceType & forces() const
Optional particle forces.
const MomentumCloud & cloudCopy() const
Return a reference to the cloud copy.
List< DynamicList< parcelType * > > & cellOccupancy()
Return the cell occupancy information for each.
vector linearMomentumOfSystem() const
Total linear momentum of the system.
Calculate the matrix for implicit and explicit sources.