Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes
distributedTriSurfaceMesh Class Reference

IOoject and searching on distributed triSurface. All processor hold (possibly overlapping) part of the overall surface. All queries are distributed to the processor that can answer it and the result sent back. More...

Inheritance diagram for distributedTriSurfaceMesh:
Inheritance graph
[legend]
Collaboration diagram for distributedTriSurfaceMesh:
Collaboration graph
[legend]

Public Types

enum  distributionType { FOLLOW = 0, INDEPENDENT = 1, FROZEN = 2 }
 
- Public Types inherited from regIOobject
enum  fileCheckTypes { timeStamp, timeStampMaster, inotify, inotifyMaster }
 Types of communications. More...
 
- Public Types inherited from IOobject
enum  objectState { GOOD, BAD }
 Enumeration defining the valid states of an IOobject. More...
 
enum  readOption { MUST_READ, MUST_READ_IF_MODIFIED, READ_IF_PRESENT, NO_READ }
 Enumeration defining the read options. More...
 
enum  writeOption { AUTO_WRITE = 0, NO_WRITE = 1 }
 Enumeration defining the write options. More...
 
- Public Types inherited from HashTable< regIOobject * >
typedef T value_type
 Type of values the HashTable contains. More...
 
typedef Treference
 Type that can be used for storing into HashTable::value_type. More...
 
typedef label size_type
 The type that can represent the size of a HashTable. More...
 
- Public Types inherited from triSurface
typedef bool BoundaryMesh
 Placeholder only, but do not remove - it is needed for GeoMesh. More...
 
typedef bool BoundaryMesh
 Placeholder only, but do not remove - it is needed for GeoMesh. More...
 
- Public Types inherited from PrimitivePatch< labelledTri, List, pointField, point >
enum  surfaceTopo
 Enumeration defining the surface type. Used in check routines. More...
 
enum  surfaceTopo
 Enumeration defining the surface type. Used in check routines. More...
 
typedef labelledTri FaceType
 
typedef labelledTri FaceType
 
typedef List< labelledTriFaceListType
 
typedef List< labelledTriFaceListType
 
typedef pointField PointFieldType
 
typedef pointField PointFieldType
 
- Public Types inherited from List< labelledTri >
typedef SubList< TsubList
 Declare type of subList. More...
 

Public Member Functions

 TypeName ("distributedTriSurfaceMesh")
 Runtime type information. More...
 
 distributedTriSurfaceMesh (const IOobject &, const triSurface &, const dictionary &dict)
 Construct from triSurface. More...
 
 distributedTriSurfaceMesh (const IOobject &io)
 Construct read. Does findInstance to find io.local(). More...
 
 distributedTriSurfaceMesh (const IOobject &io, const dictionary &dict)
 Construct from dictionary (used by searchableSurface). More...
 
virtual ~distributedTriSurfaceMesh ()
 Destructor. More...
 
void clearOut ()
 Clear storage. More...
 
const globalIndexglobalTris () const
 Triangle indexing (demand driven) More...
 
virtual bool hasVolumeType () const
 Whether supports volume type below. I.e. whether is closed. More...
 
virtual label globalSize () const
 Range of global indices that can be returned. More...
 
