46 namespace functionObjects
73 const bool dUdt = tracking == trackingType::parabolic;
87 if (context == cloud::contextType::fvModel)
89 result = initPsicDdt(m, rhoc) || result;
92 result = initPsicDdt(m, rhocPhase) || result;
105 if (context == cloud::contextType::fvModel)
109 const label ic = iToic[i];
112 result = initPsicDdt(m, Yc[ic]) || result;
116 const label icPhase = iToicPhase[i];
117 if (icPhase != -1 && &YcPhase[icPhase] != &Yc[ic])
119 result = initPsicDdt(m, YcPhase[icPhase]) || result;
129 if (context == cloud::contextType::fvModel)
133 result = initPsicDdt(m, hec) || result;
135 if (hasThermocPhase() && &hecPhase != &hec)
137 result = initPsicDdt(m, hecPhase) || result;
145 if (context == cloud::contextType::fvModel)
147 result = initPsicDdt(m, Uc) || result;
148 if (hasPhase() && &UcPhase != &Uc)
150 result = initPsicDdt(m, UcPhase) || result;
173 thermo().correctPressure(subMesh);
192 if (context == cloud::contextType::fvModel &&
final)
194 carrierEqn(rhoc) += psicEqn(deltaT, m, rhoc);
197 carrierEqn(rhocPhase) += psicEqn(deltaT, m, rhocPhase);
205 this->thermo<multicomponentLagrangianThermo>();
209 if (i ==
thermo.defaultSpecie())
continue;
224 thermo.normaliseY(subMesh);
227 if (context == cloud::contextType::fvModel &&
final)
231 const label ic = iToic[i];
234 carrierEqn(Yc[ic]) +=
235 psicEqn(deltaT, m,
e, Yc[ic]);
239 const label icPhase = iToicPhase[i];
240 if (icPhase != -1 && &YcPhase[icPhase] != &Yc[ic])
242 carrierEqn(YcPhase[icPhase]) +=
243 psicEqn(deltaT, m,
e, YcPhase[icPhase]);
262 thermo().correct(subMesh);
268 if (context == cloud::contextType::fvModel &&
final)
272 carrierEqn(hec) += psicEqn(deltaT, m,
e, hec);
274 if (hasThermocPhase() && &hecPhase != &hec)
276 carrierEqn(hecPhase) += psicEqn(deltaT, m,
e, hecPhase);
293 if (context == cloud::contextType::fvModel &&
final)
295 carrierEqn(Uc) += psicEqn(deltaT, m,
U, Uc);
296 if (hasPhase() && &UcPhase != &Uc)
298 carrierEqn(UcPhase) += 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.
#define forAll(list, i)
Loop across all elements in list.
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.
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...
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 of massive particles which are coupled to a fluid.
const CloudDerivedField< scalar > & m
Mass.
Cloud with spherical particles with multicomponent thermodynamic modelling.
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.
multicomponentParticle(LagrangianMesh &mesh, const contextType context, const dictionary &dict)
Construct from a mesh and context.
virtual ~multicomponentParticle()
Destructor.
virtual void partition()
Partition hook.
virtual void calculate(const LagrangianSubScalarField &deltaT, const bool final)
Update the cloud properties.
Base class for clouds with multicomponent thermodynamic modelling.
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.
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.
Base-class for multicomponent Lagrangian thermodynamic models.
A class for managing temporary objects.
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
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 dimensionSet & dimMass
tmp< DimensionedField< Type, GeoMesh, SubField > > toSubField(const DimensionedField< Type, GeoMesh, Field > &)
Return a temporary sub-field from a reference to a field.
PtrList< volScalarField > & Y
fluidMulticomponentThermo & thermo