Go to the documentation of this file.
37 const point& position,
54 !sampledPositions_.size()
59 sampledPositions_.append(position);
62 sampledScalars_.setSize(td.
vsInterp_.size());
65 sampledScalars_[scalari].append
67 td.
vsInterp_[scalari].interpolate(position, celli, facei)
72 sampledVectors_.setSize(td.
vvInterp_.size());
83 td.
vvInterp_[vectori].interpolate(position, celli, facei);
85 sampledVectors_[vectori].append(positionU);
105 scalar magU =
mag(
U);
125 const point& position,
127 const label tetFacei,
129 const label meshEdgeStart,
130 const label diagEdge,
131 const bool trackForward,
145 trackForward_(trackForward),
165 is >> trackForward_ >> lifeTime_
166 >> sampledPositions_ >> sampledScalars >> sampledVectors;
168 sampledScalars_.
setSize(sampledScalars.size());
171 sampledScalars_[i].transfer(sampledScalars[i]);
173 sampledVectors_.setSize(sampledVectors.size());
176 sampledVectors_[i].transfer(sampledVectors[i]);
190 trackForward_(
p.trackForward_),
191 lifeTime_(
p.lifeTime_),
192 sampledPositions_(
p.sampledPositions_),
193 sampledScalars_(
p.sampledScalars_),
194 sampledVectors_(
p.sampledVectors_)
214 c.fieldIOobject(
"lifeTime", IOobject::MUST_READ)
216 c.checkFieldIOobject(
c, lifeTime);
220 c.fieldIOobject(
"sampledPositions", IOobject::MUST_READ)
222 c.checkFieldIOobject(
c, sampledPositions);
227 p.lifeTime_ = lifeTime[i];
228 p.sampledPositions_.transfer(sampledPositions[i]);
241 const label np =
c.size();
245 c.fieldIOobject(
"lifeTime", IOobject::NO_READ),
250 c.fieldIOobject(
"sampledPositions", IOobject::NO_READ),
257 lifeTime[i] =
p.lifeTime_;
258 sampledPositions[i] =
p.sampledPositions_;
263 sampledPositions.write();
275 os << static_cast<const wallBoundedParticle&>(
p)
276 << token::SPACE <<
p.trackForward_
277 << token::SPACE <<
p.lifeTime_
278 << token::SPACE <<
p.sampledPositions_
279 << token::SPACE <<
p.sampledScalars_
280 << token::SPACE <<
p.sampledVectors_;
A primitive field of type <T> with automated input and output.
wallBoundedStreamLineParticle(const polyMesh &c, const point &position, const label celli, const label tetFacei, const label tetPti, const label meshEdgeStart, const label diagEdge, const bool trackForward, const label lifeTime)
Construct from components.
Mesh consisting of general polyhedral cells.
vector sample(trackingData &td)
#define forAll(list, i)
Loop across all elements in list.
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
Class used to pass tracking data to the trackToEdge function.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Particle class that tracks on triangles of boundary faces. Use trackToEdge similar to trackToFace on ...
Particle class that samples fields as it passes through. Used in streamline calculation.
void setSize(const label n)
Alias for resize()
const PtrList< interpolation< vector > > & vvInterp_
static void writeFields(const Cloud< wallBoundedStreamLineParticle > &)
Write.
virtual bool check(const char *operation) const
Check IOstream status for given operation.
OBJstream os(runTime.globalPath()/outputName)
errorManip< error > abort(error &err)
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the templated type.
static void readFields(Cloud< wallBoundedStreamLineParticle > &)
Read.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const PtrList< interpolation< scalar > > & vsInterp_
const dimensionedScalar c
Speed of light in a vacuum.
A face is a list of labels corresponding to mesh vertices.
vector interpolateFields(const trackingData &td, const point &position, const label celli, const label facei)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A cell is defined as a list of faces with extra functionality.
void writeFields(const fvMesh &mesh, const wordHashSet &selectedFields, const bool writeFaceFields)