35template<
class CloudType>
50template<
class CloudType>
64template<
class CloudType>
71template<
class CloudType>
74 static word resultName(
"DUcDt");
77 this->
mesh().template getObjectPtr<volVectorField>(resultName);
84 lookupObject<volVectorField>(UName_);
94 const volVectorField& DUcDt = *resultPtr;
98 interpolation<vector>::New
100 this->owner().solution().interpolationSchemes(),
107 DUcDtInterpPtr_.clear();
117template<
class CloudType>
120 const typename CloudType::parcelType&
p,
121 const typename CloudType::parcelType::trackingData&
td,
128 forceSuSp value(Zero);
131 DUcDtInterp().interpolate(
p.coordinates(),
p.currentTetIndices());
133 value.Su() = mass*
td.rhoc()/
p.rho()*DUcDt;
139template<
class CloudType>
143 const typename CloudType::parcelType::trackingData&
td,
Abstract base class for particle forces.
const fvMesh & mesh() const noexcept
Return the mesh database.
const CloudType & owner() const noexcept
Return const access to the cloud owner.
ParticleForce(CloudType &owner, const fvMesh &mesh, const dictionary &dict, const word &forceType, const bool readCoeffs)
Construct from mesh.
const dictionary & coeffs() const noexcept
Return the force coefficients dictionary.
Calculates particle pressure gradient force.
autoPtr< interpolation< vector > > DUcDtInterpPtr_
Rate of change of carrier phase velocity interpolator.
virtual void cacheFields(const bool store)
Cache fields.
const interpolation< vector > & DUcDtInterp() const
Return the rate of change of carrier phase velocity interpolator.
virtual scalar massAdd(const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar mass) const
Return the added mass.
PressureGradientForce(CloudType &owner, const fvMesh &mesh, const dictionary &dict, const word &forceType=typeName)
Construct from mesh.
const word UName_
Name of velocity field.
virtual forceSuSp calcCoupled(const typename CloudType::parcelType &p, const typename CloudType::parcelType::trackingData &td, const scalar dt, const scalar mass, const scalar Re, const scalar muc) const
Calculate the non-coupled force.
virtual ~PressureGradientForce()
Destructor.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Helper container for force Su and Sp terms.
const vector & Su() const
Return const access to the explicit contribution [kg.m/s2].
Mesh data needed to do the Finite Volume discretisation.
static autoPtr< interpolation< Type > > New(const word &interpolationType, const GeometricField< Type, fvPatchField, volMesh > &psi)
Return a reference to the specified interpolation scheme.
bool store()
Register object with its registry and transfer ownership to the registry.
bool checkOut()
Remove object from registry, and remove all file watches.
Selector class for relaxation factors, solver type and solution.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
A class for handling words, derived from Foam::string.
Calculate the first temporal derivative.
Calculate the gradient of the given field.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
DSMCCloud< dsmcParcel > CloudType
GeometricField< vector, fvPatchField, volMesh > volVectorField
static constexpr const zero Zero
Global zero (0).
scalarField Re(const UList< complex > &cmplx)
Extract real component.