30 template<
class ParcelType>
31 template<
class TrackCloudType>
34 const TrackCloudType&
cloud
139 template<
class ParcelType>
140 template<
class TrackCloudType>
143 const TrackCloudType&
cloud
147 volumeAverage_() = 0;
148 radiusAverage_() = 0;
152 frequencyAverage_() = 0;
166 cloud.solution().dict(),
175 const typename TrackCloudType::parcelType&
p = iter();
178 const scalar m =
p.nParticle()*
p.mass();
180 volumeAverage_->add(
p.coordinates(), tetIs,
p.nParticle()*
p.volume());
181 rhoAverage_->add(
p.coordinates(), tetIs, m*
p.rho());
182 uAverage_->add(
p.coordinates(), tetIs, m*
p.U());
183 massAverage_->add(
p.coordinates(), tetIs, m);
185 volumeAverage_->average();
186 massAverage_->average();
187 rhoAverage_->average(massAverage_);
188 uAverage_->average(massAverage_);
193 const typename TrackCloudType::parcelType&
p = iter();
196 const vector u = uAverage_->interpolate(
p.coordinates(), tetIs);
205 uSqrAverage_->average(massAverage_);
208 radiusAverage_() = volumeAverage_();
212 const typename TrackCloudType::parcelType&
p = iter();
219 p.nParticle()*
pow(
p.volume(), 2.0/3.0)
223 radiusAverage_->average(weightAverage);
229 const typename TrackCloudType::parcelType&
p = iter();
232 const scalar a = volumeAverage_->interpolate(
p.coordinates(), tetIs);
233 const scalar r = radiusAverage_->interpolate(
p.coordinates(), tetIs);
234 const vector u = uAverage_->interpolate(
p.coordinates(), tetIs);
236 const scalar
f = 0.75*a/
pow3(r)*
sqr(0.5*
p.d() + r)*
mag(
p.U() - u);
238 frequencyAverage_->add(
p.coordinates(), tetIs,
p.nParticle()*
f*
f);
240 weightAverage.
add(
p.coordinates(), tetIs,
p.nParticle()*
f);
242 frequencyAverage_->average(weightAverage);
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Base class for lagrangian averaging methods.
virtual void add(const barycentric &coordinates, const tetIndices &tetIs, const Type &value)=0
Member Functions.
virtual void average()
Calculate the average.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const objectRegistry & db() const
Return the local objectRegistry.
const word & name() const
Return name.
trackingData(const TrackCloudType &cloud)
Constructors.
void updateAverages(const TrackCloudType &cloud)
Update the MPPIC averages.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A cloud is a collection of lagrangian particles.
const word & name() const
Return const reference to name.
const Time & time() const
Return time.
Selector class for relaxation factors, solver type and solution.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar pow3(const dimensionedScalar &ds)
word name(const bool)
Return a word representation of a bool.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensioned< scalar > mag(const dimensioned< Type > &)
dimensioned< scalar > magSqr(const dimensioned< Type > &)