Go to the documentation of this file.
48 #ifndef distributedTriSurfaceMesh_H
49 #define distributedTriSurfaceMesh_H
174 const bool nearestIntersection,
198 const scalar radiusSqr,
235 const label nIncluded,
278 const scalar mergeDist,
304 TypeName(
"distributedTriSurfaceMesh");
422 const bool keepNonLocal,
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
autoPtr< globalIndex > globalTris_
Global triangle numbering.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
distributionType distType_
The distribution type.
compressionType
Enumeration for the format of data in the stream.
void clearOut()
Clear storage.
static bool isLocal(const List< treeBoundBox > &myBbs, const point &start, const point &end)
static const NamedEnum< distributionType, 3 > distributionTypeNames_
void distributeSegment(const label, const point &start, const point &end, DynamicList< segment > &, DynamicList< label > &, List< DynamicList< label > > &) const
Split segment into subsegments overlapping the processor.
IOoject and searching on triSurface.
List< List< treeBoundBox > > independentlyDistributedBbs(const triSurface &)
Finds new bounds based on an indepedent decomposition.
void writeStats(Ostream &os) const
Print some stats. Parallel aware version of.
void findLine(const bool nearestIntersection, const pointField &start, const pointField &end, List< pointIndexHit > &info) const
Split edges, distribute, test and collect.
InfoProxy< IOobject > info() const
Return info proxy.
virtual void getRegion(const List< pointIndexHit > &, labelList ®ion) const
From a set of points and indices get the region.
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const
List< List< treeBoundBox > > procBb_
Bounding boxes of all processors.
const globalIndex & globalTris() const
Triangle indexing (demand driven)
static bool overlaps(const List< treeBoundBox > &bb, const point &p0, const point &p1, const point &p2)
Does any part of triangle overlap bb.
virtual void getField(const List< pointIndexHit > &, labelList &) const
WIP. From a set of hits (points and.
static void subsetMeshMap(const triSurface &s, const boolList &include, const label nIncluded, labelList &newToOldPoints, labelList &oldToNewPoints, labelList &newToOldFaces)
Find points used in subset.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
IOdictionary dict_
Bounding box settings.
Pre-declare SubField and related Field type.
Triangulated surface description with patch information.
autoPtr< decompositionMethod > decomposer_
Decomposition used when independently decomposing surface.
Class containing processor-to-processor mapping information.
virtual void getVolumeType(const pointField &, List< volumeType > &) const
Determine type (inside/outside/mixed) for point. unknown if.
static label findTriangle(const List< labelledTri > &allFaces, const labelListList &allPointFaces, const labelledTri &otherF)
Find triangle otherF in allFaces.
static triSurface subsetMesh(const triSurface &s, const labelList &newToOldPoints, const labelList &oldToNewPoints, const labelList &newToOldFaces)
Construct subsetted surface.
label calcOverlappingProcs(const point ¢re, const scalar radiusSqr, boolList &overlaps) const
A list of keyword definitions, which are a keyword followed by any number of values (e....
Abstract base class for decomposition.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
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))
TypeName("distributedTriSurfaceMesh")
Runtime type information.
virtual void getNormal(const List< pointIndexHit > &, vectorField &normal) const
From a set of points and indices get the normal.
virtual bool hasVolumeType() const
Whether supports volume type below. I.e. whether is closed.
bool read()
Read my additional data.
static void merge(const scalar mergeDist, const List< labelledTri > &subTris, const pointField &subPoints, List< labelledTri > &allTris, pointField &allPoints, labelList &faceConstructMap, labelList &pointConstructMap)
Merge triSurface (subTris, subPoints) into allTris, allPoints.
virtual void distribute(const List< treeBoundBox > &, const bool keepNonLocal, autoPtr< mapDistribute > &faceMap, autoPtr< mapDistribute > &pointMap)
Set bounds of surface. Bounds currently set as list of.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual ~distributedTriSurfaceMesh()
Destructor.
scalar mergeDist_
Merging distance.
virtual void findLineAll(const pointField &start, const pointField &end, List< List< pointIndexHit > > &) const
Get all intersections in order from start to end.
void operator=(const distributedTriSurfaceMesh &)
Disallow default bitwise assignment.
An ordered pair of two objects of type <T> with first() and second() elements.
label size() const
Global sum of localSizes.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
IOoject and searching on distributed triSurface. All processor hold (possibly overlapping) part of th...
virtual bool writeObject(IOstream::streamFormat fmt, IOstream::versionNumber ver, IOstream::compressionType cmp) const
Write using given format, version and compression.
Triangle with additional region number.
distributedTriSurfaceMesh(const distributedTriSurfaceMesh &)
Disallow default bitwise copy construct.
virtual void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Return any intersection on segment from start to end.
virtual label globalSize() const
Range of global indices that can be returned.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
static triSurface overlappingSurface(const triSurface &, const List< treeBoundBox > &, labelList &subPointMap, labelList &subFaceMap)
Subset the part of surface that is overlapping bounds.
bool contiguous< segment >()
void distributeFields(const mapDistribute &map)
Distribute stored fields.
autoPtr< IOdictionary > decomposeParDict_
autoPtr< mapDistribute > calcLocalQueries(const List< pointIndexHit > &, labelList &triangleIndex) const
Obtains global indices from pointIndexHit and swaps them back.
autoPtr< mapDistribute > distributeSegments(const pointField &start, const pointField &end, List< segment > &allSegments, List< label > &allSegmentMap) const
Divide edges into local and remote segments. Construct map to.
A normal distribution model.
streamFormat
Enumeration for the format of data in the stream.