FreeFOAM The Cross-Platform CFD Toolkit
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...

#include <meshTools/distributedTriSurfaceMesh.H>


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:

  • follow : makes sure each processor has all the triangles inside the externally provided bounding box (usually the mesh bounding box). Guarantees minimum amount of communication since mesh-local queries should be answerable without any comms.
  • independent : surface is decomposed according to the triangle centres so the decomposition might be radically different from the mesh decomposition. Guarantees best memory balance but at the expense of more communication.
  • frozen : no change
Source files

Definition at line 74 of file distributedTriSurfaceMesh.H.

+ Inheritance diagram for distributedTriSurfaceMesh:
+ Collaboration diagram for distributedTriSurfaceMesh:

List of all members.

Public Types

enum  distributionType { FOLLOW = 0, INDEPENDENT = 1, FROZEN = 2 }

Public Member Functions

 TypeName ("distributedTriSurfaceMesh")
 Runtime type information.
 distributedTriSurfaceMesh (const IOobject &, const triSurface &, const dictionary &dict)
 Construct from triSurface.
 distributedTriSurfaceMesh (const IOobject &io)
 Construct read. Does findInstance to find io.local().
 distributedTriSurfaceMesh (const IOobject &io, const dictionary &dict)
 Construct from dictionary (used by searchableSurface).
virtual ~distributedTriSurfaceMesh ()
void clearOut ()
 Clear storage.
const globalIndexglobalTris () const
 Triangle indexing (demand driven)
virtual bool hasVolumeType () const
 Whether supports volume type below. I.e. whether is closed.
virtual label globalSize () const
 Range of global indices that can be returned.
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.
virtual void findLineAny (const pointField &start, const pointField &end, List< pointIndexHit > &) const
 Return any intersection on segment from start to end.
virtual void findLineAll (const pointField &start, const pointField &end, List< List< pointIndexHit > > &) const
 Get all intersections in order from start to end.
virtual void getRegion (const List< pointIndexHit > &, labelList &region) const
 From a set of points and indices get the region.
virtual void getNormal (const List< pointIndexHit > &, vectorField &normal) const
 From a set of points and indices get the normal.
virtual void getVolumeType (const pointField &, List< volumeType > &) const
 Determine type (inside/outside/mixed) for point. unknown if.
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.
virtual void getField (const List< pointIndexHit > &, labelList &) const
 WIP. From a set of hits (points and.
void writeStats (Ostream &os) const
 Print some stats. Parallel aware version of.
virtual bool writeObject (IOstream::streamFormat fmt, IOstream::versionNumber ver, IOstream::compressionType cmp) const
 Write using given format, version and compression.
- Public Member Functions inherited from triSurfaceMesh
 TypeName ("triSurfaceMesh")
 Runtime type information.
 triSurfaceMesh (const IOobject &, const triSurface &)
 Construct from triSurface.
 triSurfaceMesh (const IOobject &io)
 Construct read.
 triSurfaceMesh (const IOobject &io, const dictionary &dict)
 Construct from IO and dictionary (used by searchableSurface).
virtual ~triSurfaceMesh ()
virtual void movePoints (const pointField &)
 Move points.
const indexedOctree
< treeDataTriSurface > & 
tree () const
 Demand driven contruction of octree.
const indexedOctree
< treeDataEdge > & 
edgeTree () const
 Demand driven contruction of octree for boundary edges.
virtual const wordListregions () const
 Names of regions.
virtual label size () const
 Range of local indices that can be returned.
virtual pointField coordinates () const
 Get representative set of element coordinates.
virtual void setField (const labelList &values)
 WIP. Store element-wise field.
bool writeData (Ostream &) const
 writeData function required by regIOobject but not used
- Public Member Functions inherited from searchableSurface
 TypeName ("searchableSurface")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, searchableSurface, dict,(const IOobject &io, const dictionary &dict),(io, dict))
 searchableSurface (const IOobject &io)
