31 template<
class CloudType>
42 this->coeffs().template lookupOrDefault<
word>
44 "linearAccelerationName",
51 this->coeffs().template lookupOrDefault<
word>
53 "angularVelocityName",
60 this->coeffs().template lookupOrDefault<
word>
62 "angularAccelerationName",
69 this->coeffs().template lookupOrDefault<
word>
71 "centreOfRotationName",
75 centreOfRotation_(
Zero)
79 template<
class CloudType>
88 omegaName_(niff.omegaName_),
90 omegaDotName_(niff.omegaDotName_),
91 omegaDot_(niff.omegaDot_),
92 centreOfRotationName_(niff.centreOfRotationName_),
93 centreOfRotation_(niff.centreOfRotation_)
99 template<
class CloudType>
106 template<
class CloudType>
112 centreOfRotation_ =
Zero;
118 this->
mesh().
template foundObject<uniformDimensionedVectorField>
124 const uniformDimensionedVectorField&
W = this->
mesh().template
125 lookupObject<uniformDimensionedVectorField>(WName_);
132 this->
mesh().
template foundObject<uniformDimensionedVectorField>
138 const uniformDimensionedVectorField&
omega = this->
mesh().template
139 lookupObject<uniformDimensionedVectorField>(omegaName_);
146 this->
mesh().
template foundObject<uniformDimensionedVectorField>
152 const uniformDimensionedVectorField& omegaDot =
153 this->
mesh().template
154 lookupObject<uniformDimensionedVectorField>(omegaDotName_);
156 omegaDot_ = omegaDot.value();
161 this->
mesh().
template foundObject<uniformDimensionedVectorField>
163 centreOfRotationName_
167 const uniformDimensionedVectorField& centreOfRotation =
168 this->
mesh().template
169 lookupObject<uniformDimensionedVectorField>
171 centreOfRotationName_
174 centreOfRotation_ = centreOfRotation.value();
180 template<
class CloudType>
184 const typename CloudType::parcelType::trackingData& td,
193 const vector r =
p.position(td.mesh) - centreOfRotation_;
200 + 2.0*(
p.U() ^ omega_)
201 + (omega_ ^ (r ^ omega_))
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Calculates particle non-inertial reference frame force. Variable names as from Landau and Lifshitz,...
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.
NonInertialFrameForce(CloudType &owner, const fvMesh &mesh, const dictionary &dict)
Construct from mesh.
Abstract base class for particle forces.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
const Type & value() const
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/s^2].
Mesh data needed to do the Finite Volume discretisation.
Convenience class to handle the input of constant rotational speed. Reads an omega entry with default...
Template function which returns the un-mangled name of a given type. Useful for types which do not ha...
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
scalarList W(const fluidMulticomponentThermo &thermo)
scalarField Re(const UList< complex > &cf)