34 template<
class CloudType>
43 this->owner().
name() +
":numberCollisionDensity",
50 numberCollisionDensity_
58 this->owner().
name() +
":numberCollisionDensityRate",
65 (numberCollisionDensity_ - numberCollisionDensity0_)
66 /(this->owner().
mesh().time().value() - time0_)
74 this->owner().
name() +
":massCollisionDensity",
89 this->owner().
name() +
":massCollisionDensityRate",
96 (massCollisionDensity_ - massCollisionDensity0_)
97 /(this->owner().
mesh().time().value() - time0_)
101 numberCollisionDensity0_ == numberCollisionDensity_;
102 massCollisionDensity0_ == massCollisionDensity_;
103 time0_ = this->owner().mesh().time().value();
109 template<
class CloudType>
114 const word& modelName
118 minSpeed_(dict.lookupOrDefault<scalar>(
"minSpeed", -1)),
119 numberCollisionDensity_
121 this->owner().mesh().boundary(),
122 volScalarField::Internal::null(),
125 numberCollisionDensity0_
127 this->owner().mesh().boundary(),
128 volScalarField::Internal::null(),
131 massCollisionDensity_
133 this->owner().mesh().boundary(),
134 volScalarField::Internal::null(),
137 massCollisionDensity0_
139 this->owner().mesh().boundary(),
140 volScalarField::Internal::null(),
143 time0_(this->owner().mesh().time().value())
145 numberCollisionDensity_ == 0;
146 numberCollisionDensity0_ == 0;
147 massCollisionDensity_ == 0;
148 massCollisionDensity0_ == 0;
152 this->owner().
name() +
":numberCollisionDensity",
154 this->owner().
mesh(),
166 numberCollisionDensity_ == numberCollisionDensity.
boundaryField();
167 numberCollisionDensity0_ == numberCollisionDensity.
boundaryField();
172 this->owner().
name() +
":massCollisionDensity",
174 this->owner().
mesh(),
186 massCollisionDensity_ == massCollisionDensity.
boundaryField();
187 massCollisionDensity0_ == massCollisionDensity.
boundaryField();
192 template<
class CloudType>
199 minSpeed_(ppm.minSpeed_),
200 numberCollisionDensity_
202 volScalarField::Internal::null(),
203 ppm.numberCollisionDensity_
205 numberCollisionDensity0_
207 volScalarField::Internal::null(),
208 ppm.numberCollisionDensity0_
210 massCollisionDensity_
212 volScalarField::Internal::null(),
213 ppm.massCollisionDensity_
215 massCollisionDensity0_
217 volScalarField::Internal::null(),
218 ppm.massCollisionDensity0_
226 template<
class CloudType>
233 template<
class CloudType>
242 const label patchFacei = p.face() - pp.
start();
245 this->owner().patchData(p, pp, nw, Up);
247 const scalar speed = (p.U() - Up) & nw;
248 if (speed > minSpeed_)
251 this->owner().mesh().magSf().boundaryField()[
patchi][patchFacei];
252 numberCollisionDensity_[
patchi][patchFacei] += 1/magSf;
253 massCollisionDensity_[
patchi][patchFacei] +=
254 p.mass()*p.nParticle()/magSf;
const dimensionSet dimArea
bool headerOk()
Read header (uses typeGlobalFile to find file) and check.
A list of keyword definitions, which are a keyword followed by any number of values (e...
const Boundary & boundaryField() const
Return const-reference to the boundary field.
Templated form of IOobject providing type information for file reading and header type checking...
const dimensionSet dimless
Operations on lists of strings.
void write()
Write post-processing info.
Various functions to operate on Lists.
virtual ~PatchCollisionDensity()
Destructor.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
const dimensionSet dimTime
A class for handling words, derived from string.
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
virtual void postPatch(const parcelType &p, const polyPatch &pp, bool &keepParticle)
Post-patch hook.
const dimensionSet dimMass
word name(const complex &)
Return a string representation of a complex.
Function object which generates fields of the number and mass and rates thereof of collisions per uni...
label index() const
Return the index of this patch in the boundaryMesh.
label start() const
Return start label of this patch in the polyMesh face list.
virtual bool write(const bool write=true) const
Write using setting from DB.
PatchCollisionDensity(const dictionary &dict, CloudType &owner, const word &modelName)
Construct from dictionary.
A patch is a list of labels that address the faces in the global face list.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Templated base class for dsmc cloud.
Templated cloud function object base class.