40#ifndef wallBoundedParticle_H
41#define wallBoundedParticle_H
54class wallBoundedParticle;
56Ostream&
operator<<(Ostream&,
const wallBoundedParticle&);
57Ostream&
operator<<(Ostream&,
const InfoProxy<wallBoundedParticle>&);
82 template <
class TrackCloudType>
85 const TrackCloudType&
cloud,
163 const label tetFacei,
175 bool newFormat =
true
233 template<
class TrackCloudType>
236 TrackCloudType&
cloud,
245 template<
class TrackCloudType>
248 TrackCloudType&
cloud,
250 const scalar trackFraction
255 template<
class TrackCloudType>
258 TrackCloudType&
cloud,
263 template<
class TrackCloudType>
266 TrackCloudType&
cloud,
284 template<
class CloudType>
288 template<
class CloudType>
Templated base class for dsmc cloud.
A helper class for outputting values to Ostream.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
A cloud is a registry collection of lagrangian particles.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
vector position() const
Return current particle position.
const polyMesh & mesh() const noexcept
Return the mesh database.
Mesh consisting of general polyhedral cells.
Factory class to read-construct particles used for.
iNew(const polyMesh &mesh)
Class used to pass tracking data to the trackToFace function.
trackingData(const TrackCloudType &cloud, const bitSet &isWallPatch)
const bitSet & isWallPatch_
Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on ...
autoPtr< particle > clone() const
Construct and return a clone.
label meshEdgeStart_
Particle is on mesh edge:
bool isTriAlongTrack(const vector &n, const point &endPosition) const
Is current triangle in the track direction.
void patchInteraction(TrackCloudType &cloud, trackingData &td, const scalar trackFraction)
Do all patch interaction.
edge currentEdge() const
Construct current edge.
InfoProxy< wallBoundedParticle > info() const
Return info proxy.
label meshEdgeStart() const
-1 or label of mesh edge
static void writeFields(const CloudType &)
Write.
void hitProcessorPatch(TrackCloudType &cloud, trackingData &td)
scalar trackToEdge(TrackCloudType &cloud, trackingData &td, const vector &endPosition)
Equivalent of trackToFace.
static const std::size_t sizeofFields_
Size in bytes of the fields.
label diagEdge_
Particle is on diagonal edge:
scalar trackFaceTri(const vector &n, const vector &endPosition, label &)
Track through single triangle.
void crossEdgeConnectedFace(const label &celli, label &tetFacei, label &tetPti, const edge &e)
Replacement for particle::crossEdgeConnectedFace that avoids bombing.
void hitWallPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
label diagEdge() const
-1 or diagonal edge
point localPosition_
Particle position is updated locally as opposed to via track.
void crossDiagonalEdge()
Cross diagonal edge into different triangle on same face,cell.
static void readFields(CloudType &)
Read.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)