36 label& nLocateBoundaryHits,
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&)");
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.
Base class for clouds. Provides a basic evolution algorithm, models, and a database for caching deriv...
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 hitCyclicPatch(lagrangian::Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a cyclic.
void correctAfterParallelTransfer(lagrangian::Cloud< trackedParticle > &, trackingData &)
Do corrections to the particle and tracking data following a.
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 hitWallPatch(lagrangian::Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a wallPatch.
void hitSymmetryPatch(lagrangian::Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a.
void hitWedgePatch(lagrangian::Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a wedge.
void hitSymmetryPlanePatch(lagrangian::Cloud< trackedParticle > &, trackingData &)
Overridable function to handle the particle hitting a.
bool move(lagrangian::Cloud< trackedParticle > &, trackingData &)
Track all particles to their end point.
if(!fvConstraints.PtrListDictionary< fvConstraint >::size())
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), lagrangian::cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
point position(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label facei, const label faceTrii, const scalar stepFraction)
Return the position given the coordinates and tet topology.
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)