This class separates the mesh into distinct unconnected regions, each of which is then given a label according to globalNumbering(). More...
Public Member Functions | |
| ClassName ("regionSplit") | |
| Runtime type information. More... | |
| regionSplit (const polyMesh &mesh, const bool doGlobalRegions=Pstream::parRun()) | |
| Construct from mesh. More... | |
| regionSplit (const polyMesh &mesh, const boolList &blockedFace, const bool doGlobalRegions=Pstream::parRun()) | |
| Construct from mesh and whether face is blocked. More... | |
| regionSplit (const polyMesh &mesh, const boolList &blockedFace, const List< labelPair > &explicitConnections, const bool doGlobalRegions=Pstream::parRun()) | |
| const globalIndex & | globalNumbering () const |
| Return global region numbering. More... | |
| label | nLocalRegions () const |
| Return local number of regions. More... | |
| label | nRegions () const |
| Return total number of regions. More... | |
| autoPtr< globalIndex > | reduceRegions (const label numLocalRegions, const boolList &blockedFace, labelList &cellRegion) const |
| Manually consolidate the regions globally by swapping information. More... | |
Public Member Functions inherited from MeshObject< polyMesh, TopologicalMeshObject, regionSplit > | |
| MeshObject (const polyMesh &mesh) | |
| Construct on Mesh type. More... | |
| virtual | ~MeshObject ()=default |
| Destructor. More... | |
| const polyMesh & | mesh () const |
| virtual bool | writeData (Ostream &os) const |
Public Member Functions inherited from TopologicalMeshObject< polyMesh > | |
| TopologicalMeshObject (const word &typeName, const objectRegistry &obr) | |
| Construct from name and instance on registry. More... | |
Public Member Functions inherited from meshObject | |
| ClassName ("meshObject") | |
| meshObject (const word &typeName, const objectRegistry &obr) | |
| Construct from name and instance on registry. More... | |
Public Member Functions inherited from regIOobject | |
| TypeName ("regIOobject") | |
| Runtime type information. More... | |
| regIOobject (const IOobject &io, const bool isTime=false) | |
| regIOobject (const regIOobject &rio) | |
| Copy construct. More... | |
| regIOobject (const regIOobject &rio, bool registerCopy) | |
| regIOobject (const word &newName, const regIOobject &, bool registerCopy) | |
| regIOobject (const IOobject &io, const regIOobject &rio) | |
| Copy construct with new IO parameters. More... | |
| virtual | ~regIOobject () |
| Destructor. More... | |
| bool | checkIn () |
| Add object to registry, if not already registered. More... | |
| bool | checkOut () |
| Remove all file watches and remove object from registry. More... | |
| virtual void | addWatch () |
| Add file watch on object (if registered and READ_IF_MODIFIED) More... | |
| bool | ownedByRegistry () const |
| Is this object owned by the registry? More... | |
| bool | store () |
| void | release (const bool unregister=false) |
| Release ownership of this object from its registry. More... | |
| label | eventNo () const |
| Event number at last update. More... | |
| label & | eventNo () |
| 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 as up-to-date. More... | |
| virtual void | rename (const word &newName) |
| Rename. More... | |
| virtual fileName | filePath () const |
| Return complete path + object name if the file exists. More... | |
| bool | headerOk () |
| Read and check header info. More... | |
| Istream & | readStream (const word &, const bool valid=true) |
| Return Istream and check object type against that given. More... | |
| void | close () |
| Close Istream. More... | |
| virtual bool | readData (Istream &) |
| Virtual readData function. More... | |
| virtual bool | read () |
| Read object. More... | |
| virtual label | addWatch (const fileName &) |
| Add file watch for fileName on object if not yet watched. More... | |
| const labelList & | watchIndices () const |
| Return file-monitoring handles. More... | |
| labelList & | watchIndices () |
| Return file-monitoring handles. More... | |
| virtual bool | modified () const |
| virtual bool | readIfModified () |
| Read object if modified (as set by call to modified) More... | |
| virtual bool | writeObject (IOstreamOption streamOpt, const bool valid) const |
| Write using stream options. More... | |
| virtual bool | write (const bool valid=true) const |
| Write using setting from DB. More... | |
| virtual bool | global () const |
| Is object global. More... | |
| void | operator= (const IOobject &io) |
| Copy assignment. More... | |
| virtual bool | writeObject (IOstream::streamFormat fmt, IOstream::versionNumber ver, IOstream::compressionType comp, const bool valid) const |
| Write using given format, version and compression. More... | |
Public Member Functions inherited from IOobject | |
| TypeName ("IOobject") | |
| Declare type-name, virtual type (with debug switch) More... | |
| IOobject (const IOobject &)=default | |
| Copy construct. More... | |
| virtual | ~IOobject ()=default |
| Destructor. More... | |
| IOobject (const word &name, const fileName &instance, const objectRegistry ®istry, 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 ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false) | |
| Construct from name, instance, local, registry, io options. More... | |
| IOobject (const fileName &path, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false) | |
| Construct from path, registry, io options. More... | |
| IOobject (const IOobject &io, const objectRegistry ®istry) | |
| Copy construct, resetting registry. More... | |
| IOobject (const IOobject &io, const word &name) | |
| Copy construct, resetting name. More... | |
| autoPtr< IOobject > | clone () const |
| Clone. More... | |
| autoPtr< IOobject > | clone (const objectRegistry ®istry) const |
| Clone resetting registry. More... | |
| const objectRegistry & | db () const |
| Return the local objectRegistry. More... | |
| const Time & | time () const |
| Return time. More... | |
| const word & | name () const |
| Return name. More... | |
| const word & | headerClassName () const |
| Return name of the class name read from header. More... | |
| word & | headerClassName () |
| Return non-constant access to the class name read from header. More... | |
| const string & | note () const |
| Return the optional note. More... | |
| string & | note () |
| Return non-constant access to the optional note. More... | |
| bool | registerObject () const |
| Should object created with this IOobject be registered? More... | |
| bool & | registerObject () |
| Should object created with this IOobject be registered? More... | |
| bool | globalObject () const |
| Is object same for all processors? More... | |
| bool & | globalObject () |
| Is object same for all processors? More... | |
| unsigned | labelByteSize () const |
| The label byte-size, possibly read from the header. More... | |
| unsigned | scalarByteSize () const |
| The scalar byte-size, possibly read from the header. More... | |
| bool | isHeaderClassName (const word &clsName) const |
| Test if headerClassName() equals the given class name. More... | |
| template<class Type > | |
| bool | isHeaderClassName () const |
| Test if headerClassName() equals Type::typeName. More... | |
| readOption | readOpt () const |
| The read option. More... | |
| readOption & | readOpt () |
| Non-constant access to the read option. More... | |
| writeOption | writeOpt () const |
| The write option. More... | |
| writeOption & | writeOpt () |
| Non-constant access to the write option. More... | |
| word | group () const |
| Return group (extension part of name) More... | |
| word | member () const |
| Return member (name without the extension) More... | |
| const fileName & | rootPath () const |
| const fileName & | caseName () const |
| const fileName & | instance () const |
| fileName & | instance () |
| const fileName & | local () const |
| fileName | path () const |
| The complete path. More... | |
| fileName | path (const word &instance, const fileName &local=fileName::null) const |
| The complete path with alternative instance and local. More... | |
| fileName | objectPath () const |
| The complete path + object name. More... | |
| fileName | localFilePath (const word &typeName, const bool search=true) const |
| Helper for filePath that searches locally. More... | |
| fileName | globalFilePath (const word &typeName, const bool search=true) const |
| Helper for filePath that searches up if in parallel. More... | |
| bool | readHeader (Istream &is) |
| Read header. More... | |
| template<class Type > | |
| bool | typeHeaderOk (const bool checkType=true, const bool search=true, const bool verbose=true) |
| Read header (uses typeFilePath to find file) and check its info. More... | |
| template<class Type > | |
| void | warnNoRereading () const |
| Helper: warn that type does not support re-reading. More... | |
| bool | writeHeader (Ostream &os) const |
| Write header. More... | |
| bool | writeHeader (Ostream &os, const word &objectType) const |
| Write header. Allow override of type. More... | |
| bool | good () const |
| bool | bad () const |
| InfoProxy< IOobject > | info () const |
| Return info proxy. More... | |
| void | operator= (const IOobject &io) |
| template<> | |
| bool | isHeaderClassName () const |
Specialization for void always returns true (no headerClassName check). More... | |
| template<class StringType > | |
| Foam::word | groupName (StringType base, const word &group) |
| template<class StringType > | |
| Foam::word | scopedName (StringType scope, const word &name) |
Public Member Functions inherited from List< T > | |
| constexpr | List () noexcept |
| Null constructor. More... | |
| List (const label len) | |
| Construct with given size. More... | |
| List (const label len, const T &val) | |
| Construct with given size and value for all elements. More... | |
| List (const label len, const zero) | |
| Construct with given size initializing all elements to zero. More... | |
| List (const one, const T &val) | |
| Construct with length=1, copying the value as the only content. More... | |
| List (const one, T &&val) | |
| Construct with length=1, moving the value as the only content. More... | |
| List (const one, const zero) | |
| Construct with length=1, initializing content to zero. More... | |
| List (const List< T > &a) | |
| Copy construct from list. More... | |
| List (const UList< T > &a) | |
| Copy construct contents from list. More... | |
| List (List< T > &a, bool reuse) | |
| Construct as copy or re-use as specified. More... | |
| List (const UList< T > &list, const labelUList &indices) | |
| Copy construct subset of list. More... | |
| template<unsigned N> | |
| List (const UList< T > &list, const FixedList< label, N > &indices) | |
| Copy construct subset of list. More... | |
| template<class InputIterator > | |
| List (InputIterator begIter, InputIterator endIter) | |
| Construct given begin/end iterators. More... | |
| template<unsigned N> | |
| List (const FixedList< T, N > &list) | |
| Construct as copy of FixedList<T, N> More... | |
| List (const PtrList< T > &list) | |
| Construct as copy of PtrList<T> More... | |
| List (const SLList< T > &list) | |
| Construct as copy of SLList<T> More... | |
| template<class Addr > | |
| List (const IndirectListBase< T, Addr > &list) | |
| Construct as copy of IndirectList contents. More... | |
| List (std::initializer_list< T > list) | |
| Construct from an initializer list. More... | |
| List (List< T > &&list) | |
| Move construct from List. More... | |
| template<int SizeMin> | |
| List (DynamicList< T, SizeMin > &&list) | |
| Move construct from DynamicList. More... | |
| List (SortableList< T > &&list) | |
| Move construct from SortableList. More... | |
| List (SLList< T > &&list) | |
| Move construct from SLList. More... | |
| List (Istream &is) | |
| Construct from Istream. More... | |
| autoPtr< List< T > > | clone () const |
| Clone. More... | |
| ~List () | |
| Destructor. More... | |
| void | resize (const label newSize) |
| Adjust allocated size of list. More... | |
| void | resize (const label newSize, const T &val) |
| Adjust allocated size of list and set val for new elements. More... | |
| void | setSize (const label newSize) |
| Alias for resize(const label) More... | |
| void | setSize (const label newSize, const T &val) |
| Alias for resize(const label, const T&) More... | |
| void | clear () |
| Clear the list, i.e. set size to zero. More... | |
| void | append (const T &val) |
| Append an element at the end of the list. More... | |
| void | append (T &&val) |
| Move append an element at the end of the list. More... | |
| void | append (const UList< T > &list) |
| Append a List to the end of this list. More... | |
| template<class Addr > | |
| void | append (const IndirectListBase< T, Addr > &list) |
| Append IndirectList contents at the end of this list. More... | |
| void | transfer (List< T > &list) |
| template<int SizeMin> | |
| void | transfer (DynamicList< T, SizeMin > &list) |
| void | transfer (SortableList< T > &list) |
| T & | newElmt (const label i) |
| void | operator= (const UList< T > &a) |
| Assignment to UList operator. Takes linear time. More... | |
| void | operator= (const List< T > &list) |
| Assignment operator. Takes linear time. More... | |
| void | operator= (const SLList< T > &list) |
| Assignment to SLList operator. Takes linear time. More... | |
| template<class Addr > | |
| void | operator= (const IndirectListBase< T, Addr > &list) |
| Assignment from IndirectList. Takes linear time. More... | |
| template<unsigned N> | |
| void | operator= (const FixedList< T, N > &list) |
| Copy assignment from FixedList. More... | |
| void | operator= (std::initializer_list< T > list) |
| Assignment to an initializer list. More... | |
| void | operator= (const T &val) |
| Assignment of all entries to the given value. More... | |
| void | operator= (const zero) |
| Assignment of all entries to zero. More... | |
| void | operator= (List< T > &&list) |
| Move assignment. Takes constant time. More... | |
| template<int SizeMin> | |
| void | operator= (DynamicList< T, SizeMin > &&list) |
| Move assignment. Takes constant time. More... | |
| void | operator= (SortableList< T > &&list) |
| Move assignment. Takes constant time. More... | |
| void | operator= (SLList< T > &&list) |
| Move assignment. Takes constant time. More... | |
| void | shallowCopy (const UList< T > &)=delete |
| No shallowCopy permitted. More... | |
| template<class TypeT = T> | |
| std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
| A bitSet::set() method for a list of bool. More... | |
| template<> | |
| void | resize (const label newSize) |
Additional Inherited Members | |
Public Types inherited from IOobject | |
| enum | objectState : char { GOOD, BAD } |
| Enumeration defining the valid states of an IOobject. More... | |
| enum | readOption : char { MUST_READ, MUST_READ_IF_MODIFIED, READ_IF_PRESENT, NO_READ } |
| Enumeration defining the read options. More... | |
| enum | writeOption : char { AUTO_WRITE = 0, NO_WRITE = 1 } |
| Enumeration defining the write options. More... | |
| enum | fileCheckTypes : char { timeStamp, timeStampMaster, inotify, inotifyMaster } |
| Enumeration defining the file checking options. More... | |
Public Types inherited from List< T > | |
| typedef SubList< T > | subList |
| Declare type of subList. More... | |
Static Public Member Functions inherited from MeshObject< polyMesh, TopologicalMeshObject, regionSplit > | |
| static const regionSplit & | New (const polyMesh &mesh, Args &&... args) |
| Get existing or create a new MeshObject. More... | |
| static bool | Delete (const polyMesh &mesh) |
| Static destructor. More... | |
Static Public Member Functions inherited from meshObject | |
| template<class Mesh > | |
| static void | movePoints (objectRegistry &obr) |
| template<class Mesh > | |
| static void | updateMesh (objectRegistry &obr, const mapPolyMesh &mpm) |
| template<class Mesh , template< class > class MeshObjectType> | |
| static void | clear (objectRegistry &obr) |
| template<class Mesh , template< class > class FromType, template< class > class ToType> | |
| static void | clearUpto (objectRegistry &obr) |
Static Public Member Functions inherited from regIOobject | |
| template<class Type > | |
| static Type & | store (Type *p) |
| template<class Type > | |
| static Type & | store (autoPtr< Type > &aptr) |
| template<class Type > | |
| static Type & | store (autoPtr< Type > &&aptr) |
| template<class Type > | |
| static Type & | store (tmp< Type > &tptr) |
| template<class Type > | |
| static Type & | store (tmp< Type > &&tptr) |
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 StringType > | |
| static word | groupName (StringType base, const word &group) |
| Create dot-delimited name.group string. More... | |
| static word | group (const word &name) |
| Return group (extension part of name) More... | |
| static word | member (const word &name) |
| Return member (name without the extension) More... | |
| template<class StringType > | |
| static word | scopedName (StringType scope, const word &name) |
| Create scope:name or scope_name string. More... | |
| static IOobject | selectIO (const IOobject &io, const fileName &altFile, const word &ioName="") |
| Return the IOobject, but also consider an alternative file name. More... | |
| static Ostream & | writeBanner (Ostream &os, bool noHint=false) |
| Write the standard OpenFOAM file/dictionary banner. More... | |
| static Ostream & | writeDivider (Ostream &os) |
| Write the standard file section divider. More... | |
| static Ostream & | writeEndDivider (Ostream &os) |
| Write the standard end file divider. More... | |
Static Public Member Functions inherited from List< T > | |
| static const List< T > & | null () |
| Return a null List. More... | |
Static Public Attributes inherited from regIOobject | |
| static float | fileModificationSkew |
| static int | maxFileModificationPolls |
Static Public Attributes inherited from IOobject | |
| static const Enum< fileCheckTypes > | fileCheckTypesNames |
| Names for the fileCheckTypes. More... | |
| static char | scopeSeparator |
| Character for scoping object names (':' or '_') More... | |
| static fileCheckTypes | fileModificationChecking |
| Type of file modification checking. More... | |
Protected Member Functions inherited from regIOobject | |
| bool | readHeaderOk (const IOstream::streamFormat PstreamFormat, const word &typeName) |
| Helper: check readOpt flags and read if necessary. More... | |
| Istream * | objectStream () |
| Construct and return an IFstream for the object. More... | |
Protected Member Functions inherited from IOobject | |
| void | setBad (const string &s) |
| Set the object state to bad. More... | |
Protected Attributes inherited from MeshObject< polyMesh, TopologicalMeshObject, regionSplit > | |
| const polyMesh & | mesh_ |
Static Protected Attributes inherited from regIOobject | |
| static bool | masterOnlyReading = false |
| To flag master-only reading of objects. More... | |
This class separates the mesh into distinct unconnected regions, each of which is then given a label according to globalNumbering().
Say 6 cells, 3 processors, with single baffle on proc1.
baffle
|
+---+---+---+---+---+---+
| | | | | | |
+---+---+---+---+---+---+
proc0 | proc1 | proc21: determine local regions (uncoupled) +---+---+---+---+---+---+ | 0 | 0 | 0 | 1 | 0 | 0 | +---+---+---+---+---+---+ proc0 | proc1 | proc2
2: make global
+---+---+---+---+---+---+ | 0 | 0 | 1 | 2 | 3 | 3 | +---+---+---+---+---+---+ proc0 | proc1 | proc2
3: merge connected across procs
+---+---+---+---+---+---+ | 0 | 0 | 0 | 2 | 2 | 2 | +---+---+---+---+---+---+ proc0 | proc1 | proc2
4. determine locally owner regions.
Determine compact numbering for the local regions and send these to all processors that need them:
So proc1 needs to get the compact number for region 0 from proc0 and proc2 needs to get the compact number for region 2 from proc1:
+---+---+---+---+---+---+ | 0 | 0 | 0 | 1 | 1 | 1 | +---+---+---+---+---+---+ proc0 | proc1 | proc2
Can optionally keep all regions local to the processor.
coupled() at the patch level.Definition at line 140 of file regionSplit.H.
| regionSplit | ( | const polyMesh & | mesh, |
| const bool | doGlobalRegions = Pstream::parRun() |
||
| ) |
Construct from mesh.
Definition at line 402 of file regionSplit.C.
| regionSplit | ( | const polyMesh & | mesh, |
| const boolList & | blockedFace, | ||
| const bool | doGlobalRegions = Pstream::parRun() |
||
| ) |
Construct from mesh and whether face is blocked.
Definition at line 421 of file regionSplit.C.
| regionSplit | ( | const polyMesh & | mesh, |
| const boolList & | blockedFace, | ||
| const List< labelPair > & | explicitConnections, | ||
| const bool | doGlobalRegions = Pstream::parRun() |
||
| ) |
Construct from mesh and whether face is blocked, with additional explicit connections between normal boundary faces.
Definition at line 441 of file regionSplit.C.
| ClassName | ( | "regionSplit" | ) |
Runtime type information.
|
inline |
Return global region numbering.
Definition at line 241 of file regionSplit.H.
Referenced by regionSplit::nLocalRegions(), and regionSplit::nRegions().
|
inline |
Return local number of regions.
Definition at line 247 of file regionSplit.H.
References regionSplit::globalNumbering(), globalIndex::localSize(), and UPstream::myProcNo().
Referenced by decompositionMethod::decompose().
|
inline |
Return total number of regions.
Definition at line 253 of file regionSplit.H.
References regionSplit::globalNumbering(), and globalIndex::size().
Referenced by cellVolumeWeight::findHoles(), inverseDistance::findHoles(), regionSizeDistribution::regionSum(), meshRefinement::splitMesh(), meshRefinement::splitMeshRegions(), and regionSizeDistribution::write().
| Foam::autoPtr< Foam::globalIndex > reduceRegions | ( | const label | numLocalRegions, |
| const boolList & | blockedFace, | ||
| labelList & | cellRegion | ||
| ) | const |
Manually consolidate the regions globally by swapping information.
between processor domains and reducing the regions accordingly.
Definition at line 464 of file regionSplit.C.
References Foam::abort(), polyMesh::boundaryMesh(), Foam::containerSizes(), Foam::expressions::patchExpr::debug, DebugInfo, clockValue::elapsed(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, Foam::flatOutput(), forAll, forAllConstIters(), Foam::inplaceMapValue(), globalIndex::isLocal(), mesh, UPstream::myProcNo(), OSstream::name(), primitiveMesh::nCells(), autoPtr< T >::New(), primitiveMesh::nInternalFaces(), Foam::nl, UPstream::nProcs(), patches, Foam::Pout, List< T >::resize(), Foam::returnReduce(), HashTable< T, Key, Hash >::size(), syncTools::swapBoundaryFaceList(), globalIndex::toGlobal(), UNASSIGNED, and globalIndex::whichProcID().