virtual autoPtr
< searchableSurface
clone () const
 Clone.
virtual ~searchableSurface ()
- Public Member Functions inherited from regIOobject
 TypeName ("regIOobject")
 Runtime type information.
 regIOobject (const IOobject &, const bool isTime=false)
 Construct from IOobject. Optional flag for if IOobject is the.
 regIOobject (const regIOobject &)
 Construct as copy.
 regIOobject (const regIOobject &, bool registerCopy)
 Construct as copy, and transferring registry registration to copy.
virtual ~regIOobject ()
bool checkIn ()
 Add object to registry.
bool checkOut ()
 Remove object from registry.
bool ownedByRegistry () const
 Is this object owned by the registry?
void store ()
 Transfer ownership of this object to its registry.
void release ()
 Release ownership of this object from its registry.
label eventNo () const
 Event number at last update.
label & eventNo ()
 Event number at last update.
bool upToDate (const word &) const
 Am I uptodate with respect to other regIOobjects.
bool upToDate (const word &, const word &) const
bool upToDate (const word &, const word &, const word &) const
bool upToDate (const word &, const word &, const word &, const word &) const
void setUpToDate ()
 Flag me as up to date.
IstreamreadStream (const word &)
 Return Istream and check object type against that given.
void close ()
 Close Istream.
virtual bool readData (Istream &)
 Virtual readData function.
virtual bool write () const
 Write using setting from DB.
