34template<
class CloudType>
65 "angularAcceleration",
78 centreOfRotation_(
Zero)
82template<
class CloudType>
91 omegaName_(niff.omegaName_),
93 omegaDotName_(niff.omegaDotName_),
94 omegaDot_(niff.omegaDot_),
95 centreOfRotationName_(niff.centreOfRotationName_),
96 centreOfRotation_(niff.centreOfRotation_)
102template<
class CloudType>
109template<
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_
183template<
class CloudType>
187 const typename CloudType::parcelType::trackingData&
td,
196 const vector r =
p.position() - centreOfRotation_;
203 + 2.0*(
p.U() ^ omega_)
204 + (omega_ ^ (r ^ omega_))
Calculates particle non-inertial reference frame force. Variable names as from Landau and Lifshitz,...
const vector & centreOfRotation() const noexcept
Return the centre of rotation of the reference frame.
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.
virtual ~NonInertialFrameForce()
Destructor.
virtual void cacheFields(const bool store)
Cache fields.
const vector & omegaDot() const noexcept
Return the angular acceleration of the reference frame.
const vector & omega() const noexcept
Return the angular velocity of the reference frame.
const vector & W() const noexcept
Return the linear acceleration of the reference frame.
NonInertialFrameForce(CloudType &owner, const fvMesh &mesh, const dictionary &dict)
Construct from mesh.
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.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const Type & value() const noexcept
Return const reference to value.
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.
A class for handling words, derived from Foam::string.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
DSMCCloud< dsmcParcel > CloudType
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
UniformDimensionedField< vector > uniformDimensionedVectorField
static constexpr const zero Zero
Global zero (0).
scalarField Re(const UList< complex > &cmplx)
Extract real component.