virtual void findNearest (const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const
 
virtual void findLine (const pointField &start, const pointField &end, List< pointIndexHit > &) const
 Find first intersection on segment from start to end. More...
 
virtual void findLineAny (const pointField &start, const pointField &end, List< pointIndexHit > &) const
 Return any intersection on segment from start to end. More...
 
virtual void findLineAll (const pointField &start, const pointField &end, List< List< pointIndexHit > > &) const
 Get all intersections in order from start to end. More...
 
virtual void getRegion (const List< pointIndexHit > &, labelList &region) const
 From a set of points and indices get the region. More...
 
virtual void getNormal (const List< pointIndexHit > &, vectorField &normal) const
 From a set of points and indices get the normal. More...
 
virtual void getVolumeType (const pointField &, List< volumeType > &) const
 Determine type (inside/outside/mixed) for point. unknown if. More...
 
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. More...
 
virtual void getField (const List< pointIndexHit > &, labelList &) const
 WIP. From a set of hits (points and. More...
 
void writeStats (Ostream &os) const
 Print some stats. Parallel aware version of. More...
 
virtual bool writeObject (IOstream::streamFormat fmt, IOstream::versionNumber ver, IOstream::compressionType cmp) const
 Write using given format, version and compression. More...
 
- Public Member Functions inherited from triSurfaceMesh
 TypeName ("triSurfaceMesh")
 Runtime type information. More...
 
 triSurfaceMesh (const IOobject &, const triSurface &)
 Construct from triSurface. More...
 
 triSurfaceMesh (const IOobject &io)
 Construct read. More...
 
 triSurfaceMesh (const IOobject &io, const dictionary &dict)
 Construct from IO and dictionary (used by searchableSurface). More...
 
virtual ~triSurfaceMesh ()
 Destructor. More...
 
void clearOut ()
 Clear storage. More...
 
virtual void movePoints (const pointField &)
 Move points. More...
 
const indexedOctree< treeDataEdge > & edgeTree () const
 Demand driven construction of octree for boundary edges. More...
 
virtual const wordListregions () const
 Names of regions. More...
 
virtual label size () const
 Range of local indices that can be returned. More...
 
virtual tmp< pointFieldcoordinates () const
 Get representative set of element coordinates. More...
 
virtual void boundingSpheres (pointField &centres, scalarField &radiusSqr) const
 Get bounding spheres (centre and radius squared). Any point. More...
 
virtual tmp< pointFieldpoints () const
 Get the points that define the surface. More...
 
virtual bool overlaps (const boundBox &bb) const
 Does any part of the surface overlap the supplied bound box? More...
 
virtual void findNearest (const pointField &sample, const scalarField &nearestDistSqr, const labelList &regionIndices, List< pointIndexHit > &) const
 Find the nearest locations for the supplied points to a. More...
 
virtual void setField (const labelList &values)
 WIP. Store element-wise field. More...
 
bool writeData (Ostream &) const
 writeData function required by regIOobject but not used More...
 
- Public Member Functions inherited from searchableSurface
 TypeName ("searchableSurface")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, searchableSurface, dict,(const IOobject &io, const dictionary &dict),(io, dict))
 
 searchableSurface (const IOobject &io)
 
virtual autoPtr< searchableSurfaceclone () const
 Clone. More...
 
virtual ~searchableSurface ()
 Destructor. More...
 
const boundBoxbounds () const
 Return const reference to boundBox. More...
 
boundBoxbounds ()
 Return non-const access to the boundBox to allow it to be set. More...
 
virtual void findNearest (const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &, vectorField &normal, labelList &region) const
 Find nearest, normal and region. Can be overridden with. More...
 
- Public Member Functions inherited from regIOobject
 TypeName ("regIOobject")
 Runtime type information. More...
 
 regIOobject (const IOobject &, const bool isTime=false)
 Construct from IOobject. Optional flag for if IOobject is the. More...
 
 regIOobject (const regIOobject &)
 Construct as copy. More...
 
 regIOobject (const regIOobject &, bool registerCopy)
 Construct as copy, transferring registry registration to copy. More...
 
 regIOobject (const word &newName, const regIOobject &, bool registerCopy)
 Construct as copy with new name, transfering registry registration. More...
 
 regIOobject (const IOobject &, const regIOobject &)
 Construct as copy with new IO parameters. More...
 
virtual ~regIOobject ()
 Destructor. More...
 
bool checkIn ()
 Add object to registry. More...
 
bool checkOut ()
 Remove object from registry. More...
 
bool ownedByRegistry () const
 Is this object owned by the registry? More...
 
void store ()
 Transfer ownership of this object to its registry. More...
 
void release ()
 Release ownership of this object from its registry. More...
 
label eventNo () const
 Event number at last update. More...
 
labeleventNo ()
 Event number at last update. More...
 
bool upToDate (const regIOobject &) const
 Return true if up-to-date with respect to given object. More...
 
bool upToDate (const regIOobject &, const regIOobject &) const
 Return true if up-to-date with respect to given objects. More...
 
bool upToDate (const regIOobject &, const regIOobject &, const regIOobject &) const
 Return true if up-to-date with respect to given objects. More...
 
bool upToDate (const regIOobject &, const regIOobject &, const regIOobject &, const regIOobject &) const
 Return true if up-to-date with respect to given objects. More...
 
void setUpToDate ()
 Set up to date (obviously) More...
 
IstreamreadStream (const word &)
 Return Istream and check object type against that given. More...
 
void close ()
 Close Istream. More...
 
virtual bool readData (Istream &)
 Virtual readData function. More...
 
label watchIndex () const
 Return file-monitoring handle. More...
 
labelwatchIndex ()
 Return file-monitoring handle. More...
 
virtual bool write () const
 Write using setting from DB. More...
 
void operator= (const IOobject &)
 
- Public Member Functions inherited from IOobject
 TypeName ("IOobject")
 Runtime type information. More...
 
 IOobject (const word &name, const fileName &instance, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
 Construct from name, instance, registry, io options. More...
 
 IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
 Construct from name, instance, local, registry, io options. More...
 
 IOobject (const fileName &path, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
 Construct from path, registry, io options. More...
 
 IOobject (const IOobject &io, const word &name)
 Construct as copy resetting name. More...
 
Foam::autoPtr< IOobjectclone () const
 Clone. More...
 
virtual ~IOobject ()
 Destructor. More...
 
const Timetime () const
 Return time. More...
 
const objectRegistrydb () const
 Return the local objectRegistry. More...
 
const wordname () const
 Return name. More...
 
const wordheaderClassName () const
 Return name of the class name read from header. More...
 
stringnote ()
 Return non-constant access to the optional note. More...
 
const stringnote () const
 Return the optional note. More...
 
bool & registerObject ()
 Register object created from this IOobject with registry if true. More...
 
bool registerObject () const
 Register object created from this IOobject with registry if true. More...
 
readOption readOpt () const
 
readOptionreadOpt ()
 
writeOption writeOpt () const
 
writeOptionwriteOpt ()
 
word group () const
 Return group (extension part of name) More...
 
word member () const
 Return member (name without the extension) More...
 
const fileNamerootPath () const
 
const fileNamecaseName () const
 
const fileNameinstance () const
 
fileNameinstance ()
 
const fileNamelocal () const
 
fileName path () const
 Return complete path. More...
 
fileName path (const word &instance, const fileName &local="") const
 Return complete path with alternative instance and local. More...
 
fileName objectPath () const
 Return complete path + object name. More...
 
fileName filePath () const
 Return complete path + object name if the file exists. More...
 
bool readHeader (Istream &)
 Read header. More...
 
bool headerOk ()
 Read and check header info. More...
 
bool writeHeader (Ostream &) const
 Write header. More...
 
bool writeHeader (Ostream &, const word &objectType) const
 Write header. Allow override of type. More...
 
bool good () const
 
bool bad () const
 
InfoProxy< IOobjectinfo () const
 Return info proxy. More...
 
void operator= (const IOobject &)
 
template<class Name >
Foam::word groupName (Name name, const word &group)
 
- Public Member Functions inherited from objectRegistry
 TypeName ("objectRegistry")
 Declare type name for this IOobject. More...
 
 objectRegistry (const Time &db, const label nIoObjects=128)
 Construct the time objectRegistry given an initial estimate. More...
 
 objectRegistry (const IOobject &io, const label nIoObjects=128)
 Construct a sub-registry given an IObject to describe the registry. More...
 
virtual ~objectRegistry ()
 Destructor. More...
 
const Timetime () const
 Return time. More...
 
const objectRegistryparent () const
 Return the parent objectRegistry. More...
 
virtual const fileNamedbDir () const
 Local directory path of this objectRegistry relative to the time. More...
 
wordList names () const
 Return the list of names of the IOobjects. More...
 
wordList sortedNames () const
 Return the sorted list of names of the IOobjects. More...
 
wordList names (const word &className) const
 Return the list of names of IOobjects of given class name. More...
 
wordList sortedNames (const word &className) const
 Return the sorted list of names of IOobjects of given class name. More...
 
template<class Type >
wordList names () const
 Return the list of names of the IOobjects of given type. More...
 
template<class Type >
wordList names (const wordRe &name) const
 Return the list of objects whose name matches the input regExp. More...
 
template<class Type >
wordList names (const wordReList &name) const
 Return the list of objects whose name matches the input regExp. More...
 
const objectRegistrysubRegistry (const word &name, const bool forceCreate=false) const
 Lookup and return a const sub-objectRegistry. Optionally create. More...
 
template<class Type >
HashTable< const Type * > lookupClass (const bool strict=false) const
 Lookup and return all objects of the given Type. More...
 
template<class Type >
HashTable< Type * > lookupClass (const bool strict=false)
 Lookup and return all objects of the given Type. More...
 
template<class Type >
bool foundObject (const word &name) const
 Is the named Type found? More...
 
template<class Type >
const Type & lookupObject (const word &name) const
 Lookup and return the object of the given Type. More...
 
template<class Type >
Type & lookupObjectRef (const word &name) const
 
label getEvent () const
 Return new event number. More...
 
virtual void rename (const word &newName)
 Rename. More...
 
bool checkIn (regIOobject &) const
 Add an regIOobject to registry. More...
 
bool checkOut (regIOobject &) const
 Remove an regIOobject from registry. More...
 
virtual bool modified () const
 Return true if any of the object's files have been modified. More...
 
void readModifiedObjects ()
 Read the objects that have been modified. More...
 
virtual bool readIfModified ()
 Read object if modified. More...
 
template<class Type >
Foam::wordList names () const
 
template<class Type >
Foam::wordList names (const wordRe &name) const
 
template<class Type >
Foam::wordList names (const wordReList &patterns) const
 
template<class Type >
Foam::HashTable< const Type * > lookupClass (const bool strict) const
 
template<class Type >
Foam::HashTable< Type * > lookupClass (const bool strict)
 
- Public Member Functions inherited from HashTable< regIOobject * >
bool set (const Key &, const T &newElmt)
 Assign a new hashedEntry, overwriting existing entries. More...
 
 HashTable (const label size=128)
 Construct given initial table size. More...
 
 HashTable (Istream &, const label size=128)
 Construct from Istream. More...
 
 HashTable (const HashTable< T, Key, Hash > &)
 Construct as copy. More...
 
 HashTable (const Xfer< HashTable< T, Key, Hash > > &)
 Construct by transferring the parameter contents. More...
 
 ~HashTable ()
 Destructor. More...
 
label capacity () const
 The size of the underlying table. More...
 
label size () const
 Return number of elements in table. More...
 
bool empty () const
 Return true if the hash table is empty. More...
 
bool found (const Key &) const
 Return true if hashedEntry is found in table. More...
 
iterator find (const Key &)
 Find and return an iterator set at the hashedEntry. More...
 
const_iterator find (const Key &) const
 Find and return an const_iterator set at the hashedEntry. More...
 
List< Key > toc () const
 Return the table of contents. More...
 
List< Key > sortedToc () const
 Return the table of contents as a sorted list. More...
 
OstreamprintInfo (Ostream &) const
 Print information. More...
 
bool insert (const Key &, const T &newElmt)
 Insert a new hashedEntry. More...
 
bool erase (const iterator &)
 Erase a hashedEntry specified by given iterator. More...
 
bool erase (const Key &)
 Erase a hashedEntry specified by the given key. More...
 
label erase (const UList< Key > &)
 Remove entries given by the listed keys from this HashTable. More...
 
label erase (const HashTable< AnyType, Key, AnyHash > &)
 Remove entries given by the given keys from this HashTable. More...
 
Foam::label erase (const HashTable< AnyType, Key, AnyHash > &rhs)
 
void resize (const label newSize)
 Resize the hash table for efficiency. More...
 
void clear ()
 Clear all entries from table. More...
 
void clearStorage ()
 Clear the table entries and the table itself. More...
 
void shrink ()
 Shrink the allocated table to approx. twice number of elements. More...
 
void transfer (HashTable< T, Key, Hash > &)
 Transfer the contents of the argument table into this table. More...
 
Xfer< HashTable< T, Key, Hash > > xfer ()
 Transfer contents to the Xfer container. More...
 
Toperator[] (const Key &)
 Find and return a hashedEntry. More...
 
const Toperator[] (const Key &) const
 Find and return a hashedEntry. More...
 
Toperator() (const Key &)
 Find and return a hashedEntry, create it null if not present. More...
 
void operator= (const HashTable< T, Key, Hash > &)
 Assignment. More...
 
bool operator== (const HashTable< T, Key, Hash > &) const
 Equality. Hash tables are equal if the keys and values are equal. More...
 
bool operator!= (const HashTable< T, Key, Hash > &) const
 The opposite of the equality operation. Takes linear time. More...
 
iterator begin ()
 Iterator set to the beginning of the HashTable. More...
 
const_iterator begin () const
 const_iterator set to the beginning of the HashTable More...
 
const_iterator cbegin () const
 const_iterator set to the beginning of the HashTable More...
 
- Public Member Functions inherited from triSurface
 ClassName ("triSurface")
 Runtime type information. More...
 
 triSurface ()
 Construct null. More...
 
 triSurface (const List< labelledTri > &, const geometricSurfacePatchList &, const pointField &)
 Construct from triangles, patches, points. More...
 
 triSurface (List< labelledTri > &, const geometricSurfacePatchList &, pointField &, const bool reUse)
 Construct from triangles, patches, points. Reuse storage. More...
 
 triSurface (const List< labelledTri > &, const pointField &)
 Construct from triangles, points. Set patchnames to default. More...
 
 triSurface (const triFaceList &, const pointField &)
 Construct from triangles, points. Set region to 0 and default. More...
 
 triSurface (const fileName &)
 Construct from file name (uses extension to determine type) More...
 
 triSurface (Istream &)
 Construct from Istream. More...
 
 triSurface (const Time &d)
 Construct from objectRegistry. More...
 
 triSurface (const triSurface &)
 Construct as copy. More...
 
 ~triSurface ()
 
void clearOut ()
 Clear all data. More...
 
void clearTopology ()
 Clear topology. More...
 
void clearPatchMeshAddr ()
 Clear patch addressing. More...
 
const geometricSurfacePatchListpatches () const
 
geometricSurfacePatchListpatches ()
 
const labelListListsortedEdgeFaces () const
 Return edge-face addressing sorted (for edges with more than. More...
 
const labelListedgeOwner () const
 If 2 face neighbours: label of face where ordering of edge. More...
 
virtual void scalePoints (const scalar &)
 Scale points. A non-positive factor is ignored. More...
 
void checkTriangles (const bool verbose=false)
 Check/remove duplicate/degenerate triangles. More...
 
void checkEdges (const bool verbose=false)
 Check triply (or more) connected edges. More...
 
void cleanup (const bool verbose=false)
 Remove non-valid triangles. More...
 
void markZone (const boolList &borderEdge, const label faceI, const label currentZone, labelList &faceZone) const
 Fill faceZone with currentZone for every face reachable. More...
 
label markZones (const boolList &borderEdge, labelList &faceZone) const
 (size and) fills faceZone with zone of face. Zone is area More...
 
void subsetMeshMap (const boolList &include, labelList &pointMap, labelList &faceMap) const
 'Create' sub mesh, including only faces for which More...
 
triSurface subsetMesh (const boolList &include, labelList &pointMap, labelList &faceMap) const
 Return new surface. Returns pointMap, faceMap from. More...
 
void write (Ostream &) const
 Write to Ostream in simple FOAM format. More...
 
void write (const fileName &, const bool sortByRegion=false) const
 Generic write routine. Chooses writer based on extension. More...
 
void write (const Time &) const
 Write to database. More...
 
void writeDX (const scalarField &, Ostream &) const
 Write to Ostream in OpenDX format. More...
 
void writeDX (const vectorField &, Ostream &) const
 
void writeStats (Ostream &) const
 Write some statistics. More...
 
void operator= (const triSurface &)
 
 ClassName ("triSurface")
 Runtime type information. More...
 
 triSurface ()
 Construct null. More...
 
 triSurface (const List< labelledTri > &, const geometricSurfacePatchList &, const pointField &)
 Construct from triangles, patches, points. More...
 
 triSurface (List< labelledTri > &, const geometricSurfacePatchList &, pointField &, const bool reUse)
 Construct from triangles, patches, points. Reuse storage. More...
 
 triSurface (const Xfer< List< labelledTri > > &, const geometricSurfacePatchList &, const Xfer< List< point > > &)
 Construct from triangles, patches, points. More...
 
 triSurface (const List< labelledTri > &, const pointField &)
 Construct from triangles, points. Set patchnames to default. More...
 
 triSurface (const triFaceList &, const pointField &)
 Construct from triangles, points. Set region to 0 and default. More...
 
 triSurface (const fileName &)
 Construct from file name (uses extension to determine type) More...
 
 triSurface (Istream &)
 Construct from Istream. More...
 
 triSurface (const Time &d)
 Construct from objectRegistry. More...
 
 triSurface (const triSurface &)
 Construct as copy. More...
 
 ~triSurface ()
 Destructor. More...
 
void clearOut ()
 
void clearTopology ()
 
void clearPatchMeshAddr ()
 
const geometricSurfacePatchListpatches () const
 
geometricSurfacePatchListpatches ()
 
const labelListListsortedEdgeFaces () const
 Return edge-face addressing sorted (for edges with more than. More...
 
const labelListedgeOwner () const
 If 2 face neighbours: label of face where ordering of edge. More...
 
virtual void scalePoints (const scalar)
 Scale points. A non-positive factor is ignored. More...
 
void checkTriangles (const bool verbose)
 Check/remove duplicate/degenerate triangles. More...
 
void checkEdges (const bool verbose)
 Check triply (or more) connected edges. More...
 
void cleanup (const bool verbose)
 Remove non-valid triangles. More...
 
void markZone (const boolList &borderEdge, const label faceI, const label currentZone, labelList &faceZone) const
 Fill faceZone with currentZone for every face reachable. More...
 
label markZones (const boolList &borderEdge, labelList &faceZone) const
 (size and) fills faceZone with zone of face. Zone is area More...
 
void subsetMeshMap (const boolList &include, labelList &pointMap, labelList &faceMap) const
 'Create' sub mesh, including only faces for which More...
 
triSurface subsetMesh (const boolList &include, labelList &pointMap, labelList &faceMap) const
 Return new surface. Returns pointMap, faceMap from. More...
 
void write (Ostream &) const
 Write to Ostream in simple FOAM format. More...
 
void write (const fileName &, const bool sortByRegion=false) const
 Generic write routine. Chooses writer based on extension. More...
 
void write (const Time &) const
 Write to database. More...
 
void writeDX (const scalarField &, Ostream &) const
 Write to Ostream in OpenDX format. More...
 
void writeDX (const vectorField &, Ostream &) const
 
void writeStats (Ostream &) const
 Write some statistics. More...
 
void operator= (const triSurface &)
 
- Public Member Functions inherited from PrimitivePatch< labelledTri, List, pointField, point >
 PrimitivePatch (const List< labelledTri > &faces, const Field< point > &points)
 Construct from components. More...
 
 PrimitivePatch (List< labelledTri > &faces, Field< point > &points, const bool reUse)
 Construct from components, reuse storage. More...
 
 PrimitivePatch (const PrimitivePatch< labelledTri, List, pointField, point > &)
 Construct as copy. More...
 
 PrimitivePatch (const List< labelledTri > &faces, const Field< point > &points)
 Construct from components. More...
 
 PrimitivePatch (const Xfer< List< labelledTri > > &faces, const Xfer< List< point > > &points)
 Construct from components. More...
 
 PrimitivePatch (List< labelledTri > &faces, Field< point > &points, const bool reUse)
 Construct from components, reuse storage. More...
 
 PrimitivePatch (const PrimitivePatch< labelledTri, List, pointField, point > &)
 Construct as copy. More...
 
virtual ~PrimitivePatch ()
 
virtual ~PrimitivePatch ()
 Destructor. More...
 
void clearOut ()
 
void clearOut ()
 
void clearGeom ()
 
void clearGeom ()
 
void clearTopology ()
 
void clearTopology ()
 
void clearPatchMeshAddr ()
 
void clearPatchMeshAddr ()
 
const Field< point > & points () const
 Return reference to global points. More...
 
const Field< point > & points () const
 Return reference to global points. More...
 
label nPoints () const
 Return number of points supporting patch faces. More...
 
label nPoints () const
 Return number of points supporting patch faces. More...
 
label nEdges () const
 Return number of edges in patch. More...
 
label nEdges () const
 Return number of edges in patch. More...
 
const edgeListedges () const
 Return list of edges, address into LOCAL point list. More...
 
const edgeListedges () const
 Return list of edges, address into LOCAL point list. More...
 
label nInternalEdges () const
 Number of internal edges. More...
 
label nInternalEdges () const
 Number of internal edges. More...
 
bool isInternalEdge (const label edgeI) const
 Is internal edge? More...
 
bool isInternalEdge (const label edgeI) const
 Is internal edge? More...
 
const labelListboundaryPoints () const
 Return list of boundary points,. More...
 
const labelListboundaryPoints () const
 Return list of boundary points,. More...
 
const labelListListfaceFaces () const
 Return face-face addressing. More...
 
const labelListListfaceFaces () const
 Return face-face addressing. More...
 
const labelListListedgeFaces () const
 Return edge-face addressing. More...
 
const labelListListedgeFaces () const
 Return edge-face addressing. More...
 
const labelListListfaceEdges () const
 Return face-edge addressing. More...
 
const labelListListfaceEdges () const
 Return face-edge addressing. More...
 
const labelListListpointEdges () const
 Return point-edge addressing. More...
 
const labelListListpointEdges () const
 Return point-edge addressing. More...
 
const labelListListpointFaces () const
 Return point-face addressing. More...
 
const labelListListpointFaces () const
 Return point-face addressing. More...
 
const List< labelledTri > & localFaces () const
 Return patch faces addressing into local point list. More...
 
const List< labelledTri > & localFaces () const
 Return patch faces addressing into local point list. More...
 
const labelListmeshPoints () const
 Return labelList of mesh points in patch. More...
 
const labelListmeshPoints () const
 Return labelList of mesh points in patch. They are constructed. More...
 
const Map< label > & meshPointMap () const
 Mesh point map. Given the global point index find its. More...
 
const Map< label > & meshPointMap () const
 Mesh point map. Given the global point index find its. More...
 
const Field< point > & localPoints () const
 Return pointField of points in patch. More...
 
const Field< point > & localPoints () const
 Return pointField of points in patch. More...
 
const labelListlocalPointOrder () const
 Return orders the local points for most efficient search. More...
 
const labelListlocalPointOrder () const
 Return orders the local points for most efficient search. More...
 
label whichPoint (const label gp) const
 Given a global point index, return the local point. More...
 
label whichPoint (const label gp) const
 Given a global point index, return the local point index. More...
 
label whichEdge (const edge &e) const
 Given an edge in local point labels, return its index. More...
 
label whichEdge (const edge &) const
 Given an edge in local point labels, return its. More...
 
labelList meshEdges (const edgeList &allEdges, const labelListList &cellEdges, const labelList &faceCells) const
 Return labels of patch edges in the global edge list using. More...
 
labelList meshEdges (const edgeList &allEdges, const labelListList &pointEdges) const
 Return labels of patch edges in the global edge list using. More...
 
labelList meshEdges (const edgeList &allEdges, const labelListList &cellEdges, const labelList &faceCells) const
 Return labels of patch edges in the global edge list using. More...
 
labelList meshEdges (const edgeList &allEdges, const labelListList &pointEdges) const
 Return labels of patch edges in the global edge list using. More...
 
const Field< point > & faceCentres () const
 Return face centres for patch. More...
 
const Field< point > & faceCentres () const
 Return face centres for patch. More...
 
const Field< point > & faceNormals () const
 Return face normals for patch. More...
 
const Field< point > & faceNormals () const
 Return face normals for patch. More...
 
const Field< point > & pointNormals () const
 Return point normals for patch. More...
 
const Field< point > & pointNormals () const
 Return point normals for patch. More...
 
List< objectHitprojectPoints (const ToPatch &targetPatch, const Field< point > &projectionDirection, const intersection::algorithm alg=intersection::FULL_RAY, const intersection::direction dir=intersection::VECTOR) const
 Project vertices of patch onto another patch. More...
 
List< objectHitprojectPoints (const ToPatch &targetPatch, const Field< point > &projectionDirection, const intersection::algorithm=intersection::FULL_RAY, const intersection::direction=intersection::VECTOR) const
 Project vertices of patch onto another patch. More...
 
Foam::List< Foam::objectHitprojectPoints (const ToPatch &targetPatch, const Field< point > &projectionDirection, const intersection::algorithm alg, const intersection::direction dir) const
 
List< objectHitprojectFaceCentres (const ToPatch &targetPatch, const Field< point > &projectionDirection, const intersection::algorithm alg=intersection::FULL_RAY, const intersection::direction dir=intersection::VECTOR) const
 Project vertices of patch onto another patch. More...
 
List< objectHitprojectFaceCentres (const ToPatch &targetPatch, const Field< point > &projectionDirection, const intersection::algorithm=intersection::FULL_RAY, const intersection::direction=intersection::VECTOR) const
 Project vertices of patch onto another patch. More...
 
Foam::List< Foam::objectHitprojectFaceCentres (const ToPatch &targetPatch, const Field< point > &projectionDirection, const intersection::algorithm alg, const intersection::direction dir) const
 
const labelListListedgeLoops () const
 Return list of closed loops of boundary vertices. More...
 
const labelListListedgeLoops () const
 Return list of closed loops of boundary vertices. More...
 
surfaceTopo surfaceType () const
 Calculate surface type formed by patch. More...
 
surfaceTopo surfaceType () const
 Calculate surface type formed by patch. More...
 
bool checkTopology (const bool report=false, labelHashSet *setPtr=NULL) const
 Check surface formed by patch for manifoldness (see above). More...
 
bool checkTopology (const bool report=false, labelHashSet *setPtr=NULL) const
 Check surface formed by patch for manifoldness (see above). More...
 
bool checkPointManifold (const bool report=false, labelHashSet *setPtr=NULL) const
 Checks primitivePatch for faces sharing point but not edge. More...
 
bool checkPointManifold (const bool report=false, labelHashSet *setPtr=NULL) const
 Checks primitivePatch for faces sharing point but not edge. More...
 
void writeVTK (const fileName &name) const
 Write VTK patch. More...
 
void writeVTKNormals (const fileName &name) const
 Write VTK patch normals. More...
 
virtual void movePoints (const Field< point > &)
 Correct patch after moving points. More...
 
virtual void movePoints (const Field< point > &)
 Correct patch after moving points. More...
 
void operator= (const PrimitivePatch< labelledTri, List, pointField, point > &)
 Assignment. More...
 
void operator= (const PrimitivePatch< labelledTri, List, pointField, point > &)
 Assignment. More...
 
- Public Member Functions inherited from List< labelledTri >
label size () const
 Return the number of elements in the UList. More...
 
 List ()
 Null constructor. More...
 
 List (const label)
 Construct with given size. More...
 
 List (const label, const T &)
 Construct with given size and value for all elements. More...
 
 List (const List< T > &)
 Copy constructor. More...
 
 List (const Xfer< List< T > > &)
 Construct by transferring the parameter contents. More...
 
 List (List< T > &, bool reUse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< T > &, const labelUList &mapAddressing)
 Construct as subset. More...
 
 List (InputIterator first, InputIterator last)
 Construct given start and end iterators. More...
 
 List (const FixedList< T, Size > &)
 Construct as copy of FixedList<T, Size> More...
 
 List (const PtrList< T > &)
 Construct as copy of PtrList<T> More...
 
 List (const SLList< T > &)
 Construct as copy of SLList<T> More...
 
 List (const UIndirectList< T > &)
 Construct as copy of UIndirectList<T> More...
 
 List (const BiIndirectList< T > &)
 Construct as copy of BiIndirectList<T> More...
 
 List (Istream &)
 Construct from Istream. More...
 
 List (const label s)
 
 List (const label s, const T &a)
 
 List (const List< T > &a)
 
 List (const Xfer< List< T > > &lst)
 
 List (List< T > &a, bool reUse)
 
 List (const UList< T > &a, const labelUList &map)
 
 List (const PtrList< T > &lst)
 
 List (const SLList< T > &lst)
 
 List (const UIndirectList< T > &lst)
 
 List (const BiIndirectList< T > &lst)
 
 List ()
 
 List (Istream &is)
 
autoPtr< List< T > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
void resize (const label)
 Alias for setSize(const label) More...
 
void resize (const label, const T &)
 Alias for setSize(const label, const T&) More...
 
void setSize (const label)
 Reset size of List. More...
 
void setSize (const label, const T &)
 Reset size of List and value for new elements. More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void append (const T &)
 Append an element at the end of the list. More...
 
void append (const UList< T > &)
 Append a List at the end of this list. More...
 
void append (const UIndirectList< T > &)
 Append a UIndirectList at the end of this list. More...
 
void transfer (List< T > &)
 Transfer the contents of the argument List into this list. More...
 
void transfer (DynamicList< T, SizeInc, SizeMult, SizeDiv > &)
 Transfer the contents of the argument List into this list. More...
 
void transfer (SortableList< T > &)
 Transfer the contents of the argument List into this list. More...
 
void transfer (List< T > &a)
 
void transfer (SortableList< T > &a)
 
Xfer< List< T > > xfer ()
 Transfer contents to the Xfer container. More...
 
TnewElmt (const label)
 Return subscript-checked element of UList. More...
 
void operator= (const UList< T > &)
 Assignment from UList operator. Takes linear time. More...
 
void operator= (const List< T > &)
 Assignment operator. Takes linear time. More...
 
void operator= (const SLList< T > &)
 Assignment from SLList operator. Takes linear time. More...
 
void operator= (const UIndirectList< T > &)
 Assignment from UIndirectList operator. Takes linear time. More...
 
void operator= (const BiIndirectList< T > &)
 Assignment from BiIndirectList operator. Takes linear time. More...
 
void operator= (const T &)
 Assignment of all entries to the given value. More...
 
- Public Member Functions inherited from triSurfaceRegionSearch
 triSurfaceRegionSearch (const triSurface &)
 Construct from surface. Holds reference to surface! More...
 
 triSurfaceRegionSearch (const triSurface &, const dictionary &dict)
 Construct from surface and dictionary. Holds reference to surface! More...
 
 ~triSurfaceRegionSearch ()
 Destructor. More...
 
void clearOut ()
 Clear storage. More...
 
const PtrList< treeType > & treeByRegion () const
 Demand driven construction of octree for each region. More...
 
void findNearest (const pointField &samples, const scalarField &nearestDistSqr, const labelList &regionIndices, List< pointIndexHit > &info) const
 Find the nearest point on the surface out of the regions. More...
 
- Public Member Functions inherited from triSurfaceSearch
 triSurfaceSearch (const triSurface &)
 Construct from surface. Holds reference to surface! More...
 
 triSurfaceSearch (const triSurface &, const dictionary &dict)
 Construct from surface and dictionary. More...
 
 triSurfaceSearch (const triSurface &surface, const scalar tolerance, const label maxTreeDepth)
 Construct from components. More...
 
 ~triSurfaceSearch ()
 Destructor. More...
 
void clearOut ()
 Clear storage. More...
 
const indexedOctree< treeDataTriSurface > & tree () const
 Demand driven construction of the octree. More...
 
const triSurfacesurface () const
 Return reference to the surface. More...
 
scalar tolerance () const
 Return tolerance to use in searches. More...
 
label maxTreeDepth () const
 Return max tree depth of octree. More...
 
boolList calcInside (const pointField &searchPoints) const
 Calculate for each searchPoint inside/outside status. More...
 
void findNearest (const pointField &samples, const scalarField &nearestDistSqr, List< pointIndexHit > &info) const
 
pointIndexHit nearest (const point &, const vector &span) const
 Calculate nearest point on surface for single searchPoint. Returns. More...
 
void findLine (const pointField &start, const pointField &end, List< pointIndexHit > &info) const
 
void findLineAny (const pointField &start, const pointField &end, List< pointIndexHit > &info) const
 
void findLineAll (const pointField &start, const pointField &end, List< List< pointIndexHit > > &info) const
 Calculate all intersections from start to end. More...
 

Static Public Member Functions

static triSurface overlappingSurface (const triSurface &, const List< treeBoundBox > &, labelList &subPointMap, labelList &subFaceMap)
 Subset the part of surface that is overlapping bounds. More...
 
- Static Public Member Functions inherited from searchableSurface
static autoPtr< searchableSurfaceNew (const word &surfaceType, const IOobject &io, const dictionary &dict)
 Return a reference to the selected searchableSurface. More...
 
- Static Public Member Functions inherited from regIOobject
template<class Type >
static Type & store (Type *)
 Transfer ownership of the given object pointer to its registry. More...
 
template<class Type >
static Type & store (autoPtr< Type > &)
 Transfer ownership of the given object pointer to its registry. More...
 
- Static Public Member Functions inherited from IOobject
static bool fileNameComponents (const fileName &path, fileName &instance, fileName &local, word &name)
 Split path into instance, local, name components. More...
 
template<class Name >
static word groupName (Name name, const word &group)
 
template<class Stream >
static Stream & writeBanner (Stream &os, bool noHint=false)
 Write the standard OpenFOAM file/dictionary banner. More...
 
template<class Stream >
static Stream & writeDivider (Stream &os)
 Write the standard file section divider. More...
 
template<class Stream >
static Stream & writeEndDivider (Stream &os)
 Write the standard end file divider. More...
 
static void replaceFileName (const word &from, const word &to)
 
- Static Public Member Functions inherited from triSurface
static fileName triSurfInstance (const Time &)
 Name of triSurface directory to use. More...
 
static fileName triSurfInstance (const Time &)
 Name of triSurface directory to use. More...
 
- Static Public Member Functions inherited from PrimitivePatch< labelledTri, List, pointField, point >
static void writeVTK (const fileName &name, const FaceListType &faces, const Field< point > &points)
 Write generic VTK patch, HJ, 14/Jan/2009. More...
 
static void writeVTKNormals (const fileName &name, const FaceListType &faces, const Field< point > &points)
 Write generic VTK patch normals, HJ, 14/Jan/2009. More...
 
- Static Public Member Functions inherited from List< labelledTri >
static const List< T > & null ()
 Return a null List. More...
 

Static Public Attributes

static const NamedEnum< distributionType, 3 > distributionTypeNames_
 
- Static Public Attributes inherited from triSurfaceMesh
static word meshSubDir = "triSurface"
 Return the mesh sub-directory name (usually "triSurface") More...
 
- Static Public Attributes inherited from regIOobject
static const NamedEnum< fileCheckTypes, 4 > fileCheckTypesNames
 
static int fileModificationSkew
 
static fileCheckTypes fileModificationChecking
 

Private Member Functions

bool read ()
 Read my additional data. More...
 
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. More...
 
autoPtr< mapDistributedistributeSegments (const pointField &start, const pointField &end, List< segment > &allSegments, List< label > &allSegmentMap) const
 Divide edges into local and remote segments. Construct map to. More...
 
void findLine (const bool nearestIntersection, const pointField &start, const pointField &end, List< pointIndexHit > &info) const
 Split edges, distribute, test and collect. More...
 
autoPtr< mapDistributecalcLocalQueries (const List< pointIndexHit > &, labelList &triangleIndex) const
 Obtains global indices from pointIndexHit and swaps them back. More...
 
label calcOverlappingProcs (const point &centre, const scalar radiusSqr, boolList &overlaps) const
 
autoPtr< mapDistributecalcLocalQueries (const pointField &centres, const scalarField &radiusSqr, pointField &allCentres, scalarField &allRadiusSqr, labelList &allSegmentMap) const
 
List< List< treeBoundBox > > independentlyDistributedBbs (const triSurface &)
 Finds new bounds based on an indepedent decomposition. More...
 
template<class Type >
void distributeFields (const mapDistribute &map)
 Distribute stored fields. More...
 
 distributedTriSurfaceMesh (const distributedTriSurfaceMesh &)
 Disallow default bitwise copy construct. More...
 
void operator= (const distributedTriSurfaceMesh &)
 Disallow default bitwise assignment. More...
 

Static Private Member Functions

static bool isLocal (const List< treeBoundBox > &myBbs, const point &start, const point &end)
 
static bool overlaps (const List< treeBoundBox > &bb, const point &p0, const point &p1, const point &p2)
 Does any part of triangle overlap bb. More...
 
static void subsetMeshMap (const triSurface &s, const boolList &include, const label nIncluded, labelList &newToOldPoints, labelList &oldToNewPoints, labelList &newToOldFaces)
 Find points used in subset. More...
 
static triSurface subsetMesh (const triSurface &s, const labelList &newToOldPoints, const labelList &oldToNewPoints, const labelList &newToOldFaces)
 Construct subsetted surface. More...
 
static triSurface subsetMesh (const triSurface &s, const boolList &include, labelList &newToOldPoints, labelList &newToOldFaces)
 Subset given marked faces. More...
 
static triSurface subsetMesh (const triSurface &s, const labelList &newToOldFaces, labelList &newToOldPoints)
 Subset given marked faces. More...
 
static label findTriangle (const List< labelledTri > &allFaces, const labelListList &allPointFaces, const labelledTri &otherF)
 Find triangle otherF in allFaces. More...
 
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. More...
 

Private Attributes

scalar mergeDist_
 Merging distance. More...
 
autoPtr< IOdictionarydecomposeParDict_
 
autoPtr< decompositionMethoddecomposer_
 Decomposition used when independently decomposing surface. More...
 
IOdictionary dict_
 Bounding box settings. More...
 
List< List< treeBoundBox > > procBb_
 Bounding boxes of all processors. More...
 
autoPtr< globalIndexglobalTris_
 Global triangle numbering. More...
 
distributionType distType_
 The distribution type. More...
 

Additional Inherited Members

- Data Fields inherited from HashTable< regIOobject * >
const typedef Tconst_reference
 Type that can be used for storing into constant. More...
 
- Protected Member Functions inherited from IOobject
IstreamobjectStream ()
 Construct and return an IFstream for the object. More...
 
IstreamobjectStream (const fileName &)
 Construct and return an IFstream for the object given the. More...
 
void setBad (const string &)
 Set the object state to bad. More...
 
- Protected Member Functions inherited from triSurface
pointFieldstoredPoints ()
 Non-const access to global points. More...
 
List< Face > & storedFaces ()
 Non-const access to the faces. More...
 
pointFieldstoredPoints ()
 Non-const access to global points. More...
 
List< Face > & storedFaces ()
 Non-const access to the faces. More...
 
- Protected Member Functions inherited from List< labelledTri >
void size (const label)
 Override size to be inconsistent with allocated storage. More...
 
- Static Protected Attributes inherited from regIOobject
static bool masterOnlyReading = false
 To flag master-only reading of objects. More...
 

Detailed Description

IOoject and searching on distributed triSurface. All processor hold (possibly overlapping) part of the overall surface. All queries are distributed to the processor that can answer it and the result sent back.

Can work in three modes:

Source files

Definition at line 73 of file distributedTriSurfaceMesh.H.

Member Enumeration Documentation

◆ distributionType

Enumerator
FOLLOW 
INDEPENDENT 
FROZEN 

Definition at line 81 of file distributedTriSurfaceMesh.H.

Constructor & Destructor Documentation

◆ distributedTriSurfaceMesh() [1/4]

Disallow default bitwise copy construct.

◆ distributedTriSurfaceMesh() [2/4]

distributedTriSurfaceMesh ( const IOobject io,
const triSurface s,
const dictionary dict 
)

◆ distributedTriSurfaceMesh() [3/4]

◆ distributedTriSurfaceMesh() [4/4]

distributedTriSurfaceMesh ( const IOobject io,
const dictionary dict 
)

◆ ~distributedTriSurfaceMesh()

Destructor.

Definition at line 1524 of file distributedTriSurfaceMesh.C.

Member Function Documentation

◆ read()

bool read ( )
privatevirtual

◆ isLocal()

bool isLocal ( const List< treeBoundBox > &  myBbs,
const point start,
const point end 
)
staticprivate

Definition at line 97 of file distributedTriSurfaceMesh.C.

References forAll.

◆ distributeSegment()

void distributeSegment ( const label  segmentI,
const point start,
const point end,
DynamicList< segment > &  allSegments,
DynamicList< label > &  allSegmentMap,
List< DynamicList< label > > &  sendMap 
) const
private

Split segment into subsegments overlapping the processor.

bounding box. void Foam::distributedTriSurfaceMesh::splitSegment ( const label segmentI, const point& start, const point& end, const treeBoundBox& bb,

DynamicList<segment>& allSegments, DynamicList<label>& allSegmentMap, DynamicList<label> sendMap ) const Distribute segments into overlapping processor

bounding boxes. Sort per processor.

Definition at line 177 of file distributedTriSurfaceMesh.C.

References List::append(), DynamicList::append(), forAll, treeBoundBox::intersects(), and UPstream::myProcNo().

Here is the call graph for this function:

◆ distributeSegments()

Foam::autoPtr< Foam::mapDistribute > distributeSegments ( const pointField start,
const pointField end,
List< segment > &  allSegments,
List< label > &  allSegmentMap 
) const
private

Divide edges into local and remote segments. Construct map to.

distribute and collect data.

Definition at line 258 of file distributedTriSurfaceMesh.C.

References forAll, Pstream::gatherList(), Foam::identity(), UPstream::myProcNo(), UPstream::nProcs(), Pstream::scatterList(), List::setSize(), DynamicList::shrink(), List::size(), List::transfer(), and List::xfer().

Here is the call graph for this function:

◆ findLine() [1/2]

void findLine ( const bool  nearestIntersection,
const pointField start,
const pointField end,
List< pointIndexHit > &  info 
) const
private

◆ calcLocalQueries() [1/2]

Foam::autoPtr< Foam::mapDistribute > calcLocalQueries ( const List< pointIndexHit > &  info,
labelList triangleIndex 
) const
private

Obtains global indices from pointIndexHit and swaps them back.

to their original processor. Used to calculate local region and normal.

Definition at line 543 of file distributedTriSurfaceMesh.C.

References mapDistribute::distribute(), forAll, Pstream::gatherList(), Foam::identity(), UPstream::myProcNo(), UPstream::nProcs(), Pstream::scatterList(), List::setSize(), List::size(), globalIndex::toLocal(), globalIndex::whichProcID(), and List::xfer().

Here is the call graph for this function:

◆ calcOverlappingProcs()

Foam::label calcOverlappingProcs ( const point centre,
const scalar  radiusSqr,
boolList overlaps 
) const
private

Definition at line 662 of file distributedTriSurfaceMesh.C.

References forAll.

◆ calcLocalQueries() [2/2]

Foam::autoPtr< Foam::mapDistribute > calcLocalQueries ( const pointField centres,
const scalarField radiusSqr,
pointField allCentres,
scalarField allRadiusSqr,
labelList allSegmentMap 
) const
private

◆ independentlyDistributedBbs()

Foam::List< Foam::List< Foam::treeBoundBox > > independentlyDistributedBbs ( const triSurface s)
private

◆ overlaps()

bool overlaps ( const List< treeBoundBox > &  bb,
const point p0,
const point p1,
const point p2 
)
staticprivate

Does any part of triangle overlap bb.

Exact test of triangle intersecting bb

Definition at line 933 of file distributedTriSurfaceMesh.C.

References treeBoundBox::contains(), forAll, intersect(), triangleFuncs::intersectBb(), boundBox::max(), Foam::max(), boundBox::min(), Foam::min(), and treeBoundBox::overlaps().

Here is the call graph for this function:

◆ subsetMeshMap()

void subsetMeshMap ( const triSurface s,
const boolList include,
const label  nIncluded,
labelList newToOldPoints,
labelList oldToNewPoints,
labelList newToOldFaces 
)
staticprivate

Find points used in subset.

Definition at line 980 of file distributedTriSurfaceMesh.C.

References f(), forAll, s(), and List::setSize().

Here is the call graph for this function:

◆ subsetMesh() [1/3]

Foam::triSurface subsetMesh ( const triSurface s,
const labelList newToOldPoints,
const labelList oldToNewPoints,
const labelList newToOldFaces 
)
staticprivate

Construct subsetted surface.

Definition at line 1025 of file distributedTriSurfaceMesh.C.

References forAll, s(), and List::size().

Here is the call graph for this function:

◆ subsetMesh() [2/3]

Foam::triSurface subsetMesh ( const triSurface s,
const boolList include,
labelList newToOldPoints,
labelList newToOldFaces 
)
staticprivate

Subset given marked faces.

Definition at line 1058 of file distributedTriSurfaceMesh.C.

References forAll, n, and s().

Here is the call graph for this function:

◆ subsetMesh() [3/3]

Foam::triSurface subsetMesh ( const triSurface s,
const labelList newToOldFaces,
labelList newToOldPoints 
)
staticprivate

Subset given marked faces.

Definition at line 1097 of file distributedTriSurfaceMesh.C.

References f(), forAll, s(), and List::setSize().

Here is the call graph for this function:

◆ findTriangle()

Foam::label findTriangle ( const List< labelledTri > &  allFaces,
const labelListList allPointFaces,
const labelledTri otherF 
)
staticprivate

Find triangle otherF in allFaces.

Definition at line 1152 of file distributedTriSurfaceMesh.C.

References f(), Foam::findIndex(), forAll, and pFaces.

Here is the call graph for this function:

◆ merge()

void merge ( const scalar  mergeDist,
const List< labelledTri > &  subTris,
const pointField subPoints,
List< labelledTri > &  allTris,
pointField allPoints,
labelList faceConstructMap,
labelList pointConstructMap 
)
staticprivate

Merge triSurface (subTris, subPoints) into allTris, allPoints.

Definition at line 1185 of file distributedTriSurfaceMesh.C.

References Foam::DelaunayMeshTools::allPoints(), forAll, Foam::invertManyToMany(), Foam::matchPoints(), List::setSize(), and List::size().

Here is the call graph for this function:

◆ distributeFields()

void distributeFields ( const mapDistribute map)
private

Distribute stored fields.

Definition at line 85 of file distributedTriSurfaceMeshTemplates.C.

References mapDistribute::distribute(), Foam::endl(), fields, and Foam::Info.

Here is the call graph for this function:

◆ operator=()

void operator= ( const distributedTriSurfaceMesh )
private

Disallow default bitwise assignment.

◆ TypeName()

TypeName ( "distributedTriSurfaceMesh"  )

Runtime type information.

◆ clearOut()

void clearOut ( )

Clear storage.

Definition at line 1530 of file distributedTriSurfaceMesh.C.

References triSurfaceMesh::clearOut().

Here is the call graph for this function:

◆ globalTris()

const Foam::globalIndex & globalTris ( ) const

Triangle indexing (demand driven)

Definition at line 1539 of file distributedTriSurfaceMesh.C.

References List< labelledTri >::size().

Referenced by distributedTriSurfaceMesh::globalSize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasVolumeType()

virtual bool hasVolumeType ( ) const
inlinevirtual

Whether supports volume type below. I.e. whether is closed.

Not supported.

Reimplemented from triSurfaceMesh.

Definition at line 345 of file distributedTriSurfaceMesh.H.

◆ globalSize()

virtual label globalSize ( ) const
inlinevirtual

Range of global indices that can be returned.

Reimplemented from searchableSurface.

Definition at line 351 of file distributedTriSurfaceMesh.H.

References distributedTriSurfaceMesh::globalTris(), and globalIndex::size().

Here is the call graph for this function:

◆ findNearest()

void findNearest ( const pointField sample,
const scalarField nearestDistSqr,
List< pointIndexHit > &  info 
) const
virtual

◆ findLine() [2/2]

void findLine ( const pointField start,
const pointField end,
List< pointIndexHit > &   
) const
virtual

Find first intersection on segment from start to end.

Note: searchableSurfacesQueries expects no intersection to be found if start==end. Is problem?

Reimplemented from triSurfaceMesh.

Definition at line 1707 of file distributedTriSurfaceMesh.C.

◆ findLineAny()

void findLineAny ( const pointField start,
const pointField end,
List< pointIndexHit > &   
) const
virtual

Return any intersection on segment from start to end.

Reimplemented from triSurfaceMesh.

Definition at line 1724 of file distributedTriSurfaceMesh.C.

◆ findLineAll()

void findLineAll ( const pointField start,
const pointField end,
List< List< pointIndexHit > > &  info 
) const
virtual

Get all intersections in order from start to end.

Reimplemented from triSurfaceMesh.

Definition at line 1741 of file distributedTriSurfaceMesh.C.

References List::clear(), forAll, Foam::magSqr(), Foam::returnReduce(), List::setSize(), and List::size().

Here is the call graph for this function:

◆ getRegion()

void getRegion ( const List< pointIndexHit > &  info,
labelList region 
) const
virtual

From a set of points and indices get the region.

Reimplemented from triSurfaceMesh.

Definition at line 1855 of file distributedTriSurfaceMesh.C.

References forAll, UPstream::parRun(), mapDistribute::reverseDistribute(), s(), List::setSize(), and List::size().

Here is the call graph for this function:

◆ getNormal()

void getNormal ( const List< pointIndexHit > &  info,
vectorField normal 
) const
virtual

From a set of points and indices get the normal.

Reimplemented from triSurfaceMesh.

Definition at line 1915 of file distributedTriSurfaceMesh.C.

References forAll, triSurfaceMesh::getNormal(), Foam::mag(), UPstream::parRun(), mapDistribute::reverseDistribute(), s(), and List::size().

Here is the call graph for this function:

◆ getVolumeType()

void getVolumeType ( const pointField points,
List< volumeType > &  volType 
) const
virtual

Determine type (inside/outside/mixed) for point. unknown if.

cannot be determined (e.g. non-manifold surface)

Reimplemented from triSurfaceMesh.

Definition at line 2020 of file distributedTriSurfaceMesh.C.

References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ distribute()

void distribute ( const List< treeBoundBox > &  bbs,
const bool  keepNonLocal,
autoPtr< mapDistribute > &  faceMap,
autoPtr< mapDistribute > &  pointMap 
)
virtual

Set bounds of surface. Bounds currently set as list of.

bounding boxes. Will do redistribution of surface to locally have all triangles overlapping bounds. Larger bounds: more triangles (memory), more fully local tests (quick). keepNonLocal = true : keep triangles that do not overlap any processor bounds. Should really be split into a routine to determine decomposition and one that does actual distribution but determining decomposition with duplicate triangle merging requires same amount as work as actual distribution.

Reimplemented from searchableSurface.

Definition at line 2074 of file distributedTriSurfaceMesh.C.

References Foam::DelaunayMeshTools::allPoints(), UPstream::defaultCommsType, Foam::e, treeBoundBox::edges, Foam::endl(), Foam::exit(), Foam::faceMap(), Foam::FatalError, FatalErrorInFunction, PstreamBuffers::finishedSends(), forAll, Pstream::gatherList(), Foam::identity(), Foam::Info, merge(), UPstream::myProcNo(), OFstream::name(), UPstream::nProcs(), triSurface::operator=(), patches, path(), points, PrimitivePatch< Face, FaceList, PointField, PointType >::points(), autoPtr::reset(), s(), Pstream::scatterList(), List::setSize(), List::size(), List< labelledTri >::size(), IOobject::time(), OBJstream::write(), and List::xfer().

Here is the call graph for this function:

◆ getField()

void getField ( const List< pointIndexHit > &  info,
labelList values 
) const
virtual

WIP. From a set of hits (points and.

indices) get the specified field. Misses do not get set.

Reimplemented from triSurfaceMesh.

Definition at line 1965 of file distributedTriSurfaceMesh.C.

References fld(), forAll, triSurfaceMesh::getField(), UPstream::parRun(), mapDistribute::reverseDistribute(), List::setSize(), and List::size().

Here is the call graph for this function:

◆ overlappingSurface()

Foam::triSurface overlappingSurface ( const triSurface s,
const List< treeBoundBox > &  bbs,
labelList subPointMap,
labelList subFaceMap 
)
static

Subset the part of surface that is overlapping bounds.

Definition at line 2033 of file distributedTriSurfaceMesh.C.

References f(), forAll, Foam::max(), s(), and List::size().

Here is the call graph for this function:

◆ writeStats()

void writeStats ( Ostream os) const

Print some stats. Parallel aware version of.

triSurface::writeStats.

Definition at line 2462 of file distributedTriSurfaceMesh.C.

References PatchTools::calcBounds(), Foam::endl(), boundBox::max(), boundBox::min(), nPoints, Foam::reduce(), Foam::returnReduce(), and List< labelledTri >::size().

Referenced by distributedTriSurfaceMesh::distributedTriSurfaceMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeObject()

bool writeObject ( IOstream::streamFormat  fmt,
IOstream::versionNumber  ver,
IOstream::compressionType  cmp 
) const
virtual

Write using given format, version and compression.

Do not use the triSurfaceMesh::writeObject since it would filter out empty regions. These need to be preserved in case we want to make decisions based on the number of regions.

Reimplemented from triSurfaceMesh.

Definition at line 2428 of file distributedTriSurfaceMesh.C.

References IOstream::ASCII, IOobject::instance(), Foam::isFile(), Foam::mkDir(), IOobject::objectPath(), fileName::path(), and triSurface::write().

Here is the call graph for this function:

Field Documentation

◆ distributionTypeNames_

const Foam::NamedEnum< Foam::distributedTriSurfaceMesh::distributionType, 3 > distributionTypeNames_
static

◆ mergeDist_

scalar mergeDist_
private

Merging distance.

Definition at line 95 of file distributedTriSurfaceMesh.H.

Referenced by distributedTriSurfaceMesh::read().

◆ decomposeParDict_

autoPtr<IOdictionary> decomposeParDict_
private

Definition at line 97 of file distributedTriSurfaceMesh.H.

◆ decomposer_

autoPtr<decompositionMethod> decomposer_
private

Decomposition used when independently decomposing surface.

Definition at line 100 of file distributedTriSurfaceMesh.H.

◆ dict_

IOdictionary dict_
private

◆ procBb_

List<List<treeBoundBox> > procBb_
private

Bounding boxes of all processors.

Definition at line 106 of file distributedTriSurfaceMesh.H.

Referenced by distributedTriSurfaceMesh::distributedTriSurfaceMesh(), and distributedTriSurfaceMesh::read().

◆ globalTris_

autoPtr<globalIndex> globalTris_
mutableprivate

Global triangle numbering.

Definition at line 109 of file distributedTriSurfaceMesh.H.

◆ distType_

distributionType distType_
private

The distribution type.

Definition at line 112 of file distributedTriSurfaceMesh.H.

Referenced by distributedTriSurfaceMesh::read().


The documentation for this class was generated from the following files: