30 template<
class CloudType>
40 this->coeffDict().template lookup<scalar>(
"diffuseFraction")
47 template<
class CloudType>
54 template<
class CloudType>
60 const polyMesh& mesh = this->owner().mesh();
68 const label wppIndex =
p.patch(mesh);
74 const vector nw =
p.normal(mesh);
77 scalar U_dot_nw =
U & nw;
90 while (
mag(Ut) < small)
105 Ut =
U - U_dot_nw*nw;
114 scalar
T =
cloud.boundaryT().boundaryField()[wppIndex][wppLocalFace];
116 scalar mass =
cloud.constProps(typeId).mass();
118 direction iDof =
cloud.constProps(typeId).internalDegreesOfFreedom();
128 U +=
cloud.boundaryU().boundaryField()[wppIndex][wppLocalFace];
130 Ei =
cloud.equipartitionInternalEnergy(
T, iDof);
138 U -= 2.0*U_dot_nw*nw;
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
virtual ~MixedDiffuseSpecular()
Destructor.
virtual void correct(typename CloudType::parcelType &p)
Apply wall correction.
MixedDiffuseSpecular(const dictionary &dict, CloudType &cloud)
Construct from dictionary.
scalar scalar01()
Advance the state and return a scalar sample from a uniform.
scalar scalarNormal()
Advance the state and return a scalar sample from a normal.
Templated wall interaction model class.
A cloud is a collection of lagrangian particles.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Mesh consisting of general polyhedral cells.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
A patch is a list of labels that address the faces in the global face list.
label whichFace(const label l) const
Return label of face in patch from global face label.
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 log(const dimensionedScalar &ds)
Vector< scalar > vector
A scalar version of the templated Vector.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< scalar > mag(const dimensioned< Type > &)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)