36 label& nLocateBoundaryHits,
44 particle(mesh, position, celli, nLocateBoundaryHits),
45 start_(this->position(mesh)),
72 reinterpret_cast<char*
>(&start_),
73 sizeof(start_) +
sizeof(end_) +
sizeof(level_)
74 +
sizeof(i_) +
sizeof(j_) +
sizeof(k_)
82 "trackedParticle::trackedParticle"
83 "(const Cloud<trackedParticle>&, Istream&, bool)"
96 const scalar tEnd = (1.0 - stepFraction())*td.
maxTrackLen_;
98 if (tEnd <= small && onBoundaryFace(td.
mesh))
116 const scalar
f = 1 - stepFraction();
117 const vector s = end_ - start_;
118 trackToAndHitFace(
f*
s,
f,
cloud, td);
191 const label feati = i(), edgei =
k();
205 os << static_cast<const particle&>(
p)
215 os << static_cast<const particle&>(
p);
218 reinterpret_cast<const char*
>(&
p.start_),
219 sizeof(
p.start_) +
sizeof(
p.end_) +
sizeof(
p.level_)
220 +
sizeof(
p.i_) +
sizeof(
p.j_) +
sizeof(
p.k_)
225 os.
check(
"Ostream& operator<<(Ostream&, const trackedParticle&)");
Base cloud calls templated on particle type.
streamFormat format() const
Return current stream format.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
virtual Istream & read(token &)=0
Return next token from stream.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual Ostream & write(const char)=0
Write character.
A cell is defined as a list of faces with extra functionality.
A cloud is a collection of lagrangian particles.
label sendToProc
Processor to send the particle to. -1 indicates that this.
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
const polyMesh & mesh
Reference to the mesh.
static void readFields(TrackCloudType &c)
Read the fields associated with the owner cloud.
void correctAfterParallelTransfer(TrackCloudType &, trackingData &)
Make changes following a parallel transfer. Runs either.
Mesh consisting of general polyhedral cells.
Class used to pass tracking data to the trackToFace function.
List< PackedBoolList > & featureEdgeVisited_
const scalar maxTrackLen_
Particle class that marks cells it passes through. Used to mark cells visited by feature edges.
void hitWedgePatch(Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a wedge.
trackedParticle(const polyMesh &mesh, const vector &position, const label celli, label &nLocateBoundaryHits, const point &end, const label level, const label i, const label j, const label k)
Construct from a position and a cell, searching for the rest of the.
void hitSymmetryPatch(Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a.
void hitSymmetryPlanePatch(Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a.
void hitWallPatch(Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a wallPatch.
void correctAfterParallelTransfer(Cloud< trackedParticle > &, trackingData &)
Do corrections to the particle and tracking data following a.
void hitCyclicPatch(Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a cyclic.
bool move(Cloud< trackedParticle > &, trackingData &)
Track all particles to their end point.
if(!fvConstraints.PtrListDictionary< fvConstraint >::size())
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the specified type.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
label readLabel(Istream &is)
Ostream & operator<<(Ostream &os, const fvConstraints &constraints)