34 template<
class CloudType>
37 const typename CloudType::parcelType&
p,
38 const typename CloudType::parcelType::trackingData& td,
51 template<
class CloudType>
61 UName_(this->coeffs().template getOrDefault<
word>(
"U",
"U")),
62 curlUcInterpPtr_(nullptr)
66 template<
class CloudType>
71 curlUcInterpPtr_(nullptr)
77 template<
class CloudType>
84 template<
class CloudType>
87 static word resultName(
"curlUcDt");
90 this->
mesh().template getObjectPtr<volVectorField>(resultName);
97 lookupObject<volVectorField>(UName_);
106 curlUcInterpPtr_.reset
110 this->owner().solution().interpolationSchemes(),
117 curlUcInterpPtr_.
clear();
121 resultPtr->checkOut();
127 template<
class CloudType>
130 const typename CloudType::parcelType&
p,
131 const typename CloudType::parcelType::trackingData& td,
138 forceSuSp value(
Zero);
141 curlUcInterp().interpolate(
p.coordinates(),
p.currentTetIndices());
143 scalar Cl = this->Cl(
p, td, curlUc,
Re, muc);
145 value.Su() = mass/
p.rho()*td.rhoc()*Cl*((td.Uc() -
p.U())^curlUc);
virtual void cacheFields(const bool store)
Cache fields.
LiftForce(CloudType &owner, const fvMesh &mesh, const dictionary &dict, const word &forceType)
Construct from mesh.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
Abstract base class for particle forces.
GeometricField< vector, fvPatchField, volMesh > volVectorField
tmp< GeometricField< Type, fvPatchField, volMesh > > curl(const GeometricField< Type, fvPatchField, volMesh > &vf)
Helper container for force Su and Sp terms.
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.
void clear()
Clear the list, i.e. set size to zero.
Calculate the curl of the given volField by constructing the Hodge-dual of the symmetric part of the ...
A class for handling words, derived from Foam::string.
virtual ~LiftForce()
Destructor.
scalarField Re(const UList< complex > &cmplx)
Extract real component.
Mesh data needed to do the Finite Volume discretisation.
Base class for particle lift force models.
Templated base class for dsmc cloud.
static constexpr const zero Zero
Global zero (0)