36 #ifndef streamlinesParticle_H 37 #define streamlinesParticle_H 53 class streamlinesParticle;
54 class streamlinesCloud;
56 Ostream&
operator<<(Ostream&,
const streamlinesParticle&);
76 #define DeclareTypeInterpolator(Type, nullArg) \ 77 const PtrList<interpolation<Type>>& Type##Interp_; 79 #undef DeclareTypeInterpolator 101 #define DeclareAllTypes(Type, nullArg) \ 102 List<DynamicField<Type>>& all##Type##s_; 104 #undef DeclareAllTypes 118 const bool trackForward,
119 const bool trackOutside,
120 const label nSubCycle,
121 const scalar trackLength,
134 Type##Interp_(Type##Interp),
138 trackForward_(trackForward),
139 trackOutside_(trackOutside),
140 nSubCycle_(nSubCycle),
141 trackLength_(trackLength),
142 allPositions_(allPositions),
143 allTracks_(allTracks),
144 allTrackParts_(allTrackParts),
147 , all##Type##s_(all##Type##
s)
165 label trackPartIndex_;
180 #define DeclareSampledTypes(Type, nullArg) \ 181 List<DynamicField<Type>> sampled##Type##s_; 183 #undef DeclareSampledTypes 211 const label lifeTime,
212 const label trackIndex
289 const vector& displacement,
290 const scalar fraction,
#define TypeInterpolatorArg(Type, nullArg)
#define AllTypesInit(Type, nullArg)
void hitProcessorPatch(streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a.
const polyMesh & mesh() const
Return the mesh database.
FvWallInfoData< WallInfo, label > label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
bool move(streamlinesCloud &, trackingData &, const scalar)
Track all particles to their end point.
void hitCyclicAMIPatch(const vector &, const scalar, streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void hitWallPatch(streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a wallPatch.
FOR_ALL_FIELD_TYPES(DeclareTypeInterpolator)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
trackingData(streamlinesCloud &cloud, #define TypeInterpolatorArg(Type, nullArg) const interpolation< vector > &UInterp, const bool trackForward, const bool trackOutside, const label nSubCycle, const scalar trackLength, DynamicField< point > &allPositions, DynamicField< label > &allTracks, DynamicField< label > &allTrackParts, DynamicField< scalar > &allAges #define AllTypesArg(Type, nullArg))
Construct from components.
Vector< scalar > vector
A scalar version of the templated Vector.
const dimensionedScalar c
Speed of light in a vacuum.
const scalar trackLength_
static void writeFields(const Cloud< streamlinesParticle > &)
Write.
#define TypeInterpolatorInit(Type, nullArg)
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
#define DeclareSampledTypes(Type, nullArg)
Sampled types.
A Cloud of streamlines particles.
#define AllTypesArg(Type, nullArg)
const interpolation< vector > & UInterp_
void hitWedgePatch(streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a wedge.
#define DeclareAllTypes(Type, nullArg)
Particle class that samples fields as it passes through. Used in streamlines calculation.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void transformProperties(const transformer &)
Transform the physical properties of the particle.
void hitCyclicPatch(streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a cyclic.
bool hitNonConformalCyclicPatch(const vector &displacement, const scalar fraction, const label patchi, streamlinesCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting an.
DynamicField< point > & allPositions_
DynamicField< label > & allTracks_
void hitSymmetryPatch(streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a.
vector point
Point is a vector.
DynamicField< scalar > & allAges_
Factory class to read-construct particles used for parallel transfer.
autoPtr< particle > clone() const
Construct and return a clone.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Ostream & operator<<(Ostream &, const ensightPart &)
Abstract base class for interpolation.
static void readFields(Cloud< streamlinesParticle > &)
Read.
friend Ostream & operator<<(Ostream &, const streamlinesParticle &)
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Mesh consisting of general polyhedral cells.
void hitSymmetryPlanePatch(streamlinesCloud &, trackingData &)
Overridable function to handle the particle hitting a.
#define DeclareTypeInterpolator(Type, nullArg)
DynamicField< label > & allTrackParts_
streamlinesParticle(const polyMesh &c, const vector &position, const label celli, const label lifeTime, const label trackIndex)
Construct from components.
vector position() const
Return current particle position.