void operator= (const IOobject &)
- Public Member Functions inherited from IOobject
 TypeName ("IOobject")
 Runtime type information.
 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.
 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.
 IOobject (const fileName &path, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
 Construct from path, registry, io options.
virtual ~IOobject ()
const objectRegistrydb () const
 Return the local objectRegistry.
const wordname () const
 Return name.
const wordheaderClassName () const
 Return name of the class name read from header.
stringnote ()
 Return non-constant access to the optional note.
const stringnote () const
 Return the optional note.
bool registerObject () const
 Register object created from this IOobject with registry if true.
readOption readOpt () const
readOptionreadOpt ()
writeOption writeOpt () const
writeOptionwriteOpt ()
const fileNamerootPath () const
const fileNamecaseName () const
const fileNameinstance () const
fileNameinstance ()
const fileNamelocal () const
fileName path () const
 Return complete path.
fileName path (const word &instance, const fileName &local="") const
 Return complete path with alternative instance and local.
fileName objectPath () const
 Return complete path + object name.
fileName filePath () const
 Return complete path + object name if the file exists.
bool readHeader (Istream &)
 Read header.
bool headerOk ()
 Read and check header info.
bool writeHeader (Ostream &) const
 Write header.
bool good () const
bool bad () const
InfoProxy< IOobjectinfo () const
 Return info proxy.
- Public Member Functions inherited from objectRegistry
 TypeName ("objectRegistry")
 Declare type name for this IOobject.
 objectRegistry (const Time &db, const label nIoObjects=128)
 Construct the time objectRegistry given an initial estimate.
 objectRegistry (const IOobject &io, const label nIoObjects=128)
 Construct a sub-registry given an IObject to describe the registry.
virtual ~objectRegistry ()
const Timetime () const
 Return time.
const objectRegistryparent () const
 Return the parent objectRegistry.
virtual const fileNamedbDir () const
 Local directory path of this objectRegistry relative to the time.
wordList names () const
 Return the list of names of the IOobjects.
wordList names (const word &className) const
 Return the list of names of the IOobjects of given class name.
template<class Type >
wordList names () const
 Return the list of names of the IOobjects of given type.
const objectRegistrysubRegistry (const word &name) const
 Lookup and return a const sub-objectRegistry.
template<class Type >
HashTable< const Type * > lookupClass () const
 Lookup and return all the object of the given Type.
template<class Type >
bool foundObject (const word &name) const
 Is the named Type.
template<class Type >
const Type & lookupObject (const word &name) const
 Lookup and return the object of the given Type.
label getEvent () const
 Return new event number.
virtual void rename (const word &newName)
 Rename.
bool checkIn (regIOobject &) const
 Add an regIOobject to registry.
bool checkOut (regIOobject &) const
 Remove an regIOobject from registry.
virtual bool modified () const
 Return true if any of the object's files have been modified.
void readModifiedObjects ()
 Read the objects that have been modified.
virtual bool readIfModified ()
 Read object if modified.
- Public Member Functions inherited from triSurface
 ClassName ("triSurface")
 Runtime type information.
 triSurface ()
 Construct null.
 triSurface (const List< labelledTri > &, const geometricSurfacePatchList &, const pointField &)
 Construct from triangles, patches, points.
 triSurface (List< labelledTri > &, const geometricSurfacePatchList &, pointField &, const bool reUse)
 Construct from triangles, patches, points. Reuse storage.
 triSurface (const List< labelledTri > &, const pointField &)
 Construct from triangles, points. Set patchnames to default.
 triSurface (const triFaceList &, const pointField &)
 Construct from triangles, points. Set region to 0 and default.
 triSurface (const fileName &)
 Construct from file name (uses extension to determine type)
 triSurface (Istream &)
 Construct from Istream.
 triSurface (const Time &d)
 Construct from objectRegistry.
 triSurface (const triSurface &)
 Construct as copy.
 ~triSurface ()
void clearTopology ()
void clearPatchMeshAddr ()
const geometricSurfacePatchListpatches () const
geometricSurfacePatchListpatches ()
const labelListListsortedEdgeFaces () const
 Return edge-face addressing sorted (for edges with more than.
const labelListedgeOwner () const
 If 2 face neighbours: label of face where ordering of edge.
virtual void scalePoints (const scalar &)
 Scale points. A non-positive factor is ignored.
void checkTriangles (const bool verbose)
 Check/remove duplicate/degenerate triangles.
void checkEdges (const bool verbose)
 Check triply (or more) connected edges.
void cleanup (const bool verbose)
 Remove non-valid triangles.
void markZone (const boolList &borderEdge, const label faceI, const label currentZone, labelList &faceZone) const
 Fill faceZone with currentZone for every face reachable.
label markZones (const boolList &borderEdge, labelList &faceZone) const
 (size and) fills faceZone with zone of face. Zone is area
void subsetMeshMap (const boolList &include, labelList &pointMap, labelList &faceMap) const
 'Create' sub mesh, including only faces for which
triSurface subsetMesh (const boolList &include, labelList &pointMap, labelList &faceMap) const
 Return new surface. Returns pointMap, faceMap from.
void write (Ostream &) const
 Write to Ostream in simple FOAM format.
void write (const fileName &, const bool sortByRegion=false) const
 Generic write routine. Chooses writer based on extension.
void write (const Time &) const
 Write to database.
void writeDX (const scalarField &, Ostream &) const
 Write to Ostream in OpenDX format.
void writeDX (const vectorField &, Ostream &) const
void operator= (const triSurface &)
- Public Member Functions inherited from PrimitivePatch< labelledTri,::Foam::List, pointField, point >
 PrimitivePatch (const ::Foam::List< labelledTri > &faces, const Field< point > &points)
 Construct from components.
 PrimitivePatch (::Foam::List< labelledTri > &faces, Field< point > &points, const bool reUse)
 Construct from components, reuse storage.
 PrimitivePatch (const PrimitivePatch< labelledTri,::Foam::List, pointField, point > &)
 Construct as copy.
virtual ~PrimitivePatch ()
void clearGeom ()
const Field< point > & points () const
 Return reference to global points.
label nPoints () const
 Return number of points supporting patch faces.
label nEdges () const
 Return number of edges in patch.
const edgeListedges () const
 Return list of edges, address into LOCAL point list.
label nInternalEdges () const
 Number of internal edges.
bool isInternalEdge (const label edgeI) const
 Is internal edge?
const labelListboundaryPoints () const
 Return list of boundary points,.
const labelListListfaceFaces () const
 Return face-face addressing.
const labelListListedgeFaces () const
 Return edge-face addressing.
const labelListListfaceEdges () const
 Return face-edge addressing.
const labelListListpointEdges () const
 Return point-edge addressing.
const labelListListpointFaces () const
 Return point-face addressing.
const List< labelledTri > & localFaces () const
 Return patch faces addressing into local point list.
const labelListmeshPoints () const
 Return labelList of mesh points in patch. They are constructed.
const Map< label > & meshPointMap () const
 Mesh point map. Given the global point index find its.
const Field< point > & localPoints () const
 Return pointField of points in patch.
const labelListlocalPointOrder () const
 Return orders the local points for most efficient search.
label whichPoint (const label gp) const
 Given a global point index, return the local point index.
label whichEdge (const edge &) const
 Given an edge in local point labels, return its.
labelList meshEdges (const edgeList &allEdges, const labelListList &cellEdges, const labelList &faceCells) const
 Return labels of patch edges in the global edge list using.
labelList meshEdges (const edgeList &allEdges, const labelListList &pointEdges) const
 Return labels of patch edges in the global edge list using.
const Field< point > & faceCentres () const
 Return face centres for patch.
const Field< point > & faceNormals () const
 Return face normals for patch.
const Field< point > & pointNormals () const
 Return point normals for patch.
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.
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.
const labelListListedgeLoops () const
 Return list of closed loops of boundary vertices.
surfaceTopo surfaceType () const
 Calculate surface type formed by patch.
bool checkTopology (const bool report=false, labelHashSet *setPtr=NULL) const
 Check surface formed by patch for manifoldness (see above).
bool checkPointManifold (const bool report=false, labelHashSet *setPtr=NULL) const
 Checks primitivePatch for faces sharing point but not edge.
virtual void movePoints (const Field< point > &)
 Correct patch after moving points.
void operator= (const PrimitivePatch< labelledTri,::Foam::List, pointField, point > &)
 Assignment.
- Public Member Functions inherited from List< labelledTri >
 List ()
 Null constructor.
 List (const label)
 Construct with given size.
 List (const label, const labelledTri &)
 Construct with given size and value for all elements.
 List (const List< labelledTri > &)
 Copy constructor.
 List (const Xfer< List< labelledTri > > &)
 Construct by transferring the parameter contents.
 List (List< labelledTri > &, bool reUse)
 Construct as copy or re-use as specified.
 List (const UList< labelledTri > &, const unallocLabelList &mapAddressing)
 Construct as subset.
 List (InputIterator first, InputIterator last)
 Construct given start and end iterators.
 List (const FixedList< labelledTri, Size > &)
 Construct as copy of FixedList<T, Size>
 List (const PtrList< labelledTri > &)
 Construct as copy of PtrList<T>
 List (const SLList< labelledTri > &)
 Construct as copy of SLList<T>
 List (const IndirectList< labelledTri > &)
 Construct as copy of IndirectList<T>
 List (const UIndirectList< labelledTri > &)
 Construct as copy of UIndirectList<T>
 List (const BiIndirectList< labelledTri > &)
 Construct as copy of BiIndirectList<T>
 List (Istream &)
 Construct from Istream.
autoPtr< List< labelledTri > > clone () const
 Clone.
 ~List ()
void resize (const label)
 Reset size of List.
void resize (const label, const labelledTri &)
 Reset size of List and value for new elements.
void setSize (const label)
 Reset size of List.
void setSize (const label, const labelledTri &)
 Reset size of List and value for new elements.
void clear ()
 Clear the list, i.e. set size to zero.
void append (const UList< labelledTri > &)
 Append a List at the end of this list.
void append (const UIndirectList< labelledTri > &)
 Append a UIndirectList at the end of this list.
void transfer (List< labelledTri > &)
 Transfer the contents of the argument List into this list.
void transfer (DynamicList< labelledTri, SizeInc, SizeMult, SizeDiv > &)
 Transfer the contents of the argument List into this list.
void transfer (SortableList< labelledTri > &)
 Transfer the contents of the argument List into this list.
Xfer< List< labelledTri > > xfer ()
 Transfer contents to the Xfer container.
labelledTrinewElmt (const label)
 Return subscript-checked element of UList.
void operator= (const UList< labelledTri > &)
 Assignment from UList operator. Takes linear time.
void operator= (const List< labelledTri > &)
 Assignment operator. Takes linear time.
void operator= (const SLList< labelledTri > &)
 Assignment from SLList operator. Takes linear time.
void operator= (const IndirectList< labelledTri > &)
 Assignment from IndirectList operator. Takes linear time.
void operator= (const UIndirectList< labelledTri > &)
 Assignment from UIndirectList operator. Takes linear time.
void operator= (const BiIndirectList< labelledTri > &)
 Assignment from BiIndirectList operator. Takes linear time.
void operator= (const labelledTri &)
 Assignment of all entries to the given value.
- Public Member Functions inherited from UList< labelledTri >
 UList ()
 Null constructor.
 UList (labelledTri *__restrict__ v, label size)
 Construct from components.
label fcIndex (const label i) const
 Return the forward circular index, i.e. the next index.
label rcIndex (const label i) const
 Return the reverse circular index, i.e. the previous index.
label byteSize () const
 Return the binary size in number of characters of the UList.
const labelledTricdata () const
 Return a const pointer to the first data element,.
labelledTridata ()
 Return a pointer to the first data element,.
void checkStart (const label start) const
 Check start is within valid range (0 ... size-1).
void checkSize (const label size) const
 Check size is within valid range (0 ... size).
void checkIndex (const label i) const
 Check index i is within valid range (0 ... size-1).
void writeEntry (Ostream &) const
 Write the UList as a dictionary entry.
void writeEntry (const word &keyword, Ostream &) const
 Write the UList as a dictionary entry with keyword.
void assign (const UList< labelledTri > &)
 Assign elements to those from UList.
labelledTrioperator[] (const label)
 Return element of UList.
const labelledTrioperator[] (const label) const
 Return element of constant UList.
 operator const Foam::List< labelledTri > & () const
 Allow cast to a const List<T>&.
iterator begin ()
 Return an iterator to begin traversing the UList.
const_iterator begin () const
 Return const_iterator to begin traversing the constant UList.
iterator end ()
 Return an iterator to end traversing the UList.
const_iterator end () const
 Return const_iterator to end traversing the constant UList.
const_iterator cbegin () const
 Return const_iterator to begin traversing the constant UList.
const_iterator cend () const
 Return const_iterator to end traversing the constant UList.
reverse_iterator rbegin ()
 Return reverse_iterator to begin reverse traversing the UList.
const_reverse_iterator rbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList.
reverse_iterator rend ()
 Return reverse_iterator to end reverse traversing the UList.
const_reverse_iterator rend () const
 Return const_reverse_iterator to end reverse traversing the UList.
const_reverse_iterator crbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList.
const_reverse_iterator crend () const
 Return const_reverse_iterator to end reverse traversing the UList.
label max_size () const
 Return size of the largest possible UList.
bool empty () const
 Return true if the UList is empty (ie, size() is zero).
void swap (UList< labelledTri > &)
 Swap two ULists of the same type in constant time.
bool operator== (const UList< labelledTri > &) const
 Equality operation on ULists of the same type.
bool operator!= (const UList< labelledTri > &) const
 The opposite of the equality operation. Takes linear time.
bool operator< (const UList< labelledTri > &) const
 Compare two ULists lexicographically. Takes linear time.
bool operator> (const UList< labelledTri > &) const
 Compare two ULists lexicographically. Takes linear time.
bool operator<= (const UList< labelledTri > &) const
 Return true if !(a > b). Takes linear time.
bool operator>= (const UList< labelledTri > &) const
 Return true if !(a < b). Takes linear time.

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.

Static Public Attributes

static const NamedEnum
< distributionType, 3 > 
distributionTypeNames_

Additional Inherited Members

- Protected Member Functions inherited from triSurfaceMesh
void calcBounds (boundBox &bb, label &nPoints) const
 Calculate (number of)used points and their bounding box.
- Protected Member Functions inherited from triSurface
pointFieldstoredPoints ()
 Non-const access to global points.
List< Face > & storedFaces ()
 Non-const access to the faces.

Member Enumeration Documentation

Enumerator:
FOLLOW 
INDEPENDENT 
FROZEN 

Definition at line 82 of file distributedTriSurfaceMesh.H.


Constructor & Destructor Documentation

distributedTriSurfaceMesh ( const IOobject io,
const dictionary dict 
)

Construct from dictionary (used by searchableSurface).

Does read. Does findInstance to find io.local().

Definition at line 1399 of file distributedTriSurfaceMesh.C.

References Foam::endl(), forAll, Pstream::gatherList(), Foam::Info, Pstream::myProcNo(), Pstream::nProcs(), IOobject::objectPath(), Pstream::scatterList(), and List< labelledTri >::size().

Definition at line 1459 of file distributedTriSurfaceMesh.C.


Member Function Documentation

TypeName ( "distributedTriSurfaceMesh"  )

Runtime type information.

void clearOut ( )

Clear storage.

Reimplemented from triSurfaceMesh.

Definition at line 1465 of file distributedTriSurfaceMesh.C.

References triSurfaceMesh::clearOut().

const Foam::globalIndex & globalTris ( ) const

Triangle indexing (demand driven)

Definition at line 1474 of file distributedTriSurfaceMesh.C.

References List< labelledTri >::size().

Referenced by distributedTriSurfaceMesh::globalSize().

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.

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().

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 1676 of file distributedTriSurfaceMesh.C.

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 1693 of file distributedTriSurfaceMesh.C.

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 1710 of file distributedTriSurfaceMesh.C.

References List< T >::clear(), forAll, Foam::magSqr(), Foam::returnReduce(), List< T >::setSize(), List< T >::size(), and Foam::sqrt().

void getRegion ( const List< pointIndexHit > &  info,
labelList region 
) const
virtual
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 2025 of file distributedTriSurfaceMesh.C.

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

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 triSurfaceMesh.

Definition at line 2082 of file distributedTriSurfaceMesh.C.

References PstreamBase::blocking, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, Pstream::gatherList(), Foam::identity(), Foam::Info, Pstream::myProcNo(), Pstream::nProcs(), triSurface::operator=(), patches, PrimitivePatch< Face, FaceList, PointField, PointType >::points(), autoPtr< T >::reset(), Pstream::scatterList(), List< T >::setSize(), List< T >::size(), and List< labelledTri >::size().

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 1962 of file distributedTriSurfaceMesh.C.

References mapDistribute::constructMap(), mapDistribute::distribute(), forAll, triSurfaceMesh::getField(), PstreamBase::nonBlocking, Pstream::parRun(), List< T >::setSize(), List< T >::size(), and mapDistribute::subMap().

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 2041 of file distributedTriSurfaceMesh.C.

References forAll, Vector< Cmpt >::max, Foam::max(), Vector< Cmpt >::min, PrimitivePatch< Face, FaceList, PointField, PointType >::points(), and List< T >::size().

void writeStats ( Ostream os) const
bool writeObject ( IOstream::streamFormat  fmt,
IOstream::versionNumber  ver,
IOstream::compressionType  cmp 
) const
virtual

Write using given format, version and compression.

Reimplemented from triSurfaceMesh.

Definition at line 2416 of file distributedTriSurfaceMesh.C.

References IOstream::ASCII, IOobject::instance(), and triSurfaceMesh::writeObject().


Member Data Documentation

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

Definition at line 89 of file distributedTriSurfaceMesh.H.


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