Go to the documentation of this file.
51 const cell& cFaces =
mesh.cells()[cellI];
55 scalar minDistSqr =
sqr(GREAT);
59 label faceI = cFaces[cFaceI];
61 if (isWallPatch[faceI])
64 const label fp0 =
mesh.tetBasePtIs()[faceI];
65 const point& basePoint =
mesh.points()[
f[fp0]];
68 for (
label i = 2; i <
f.size(); i++)
71 label nextFp =
f.fcIndex(fp);
72 const point& nextPoint =
mesh.points()[
f[nextFp]];
74 const triPointRef tri(basePoint, thisPoint, nextPoint);
138 const point& seedPt = seedPoints[i];
143 if (ids.
face() != -1 && isWallPatch[ids.
face()])
169 Pout<<
type() <<
" : ignoring seed " << seedPt
170 <<
" since not in wall cell" <<
endl;
220 particles.
move(td, trackTime);
231 const bool loadFromFiles
237 if (setActive<fvMesh>())
279 <<
"Found " << nFaces
280 <<
" faces with low quality or negative volume "
281 <<
"decomposition tets. Writing to faceSet " << faces.
name()
291 numFacesPerEdge.
clear();
295 label faceI = cFaces[cFaceI];
299 const edge e(
f[fp],
f.nextLabel(fp));
301 numFacesPerEdge.
find(
e);
302 if (eFnd != numFacesPerEdge.end())
318 <<
"problem cell:" << cellI
Holds list of sampling points which is filled at construction time. Various implementations of this b...
void addParticle(ParticleType *pPtr)
Transfer particle to cloud.
const objectRegistry & obr_
Database this class is registered to.
static const scalar minTetQuality
Minimum tetrahedron quality.
DynamicList< List< point > > allTracks_
All tracks. Per track the points it passed through.
A class for handling words, derived from string.
void initInterpolations(const label nSeeds, label &UIndex, PtrList< volScalarField > &vsFlds, PtrList< interpolation< scalar > > &vsInterp, PtrList< volVectorField > &vvFlds, PtrList< interpolation< vector > > &vvInterp)
Initialise fields, interpolators and track storage.
List< DynamicList< vectorList > > allVectors_
Per vectorField, per track, the sampled values.
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
#define forAll(list, i)
Loop across all elements in list.
bool read(const char *, int32_t &)
const cellList & cells() const
const labelList & cells() const
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
Switch log_
Switch to send output to Info as well as to file.
Ostream & endl(Ostream &os)
Add newline and flush stream.
autoPtr< sampledSet > sampledSetPtr_
Seed set engine.
virtual void read(const dictionary &)
Read the field average data.
label tetPt() const
Return the characterising tetPtI.
tetIndices findNearestTet(const PackedBoolList &isWallPatch, const point &seedPt, const label cellI) const
Find wall tet on cell.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
Point centre() const
Return centre (centroid)
Like polyPatch but without reference to mesh. patchIdentifier::index is not used. Used in boundaryMes...
Registry of regIOobjects.
A triangle primitive used to calculate face normals and swept volumes.
A Cloud of streamLine particles.
virtual ~wallBoundedStreamLine()
Destructor.
wallBoundedStreamLine(const wallBoundedStreamLine &)
Disallow default bitwise copy construct.
Class used to pass tracking data to the trackToEdge function.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Intrusive doubly-linked list.
triPointRef faceTri(const polyMesh &mesh) const
Return the geometry corresponding to the tri on the.
Particle class that samples fields as it passes through. Used in streamline calculation.
label face() const
Return the face.
const word & name() const
Return name.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
A list of keyword definitions, which are a keyword followed by any number of values (e....
label size() const
Return number of elements in table.
autoPtr< indirectPrimitivePatch > wallPatch() const
Construct patch out of all wall patch faces.
Mesh data needed to do the Finite Volume discretisation.
errorManip< error > abort(error &err)
const double e
Elementary charge.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
label cell() const
Return the cell.
word cloudName_
Optional specified name of particles.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual void track()
Do the actual tracking to fill the track data.
virtual const faceList & faces() const
Return raw faces.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
prefixOSstream Pout(cout, "Pout")
void clear()
Clear all entries from table.
label lifeTime_
Maximum lifetime (= number of cells) of particle.
dimensionedScalar sqrt(const dimensionedScalar &ds)
scalar trackLength_
Track length.
A face is a list of labels corresponding to mesh vertices.
static bool checkFaceTets(const polyMesh &mesh, scalar tol=minTetQuality, const bool report=false, labelHashSet *setPtr=NULL)
Check face-decomposition tet volume.
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
List< DynamicList< scalarList > > allScalars_
Per scalarField, per track, the sampled values.
defineTypeNameAndDebug(combustionModel, 0)
#define WarningInFunction
Report a warning using Foam::Warning.
A cell is defined as a list of faces with extra functionality.
bool trackForward_
Whether to use +u or -u.
dimensioned< scalar > magSqr(const dimensioned< Type > &)
word name(const complex &)
Return a string representation of a complex.
virtual void read(const dictionary &)
Read settings.
void move(TrackData &td, const scalar trackTime)
Move the particles.