47 namespace functionObjects
73 const bool dUdt = tracking == trackingType::parabolic;
93 if (context == cloud::contextType::fvModel)
95 result = initPsicDdt(m, rhoc) || result;
98 result = initPsicDdt(m, rhocPhase) || result;
106 if (context == cloud::contextType::fvModel)
110 result = initPsicDdt(m, hec) || result;
112 if (hasThermocPhase() && &hecPhase != &hec)
114 result = initPsicDdt(m, hecPhase) || result;
122 if (context == cloud::contextType::fvModel)
124 result = initPsicDdt(m, Uc) || result;
125 if (hasPhase() && &UcPhase != &Uc)
127 result = initPsicDdt(m, UcPhase) || result;
151 thermo().correctPressure(subMesh);
169 numberEqn.
solve(
final);
172 numberByNumber0 = number/number.
oldTime();
175 oneEqn *= numberByNumber0();
196 if (context == cloud::contextType::fvModel &&
final)
198 carrierEqn(rhoc) += number*psicEqn(deltaT, m, rhoc);
201 carrierEqn(rhocPhase) += number*psicEqn(deltaT, m, rhocPhase);
219 thermo().correct(subMesh);
225 if (context == cloud::contextType::fvModel &&
final)
229 carrierEqn(hec) += number*psicEqn(deltaT, m,
e, hec);
231 if (hasThermocPhase() && &hecPhase != &hec)
233 carrierEqn(hecPhase) += number*psicEqn(deltaT, m,
e, hecPhase);
251 if (context == cloud::contextType::fvModel &&
final)
253 carrierEqn(Uc) += number*psicEqn(deltaT, m,
U, Uc);
254 if (hasPhase() && &UcPhase != &Uc)
256 carrierEqn(UcPhase) += number*psicEqn(deltaT, m,
U, UcPhase);
Functions for calculating the time derivative for a Lagrangian equation.
Functions for calculating the time derivative for a Lagrangian equation.
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const GeoMesh & mesh() const
Return mesh.
This class stores the coefficients of a Lagrangian equation, and facilitates solving that equation an...
void solve(const bool final)
Solve.
bool valid() const
Determine whether this matrix has any valid coefficients.
Class containing Lagrangian geometry and topology.
List of Lagrangian models, constructed as a (Lagrangian) mesh object. Provides similar functions to t...
bool addsSupToField(const word &fieldName) const
Return true if the LagrangianModels adds a source term to the.
Mesh that relates to a sub-section of a Lagrangian mesh. This is used to construct fields that relate...
const Field0Type & oldTime() const
Return the old-time field.
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
contextType
Context in which this cloud is used.
virtual void solve(const bool initial, const bool final)
Solve the cloud's evolution over the current time-step.
Foam::LagrangianModels & LagrangianModels() const
Access the models.
virtual void partition()
Partition hook.
CloudStateField< vector > U
Velocity.
Base class for clouds which are carried by a fluid.
void clearCarrierFields()
Clear the carrier fields.
void resetCarrierFields(const bool initial)
Reset the carrier fields.
void updateCarrier()
Update the cached carrier fields.
Base class for clouds which are coupled to a fluid with a thermodynamic model.
void clearCarrierEqns()
Clear the carrier equations.
Base class for clouds in which particles are grouped into parcels.
Base class for clouds of massive particles which are coupled to a fluid.
const CloudDerivedField< scalar > & m
Mass.
Cloud with spherical particles with thermodynamic modelling, grouped into parcels.
virtual void solve(const bool initial, const bool final)
Solve the cloud's evolution over the current time-step.
virtual bool reCalculateModified()
Do we need to re-calculate particles that are modified?
virtual tmp< LagrangianSubVectorField > dUdt(const LagrangianSubMesh &) const
Return the acceleration with which to do second-order tracking.
parcel(LagrangianMesh &mesh, const contextType context, const dictionary &dict)
Construct from a mesh and context.
virtual ~parcel()
Destructor.
virtual void partition()
Partition hook.
virtual void calculate(const LagrangianSubScalarField &deltaT, const bool final)
Update the cloud properties.
Base class for clouds of spherical particles which are coupled to a carrier.
Base class for clouds with spherical particles.
void correct(const LagrangianSubScalarSubField &v)
Correct the shape to match the given volume.
Base class for clouds with thermodynamic modelling.
const Thermo & thermo(const Args &... args) const
Get a reference to the thermodynamic model of a given type.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Variant type that either contains and behaves as tmp object or represents a value of one....
A class for managing temporary objects.
static const word null
An empty word.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
tmp< LagrangianSubField< Type > > Ddt(const LagrangianSubSubField< Type > &psi)
Return the instantaneous time-derivative.
tmp< LagrangianEqn< Type > > Ddt(const LagrangianSubScalarField &deltaT, LagrangianSubSubField< Type > &psi)
Return the time-derivative matrix.
bool initDdt(const dimensionSet &mDims, const LagrangianSubSubField< Type > &psi, const bool instantaneousDdt=false)
Initialise time-derivative information. Registers fields used to.
addToRunTimeSelectionTable(cloud, dynamicParcel, LagrangianMesh)
defineTypeNameAndDebug(carried, 0)
makeCloudFunctionObject(dynamicParcel)
makeCloudFvModel(dynamicParcel)
const dimensionSet & dimless
const dimensionSet & dimMass
tmp< DimensionedField< Type, GeoMesh, SubField > > toSubField(const DimensionedField< Type, GeoMesh, Field > &)
Return a temporary sub-field from a reference to a field.
fluidMulticomponentThermo & thermo