35template<
class CloudType>
49template<
class CloudType>
56template<
class CloudType>
63template<
class CloudType>
72 label typeIdP = pP.
typeId();
73 label typeIdQ = pQ.
typeId();
78 cloud.constProps(typeIdP).d()
79 +
cloud.constProps(typeIdQ).d()
85 cloud.constProps(typeIdP).omega()
86 +
cloud.constProps(typeIdQ).omega()
89 scalar cR =
mag(pP.
U() - pQ.
U());
96 scalar mP =
cloud.constProps(typeIdP).mass();
98 scalar mQ =
cloud.constProps(typeIdQ).mass();
100 scalar mR = mP*mQ/(mP + mQ);
112template<
class CloudType>
121 label typeIdP = pP.
typeId();
122 label typeIdQ = pQ.
typeId();
128 scalar mP =
cloud.constProps(typeIdP).mass();
130 scalar mQ =
cloud.constProps(typeIdQ).mass();
132 vector Ucm = (mP*UP + mQ*UQ)/(mP + mQ);
134 scalar cR =
mag(UP - UQ);
136 scalar cosTheta = 2.0*
rndGen.sample01<scalar>() - 1.0;
138 scalar sinTheta =
sqrt(1.0 - cosTheta*cosTheta);
142 vector postCollisionRelU =
151 UP = Ucm + postCollisionRelU*mQ/(mP + mQ);
153 UQ = Ucm - postCollisionRelU*mP/(mP + mQ);
const dictionary & coeffDict() const
Return the coefficients dictionary.
const dictionary & dict() const
Return the dictionary.
const CloudType & owner() const
Return the owner cloud object.
BinaryCollisionModel(CloudType &owner)
Construct null from owner.
label typeId() const
Return type id.
const vector & U() const
Return const access to velocity.
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 bool active() const
Flag to indicate whether model activates collision model.
virtual void collide(typename CloudType::parcelType &pP, typename CloudType::parcelType &pQ)
Apply collision.
A cloud is a registry collection of lagrangian particles.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
constexpr scalar pi(M_PI)
constexpr scalar twoPi(2 *M_PI)
const dimensionedScalar k
Boltzmann constant.
DSMCCloud< dsmcParcel > CloudType
dimensionedScalar exp(const dimensionedScalar &ds)
dimensionedScalar lgamma(const dimensionedScalar &ds)
dimensionedScalar sin(const dimensionedScalar &ds)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
dimensionedScalar cos(const dimensionedScalar &ds)