61 start_(this->position()),
81 is >> start_ >> end_ >> data_;
98 reinterpret_cast<char*>(&start_),
99 sizeof(start_) +
sizeof(end_) +
sizeof(data_)
114 const scalar maxTrackLen
117 td.switchProcessor =
false;
118 td.keepParticle =
true;
120 while (
td.keepParticle && !
td.switchProcessor && stepFraction() < 1)
122 const scalar
f = 1 - stepFraction();
123 trackToAndHitFace(
f*(end_ - start_),
f,
cloud,
td);
129 if (stepFraction() >= 1 || !
td.keepParticle)
133 td.cellToData()[cell()].append(data());
134 td.cellToEnd()[
cell()].append(position());
137 return td.keepParticle;
154 td.keepParticle =
false;
165 td.keepParticle =
false;
176 td.keepParticle =
false;
187 td.keepParticle =
false;
199 td.keepParticle =
false;
211 td.keepParticle =
false;
222 td.switchProcessor =
true;
233 td.keepParticle =
false;
243 os << static_cast<const particle&>(
p)
250 os << static_cast<const particle&>(
p);
253 reinterpret_cast<const char*>(&
p.start_),
254 sizeof(
p.start_) +
sizeof(
p.end_) +
sizeof(
p.data_)
void hitCyclicAMIPatch(Cloud< findCellParticle > &, trackingData &, const vector &)
Overridable function to handle the particle hitting a cyclicAMI.
std::enable_if< std::is_floating_point< T >::value, bool >::type checkScalarSize() const noexcept
Check if the scalar byte-size associated with the stream is the same as the given type...
virtual Ostream & write(const char c) override
Write character.
bool move(Cloud< findCellParticle > &, trackingData &, const scalar)
Track all particles to their end point.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
virtual bool endRawRead()=0
End of low-level raw binary read.
::Foam::direction nComponents(const expressions::valueTypeCode) noexcept
The number of components associated with given valueTypeCode.
void hitCyclicPatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a cyclic.
void hitSymmetryPatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a.
void hitCyclicACMIPatch(Cloud< findCellParticle > &, trackingData &, const vector &)
Overridable function to handle the particle hitting a cyclicACMI.
void hitProcessorPatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a processorPatch.
void hitWedgePatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a wedge.
virtual Istream & read(token &)=0
Return next token from stream.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const NameMatchPredicate &selectedFields, DynamicList< regIOobject *> &storedObjects)
Read the selected GeometricFields of the templated type and store on the objectRegistry.
A cloud is a registry collection of lagrangian particles.
findCellParticle(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const point &end, const label data)
Construct from components.
Base cloud calls templated on particle type.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
constexpr auto end(C &c) -> decltype(c.end())
Return iterator to the end of the container c.
OBJstream os(runTime.globalPath()/outputName)
bool hitPatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a patch.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
label readRawLabel(Istream &is)
Read raw label from binary stream.
PtrList< coordinateSystem > coordinates(solidRegions.size())
A cell is defined as a list of faces with extra functionality.
static void readFields(TrackCloudType &c)
Read the fields associated with the owner cloud.
virtual bool beginRawRead()=0
Start of low-level raw binary read.
std::enable_if< std::is_integral< T >::value, bool >::type checkLabelSize() const noexcept
Check if the label byte-size associated with the stream is the same as the given type.
Mesh consisting of general polyhedral cells.
void hitWallPatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a wallPatch.
Class used to pass tracking data to the trackToFace function.
streamFormat format() const noexcept
Get the current stream format.
void hitSymmetryPlanePatch(Cloud< findCellParticle > &, trackingData &)
Overridable function to handle the particle hitting a.