Go to the documentation of this file.
57 #ifndef KinematicCloud_H
58 #define KinematicCloud_H
83 template<
class CloudType>
86 template<
class CloudType>
89 template<
class CloudType>
92 template<
class CloudType>
95 template<
class CloudType>
98 template<
class CloudType>
101 template<
class CloudType>
104 template<
class CloudType>
112 template<
class CloudType>
173 typename parcelType::constantProperties
constProps_;
274 template<
class TrackCloudType>
277 TrackCloudType&
cloud,
278 typename parcelType::trackingData& td
289 template<
class TrackCloudType>
292 TrackCloudType&
cloud,
293 typename parcelType::trackingData& td
297 void postEvolve(
const typename parcelType::trackingData& td);
361 inline const KinematicCloud&
cloudCopy()
const;
367 inline const fvMesh&
mesh()
const;
379 inline const cloudSolution&
solution()
const;
385 inline const typename parcelType::constantProperties&
389 inline typename parcelType::constantProperties&
constProps();
398 inline Random&
rndGen()
const;
447 inline const InjectionModelList<KinematicCloud<CloudType>>&
451 inline InjectionModelList<KinematicCloud<CloudType>>&
455 inline const DispersionModel<KinematicCloud<CloudType>>&
459 inline DispersionModel<KinematicCloud<CloudType>>&
463 inline const PatchInteractionModel<KinematicCloud<CloudType>>&
467 inline PatchInteractionModel<KinematicCloud<CloudType>>&
472 StochasticCollisionModel<KinematicCloud<CloudType>>&
476 inline StochasticCollisionModel<KinematicCloud<CloudType>>&
480 inline const SurfaceFilmModel<KinematicCloud<CloudType>>&
484 inline SurfaceFilmModel<KinematicCloud<CloudType>>&
489 inline const PackingModel<KinematicCloud<CloudType>>&
493 inline PackingModel<KinematicCloud<CloudType>>&
497 inline const DampingModel<KinematicCloud<CloudType>>&
501 inline DampingModel<KinematicCloud<CloudType>>&
505 inline const IsotropyModel<KinematicCloud<CloudType>>&
509 inline IsotropyModel<KinematicCloud<CloudType>>&
516 inline const integrationScheme&
UIntegrator()
const;
538 inline tmp<fvVectorMatrix>
SU
541 bool incompressible =
false
569 inline scalar
Dij(
const label i,
const label j)
const;
572 inline scalar
Dmax()
const;
599 const scalar lagrangianDt
606 const scalar lagrangianDt,
607 const bool fullyDescribed
645 const typename parcelType::trackingData& td
652 template<
class TrackCloudType>
655 TrackCloudType&
cloud,
656 typename parcelType::trackingData& td
volScalarField::Internal & UCoeff()
void patchData(const parcelType &p, const polyPatch &pp, vector &normal, vector &Up) const
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
tmp< fvVectorMatrix > SU(volVectorField &U, bool incompressible=false) const
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const integrationScheme & UIntegrator() const
autoPtr< SurfaceFilmModel< KinematicCloud< CloudType > > > surfaceFilmModel_
virtual void writeObjects(objectRegistry &obr) const
const dimensionedVector & g_
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
A class for handling words, derived from Foam::string.
functionType & functions()
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
autoPtr< IsotropyModel< KinematicCloud< CloudType > > > isotropyModel_
A class for managing temporary objects.
autoPtr< StochasticCollisionModel< KinematicCloud< CloudType > > > stochasticCollisionModel_
Base class for dispersion modelling.
const parcelType::constantProperties & constProps() const
const volVectorField & U_
autoPtr< PatchInteractionModel< KinematicCloud< CloudType > > > patchInteractionModel_
scalar totalParticlePerParcel() const
const fvMesh & mesh() const
const volScalarField & mu() const
void relaxSources(const KinematicCloud< CloudType > &cloudOldTime)
const DampingModel< KinematicCloud< CloudType > > & dampingModel() const
scalar massInSystem() const
const tmp< volScalarField > rhoEff() const
virtual label nParcels() const
const forceType & forces() const
const SurfaceFilmModel< KinematicCloud< CloudType > > & surfaceFilm() const
const KinematicCloud & cloudCopy() const
autoPtr< volVectorField::Internal > UTrans_
const InjectionModelList< KinematicCloud< CloudType > > & injectors() const
Base class for collisional damping models.
Base for a set of schemes which integrate simple ODEs which arise from semi-implcit rate expressions.
virtual label nParcels() const
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
virtual void readObjects(const objectRegistry &obr)
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Registry of regIOobjects.
const tmp< volScalarField > vDotSweep() const
scalar rotationalKineticEnergyOfSystem() const
Virtual abstract base class for templated KinematicCloud.
Templated base class for kinematic cloud.
const word & cloudName() const
Templated patch interaction model class.
virtual ~KinematicCloud()=default
InjectionModelList< KinematicCloud< CloudType > > injectors_
Templated stochastic collision model class.
Generic templated field type.
List< DynamicList< parcelType * > > & cellOccupancy()
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Templated wall surface film model class.
autoPtr< PackingModel< KinematicCloud< CloudType > > > packingModel_
A patch is a list of labels that address the faces in the global face list.
autoPtr< DampingModel< KinematicCloud< CloudType > > > dampingModel_
DimensionedField< Type, GeoMesh > Internal
autoPtr< integrationScheme > UIntegrator_
volVectorField::Internal & UTrans()
Stores all relevant solution info for cloud.
KinematicCloud< CloudType > kinematicCloudType
autoPtr< List< DynamicList< parcelType * > > > cellOccupancyPtr_
GeometricField< scalar, fvPatchField, volMesh > volScalarField
IOdictionary particleProperties_
Templated base class for dsmc cloud.
Base class for packing models.
autoPtr< volScalarField::Internal > UCoeff_
const volScalarField & mu_
void preEvolve(const typename parcelType::trackingData &td)
CloudFunctionObjectList< KinematicCloud< CloudType > > functionType
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
ParticleType particleType
const StochasticCollisionModel< KinematicCloud< CloudType > > & stochasticCollision() const
virtual void autoMap(const mapPolyMesh &)
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
const IOdictionary & particleProperties() const
const cloudSolution & solution() const
List of cloud function objects.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject * > &storedObjects)
GeometricField< vector, fvPatchField, volMesh > volVectorField
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
void solve(TrackCloudType &cloud, typename parcelType::trackingData &td)
const IsotropyModel< KinematicCloud< CloudType > > & isotropyModel() const
const DispersionModel< KinematicCloud< CloudType > > & dispersion() const
const dictionary subModelProperties_
const PatchInteractionModel< KinematicCloud< CloudType > > & patchInteraction() const
void cloudReset(KinematicCloud< CloudType > &c)
parcelType::constantProperties constProps_
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const dimensionedVector & g() const
const tmp< volScalarField > theta() const
CloudType::particleType parcelType
void relax(DimensionedField< Type, volMesh > &field, const DimensionedField< Type, volMesh > &field0, const word &name) const
const PackingModel< KinematicCloud< CloudType > > & packingModel() const
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const dimensionedScalar c
scalar Dij(const label i, const label j) const
word name(const expressions::valueTypeCode typeCode)
void updateCellOccupancy()
scalarField cellLengthScale_
const dictionary & subModelProperties() const
void buildCellOccupancy()
Base class for collisional return-to-isotropy models.
const volVectorField & U() const
scalar linearKineticEnergyOfSystem() const
const volScalarField & rho_
Generic GeometricField class.
vector linearMomentumOfSystem() const
void evolveCloud(TrackCloudType &cloud, typename parcelType::trackingData &td)
autoPtr< DispersionModel< KinematicCloud< CloudType > > > dispersionModel_
ParticleForceList< KinematicCloud< CloudType > > forceType
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
const IOdictionary & outputProperties() const
void scale(DimensionedField< Type, volMesh > &field, const word &name) const
List of injection models.
const tmp< volScalarField > alpha() const
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const volScalarField & rho() const
const scalarField & cellLengthScale() const
IOdictionary outputProperties_
void postEvolve(const typename parcelType::trackingData &td)