60 #ifndef Foam_distributedTriSurfaceMesh_H 61 #define Foam_distributedTriSurfaceMesh_H 171 void distributeSegment
196 const bool nearestIntersection,
233 const scalar radiusSqr,
239 label calcOverlappingProcs
242 const scalar radiusSqr,
249 const bool includeLocalProcessor,
265 const point& nearestPoint,
274 const label nearFacei,
275 const label nearLabel
317 static void calcFaceFaces
338 static void subsetMeshMap
342 const label nIncluded,
375 static label findTriangle
385 const scalar mergeDist,
411 TypeName(
"distributedTriSurfaceMesh");
471 List<pointIndexHit>&
info 474 virtual void findLine
493 List<List<pointIndexHit>>&
499 const List<pointIndexHit>&,
506 const List<pointIndexHit>&,
531 const List<treeBoundBox>&,
532 const bool keepNonLocal,
533 autoPtr<mapDistribute>&
faceMap,
534 autoPtr<mapDistribute>& pointMap
587 const bool writeOnProc
591 virtual bool global()
const 609 struct is_globalIOobject<distributedTriSurfaceMesh> : std::true_type {};
virtual void getField(const List< pointIndexHit > &, labelList &) const
WIP. From a set of hits (points and.
static const Enum< distributionType > distributionTypeNames_
virtual bool writeObject(IOstreamOption streamOpt, const bool writeOnProc) const
Write using stream options.
A triangle primitive used to calculate face normals and swept volumes. Uses referred points...
A class for handling file names.
virtual void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Return any intersection on segment from start to end.
static void overlappingSurface(const triSurface &, const List< treeBoundBox > &, boolList &includedFace)
Calculate the triangles that are overlapping bounds.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
A 2-tuple for storing two objects of dissimilar types. The container is similar in purpose to std::pa...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const globalIndex & globalTris() const
Triangle indexing (demand driven)
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.
scalarField samples(nIntervals, Zero)
A simple container for options an IOstream can normally have.
An enumeration wrapper for classification of a location as being inside/outside of a volume...
iterator end() noexcept
iterator to signal the end (for any HashTable)
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
virtual void getVolumeType(const pointField &, List< volumeType > &) const
Determine type (inside/outside/mixed) for point. unknown if.
IOoject and searching on triSurface.
localIOdictionary is derived from IOdictionary but excludes parallel master reading.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
const labelListList & faceFaces() const
Return face-face addressing.
label totalSize() const noexcept
The total addressed size, which corresponds to the end offset and also the sum of all localSizes...
vectorField pointField
pointField is a vectorField.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
virtual ~distributedTriSurfaceMesh()
Destructor.
virtual void getRegion(const List< pointIndexHit > &, labelList ®ion) const
From a set of points and indices get the region.
virtual fileName filePath() const
Return complete path + object name if the file exists.
A class for handling words, derived from Foam::string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
void clearOut()
Clear storage.
virtual void getNormal(const List< pointIndexHit > &, vectorField &normal) const
From a set of points and indices get the normal.
fileName localFilePath(const word &typeName, const bool search=true) const
Redirect to fileHandler filePath, searching locally.
Abstract base class for domain decomposition.
A triFace with additional (region) index.
virtual void findLineAll(const pointField &start, const pointField &end, List< List< pointIndexHit >> &) const
Get all intersections in order from start to end.
InfoProxy< IOobject > info() const noexcept
Return info proxy, for printing information to a stream.
const labelListList & pointFaces() const
Return point-face addressing.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
IOoject and searching on distributed triSurface. All processor hold (possibly overlapping) part of th...
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const
OBJstream os(runTime.globalPath()/outputName)
Class containing processor-to-processor mapping information.
Field< vector > vectorField
Specialisation of Field<T> for vector.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
TypeName("distributedTriSurfaceMesh")
Runtime type information.
List< label > labelList
A List of labels.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
virtual autoPtr< mapDistribute > localQueries(const List< pointIndexHit > &, labelList &triangleIndex) const
Obtains global indices from pointIndexHit and swaps them back.
Triangulated surface description with patch information.
virtual label globalSize() const
Range of global indices that can be returned.
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.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))
Defines the attributes of an object for which implicit objectRegistry management is supported...
constexpr List() noexcept
Default construct.
void writeStats(Ostream &os) const
Print some stats. Parallel aware version of.
virtual bool global() const
Is object global.