33 template<
class CloudType>
41 Tref_(this->coeffDict().template lookup<scalar>(
"Tref"))
47 template<
class CloudType>
54 template<
class CloudType>
63 label typeIdP = pP.typeId();
64 label typeIdQ = pQ.typeId();
69 cloud.constProps(typeIdP).d()
70 +
cloud.constProps(typeIdQ).d()
76 cloud.constProps(typeIdP).omega()
77 +
cloud.constProps(typeIdQ).omega()
80 scalar cR =
mag(pP.U() - pQ.U());
87 scalar mP =
cloud.constProps(typeIdP).mass();
89 scalar mQ =
cloud.constProps(typeIdQ).mass();
91 scalar mR = mP*mQ/(mP + mQ);
103 template<
class CloudType>
112 label typeIdP = pP.typeId();
113 label typeIdQ = pQ.typeId();
119 scalar mP =
cloud.constProps(typeIdP).mass();
121 scalar mQ =
cloud.constProps(typeIdQ).mass();
123 vector Ucm = (mP*UP + mQ*UQ)/(mP + mQ);
125 scalar cR =
mag(UP - UQ);
129 scalar sinTheta =
sqrt(1.0 - cosTheta*cosTheta);
133 vector postCollisionRelU =
142 UP = Ucm + postCollisionRelU*mQ/(mP + mQ);
144 UQ = Ucm - postCollisionRelU*mP/(mP + mQ);
Templated DSMC particle collision class.
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
VariableHardSphere(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
virtual scalar sigmaTcR(const typename CloudType::parcelType &pP, const typename CloudType::parcelType &pQ) const
Return the collision cross section * relative velocity product.
virtual ~VariableHardSphere()
Destructor.
virtual void collide(typename CloudType::parcelType &pP, typename CloudType::parcelType &pQ)
Apply collision.
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
scalar scalar01()
Return a scalar uniformly distributed between zero and one.
const scalar twoPi(2 *pi)
dimensionedScalar exp(const dimensionedScalar &ds)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedScalar lgamma(const dimensionedScalar &ds)
dimensionedScalar sin(const dimensionedScalar &ds)
void mag(LagrangianPatchField< scalar > &f, const LagrangianPatchField< Type > &f1)
Vector< scalar > vector
A scalar version of the templated Vector.
void pow(LagrangianPatchField< typename powProduct< Type, r >::type > &f, const LagrangianPatchField< Type > &f1)
void sqrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
dimensionedScalar cos(const dimensionedScalar &ds)
randomGenerator rndGen(653213)