45 particle(mesh, position, celli, tetFacei, tetPtI),
65 if (is.
format() == IOstream::ASCII)
77 reinterpret_cast<char*>(&end_),
78 sizeof(end_) +
sizeof(level_)
79 +
sizeof(i_) +
sizeof(j_) +
sizeof(k_)
87 "trackedParticle::trackedParticle" 88 "(const Cloud<trackedParticle>&, Istream&, bool)" 98 const scalar trackTime
103 scalar tEnd = (1.0 - stepFraction())*trackTime;
106 if (tEnd <= SMALL && onBoundary())
122 scalar dt =
min(dtMax, tEnd);
127 dt *= trackToFace(end_, td);
130 stepFraction() = 1.0 - tEnd/trackTime;
143 const scalar trackFraction,
235 particle::correctAfterParallelTransfer(patchi, td);
253 if (os.
format() == IOstream::ASCII)
255 os << static_cast<const particle&>(
p)
256 << token::SPACE << p.end_
257 << token::SPACE << p.level_
258 << token::SPACE << p.i_
259 << token::SPACE << p.j_
260 << token::SPACE << p.k_;
264 os << static_cast<const particle&>(
p);
267 reinterpret_cast<const char*>(&p.end_),
268 sizeof(p.end_) +
sizeof(p.level_)
269 +
sizeof(p.i_) +
sizeof(p.j_) +
sizeof(p.k_)
274 os.
check(
"Ostream& operator<<(Ostream&, const trackedParticle&)");
Symmetry patch for non-planar or multi-plane patches.
streamFormat format() const
Return current stream format.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
List< PackedBoolList > & featureEdgeVisited_
trackedParticle(const polyMesh &mesh, const vector &position, const label celli, const label tetFacei, const label tetPtI, const point &end, const label level, const label i, const label j, const label k)
Construct from components.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
virtual bool check(const char *operation) const
Check IOstream status for given operation.
void hitCyclicPatch(const cyclicPolyPatch &, trackingData &td)
Overridable function to handle the particle hitting a cyclic.
label k
Boltzmann constant.
Neighbour processor patch.
void hitProcessorPatch(const processorPolyPatch &, trackingData &td)
Particle class that marks cells it passes through. Used to mark cells visited by feature edges...
virtual Istream & read(token &)=0
Return next token from stream.
void hitWallPatch(const wallPolyPatch &, trackingData &td, const tetIndices &)
Overridable function to handle the particle hitting a wallPatch.
Wedge front and back plane patch.
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
bool keepParticle
Flag to indicate whether to keep particle (false = delete)
label readLabel(Istream &is)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void hitSymmetryPlanePatch(const symmetryPlanePolyPatch &, trackingData &td)
Overridable function to handle the particle hitting a.
void correctAfterParallelTransfer(const label, trackingData &)
Convert processor patch addressing to the global equivalents.
Class used to pass tracking data to the trackToFace function.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
void hitSymmetryPatch(const symmetryPolyPatch &, trackingData &td)
Overridable function to handle the particle hitting a.
A cell is defined as a list of faces with extra functionality.
Ostream & operator<<(Ostream &, const ensightPart &)
virtual Ostream & write(const token &)=0
Write next token to stream.
Mesh consisting of general polyhedral cells.
bool switchProcessor
Flag to switch processor.
A patch is a list of labels that address the faces in the global face list.
void hitWedgePatch(const wedgePolyPatch &, trackingData &td)
Overridable function to handle the particle hitting a wedge.
bool move(trackingData &, const scalar)
Track all particles to their end point.
bool hitPatch(const polyPatch &, trackingData &td, const label patchi, const scalar trackFraction, const tetIndices &tetIs)
Overridable function to handle the particle hitting a patch.