34 template<
class CloudType>
45 this->coeffs().template getOrDefault<
word>
54 this->coeffs().template getOrDefault<
word>
63 this->coeffs().template getOrDefault<
word>
65 "angularAcceleration",
72 this->coeffs().template getOrDefault<
word>
78 centreOfRotation_(
Zero)
82 template<
class CloudType>
91 omegaName_(niff.omegaName_),
93 omegaDotName_(niff.omegaDotName_),
94 omegaDot_(niff.omegaDot_),
95 centreOfRotationName_(niff.centreOfRotationName_),
96 centreOfRotation_(niff.centreOfRotation_)
102 template<
class CloudType>
109 template<
class CloudType>
115 centreOfRotation_ =
Zero;
121 this->
mesh().
template foundObject<uniformDimensionedVectorField>
128 lookupObject<uniformDimensionedVectorField>(WName_);
135 this->
mesh().
template foundObject<uniformDimensionedVectorField>
142 lookupObject<uniformDimensionedVectorField>(omegaName_);
144 omega_ = omega.value();
149 this->
mesh().
template foundObject<uniformDimensionedVectorField>
156 this->
mesh().template
157 lookupObject<uniformDimensionedVectorField>(omegaDotName_);
159 omegaDot_ = omegaDot.value();
164 this->
mesh().
template foundObject<uniformDimensionedVectorField>
166 centreOfRotationName_
171 this->
mesh().template
172 lookupObject<uniformDimensionedVectorField>
174 centreOfRotationName_
177 centreOfRotation_ = centreOfRotation.value();
183 template<
class CloudType>
187 const typename CloudType::parcelType::trackingData& td,
194 forceSuSp value(
Zero);
196 const vector r =
p.position() - centreOfRotation_;
203 + 2.0*(
p.U() ^ omega_)
204 + (omega_ ^ (r ^ omega_))
const Type & value() const noexcept
Return const reference to value.
UniformDimensionedField< vector > uniformDimensionedVectorField
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual void cacheFields(const bool store)
Cache fields.
Abstract base class for particle forces.
virtual ~NonInertialFrameForce()
Destructor.
Helper container for force Su and Sp terms.
A class for handling words, derived from Foam::string.
Calculates particle non-inertial reference frame force. Variable names as from Landau and Lifshitz...
NonInertialFrameForce(CloudType &owner, const fvMesh &mesh, const dictionary &dict)
Construct from mesh.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
scalarField Re(const UList< complex > &cmplx)
Extract real component.
virtual forceSuSp calcNonCoupled(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.
Mesh data needed to do the Finite Volume discretisation.
Templated base class for dsmc cloud.
static constexpr const zero Zero
Global zero (0)