40 #ifndef Foam_wallBoundedParticle_H 41 #define Foam_wallBoundedParticle_H 52 class wallBoundedParticle;
54 Ostream&
operator<<(Ostream&,
const wallBoundedParticle&);
55 Ostream& operator<<(Ostream&, const InfoProxy<wallBoundedParticle>&);
79 template<
class TrackCloudType>
82 const TrackCloudType&
cloud,
160 const label tetFacei,
172 bool newFormat =
true 196 autoPtr<wallBoundedParticle> operator()
201 return autoPtr<wallBoundedParticle>
223 template<
class TrackCloudType>
226 TrackCloudType&
cloud,
235 template<
class TrackCloudType>
238 TrackCloudType&
cloud,
240 const scalar trackFraction
245 template<
class TrackCloudType>
248 TrackCloudType&
cloud,
253 template<
class TrackCloudType>
256 TrackCloudType&
cloud,
274 template<
class CloudType>
278 template<
class CloudType>
label meshEdgeStart_
Particle is on mesh edge:
Class used to pass tracking data to the trackToFace function.
trackingData(const TrackCloudType &cloud, const bitSet &isWallPatch)
virtual autoPtr< particle > clone() const
Return a clone.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
label diagEdge() const noexcept
The diagonal edge label or -1.
static const std::size_t sizeofFields_
Size in bytes of the fields.
void patchInteraction(TrackCloudType &cloud, trackingData &td, const scalar trackFraction)
Do all patch interaction.
static void readFields(CloudType &)
Read.
const dimensionedScalar e
Elementary charge.
An edge is a list of two vertex labels. This can correspond to a directed graph edge or an edge on a ...
void hitProcessorPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a processorPatch.
bool isTriAlongTrack(const vector &n, const point &endPosition) const
Is current triangle in the track direction.
scalar trackToEdge(TrackCloudType &cloud, trackingData &td, const vector &endPosition)
Equivalent of trackToFace.
A cloud is a registry collection of lagrangian particles.
const bitSet & isWallPatch_
point localPosition_
Particle position is updated locally as opposed to via track.
label diagEdge_
Particle is on diagonal edge:
Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on ...
static autoPtr< particle > Clone(const Derived &p)
Clone a particle.
static void writeFields(const CloudType &)
Write.
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...
wallBoundedParticle(const polyMesh &c, const point &position, const label celli, const label tetFacei, const label tetPti, const label meshEdgeStart, const label diagEdge)
Construct from components.
void crossDiagonalEdge()
Cross diagonal edge into different triangle on same face,cell.
iNew(const polyMesh &mesh)
void hitWallPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
const polyMesh & mesh() const noexcept
Return the mesh database.
scalar trackFaceTri(const vector &n, const vector &endPosition, label &)
Track through single triangle.
A helper class for outputting values to Ostream.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
const dimensionedScalar c
Speed of light in a vacuum.
label meshEdgeStart() const noexcept
The mesh edge label or -1.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Mesh consisting of general polyhedral cells.
InfoProxy< wallBoundedParticle > info() const noexcept
Return info proxy, used to print particle information to a stream.
edge currentEdge() const
Construct current edge.
Templated base class for dsmc cloud.
vector position() const
Return current particle position.
void crossEdgeConnectedFace(const label &celli, label &tetFacei, label &tetPti, const edge &e)
Replacement for particle::crossEdgeConnectedFace that avoids bombing.