Classes | Public Member Functions | List of all members
regionSplit Class Reference

This class separates the mesh into distinct unconnected regions, each of which is then given a label according to globalNumbering(). More...

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

Public Member Functions

 ClassName ("regionSplit")
 
 regionSplit (const polyMesh &mesh, const bool doGlobalRegions=Pstream::parRun())
 
 regionSplit (const polyMesh &mesh, const bitSet &blockedFace, const List< labelPair > &explicitConnections=List< labelPair >(), const bool doGlobalRegions=Pstream::parRun())
 
 regionSplit (const polyMesh &mesh, const boolList &blockedFace, const List< labelPair > &explicitConnections=List< labelPair >(), const bool doGlobalRegions=Pstream::parRun())
 
const globalIndexglobalNumbering () const noexcept
 
label nLocalRegions () const
 
label nRegions () const
 
globalIndex reduceRegions (const label numLocalRegions, const bitSet &blockedFace, labelList &cellRegion) const
 
- Public Member Functions inherited from MeshObject< polyMesh, TopologicalMeshObject, regionSplit >
 MeshObject (const polyMesh &mesh)
 
virtual ~MeshObject ()=default
 
const polyMeshmesh () const
 
virtual bool writeData (Ostream &os) const
 
- Public Member Functions inherited from TopologicalMeshObject< polyMesh >
 TopologicalMeshObject (const word &typeName, const objectRegistry &obr)
 
- Public Member Functions inherited from meshObject
 ClassName ("meshObject")
 
 meshObject (const word &typeName, const objectRegistry &obr)
 
- Public Member Functions inherited from regIOobject
 TypeName ("regIOobject")
 
 regIOobject (const IOobject &io, const bool isTimeObject=false)
 
 regIOobject (const regIOobject &rio)
 
 regIOobject (const regIOobject &rio, bool registerCopy)
 
 regIOobject (const word &newName, const regIOobject &, bool registerCopy)
 
 regIOobject (const IOobject &io, const regIOobject &rio)
 
virtual ~regIOobject ()
 
bool checkIn ()
 
bool checkOut ()
 
virtual void addWatch ()
 
bool ownedByRegistry () const
 
bool store ()
 
void release (const bool unregister=false)
 
label eventNo () const
 
label & eventNo ()
 
bool upToDate (const regIOobject &) const
 
bool upToDate (const regIOobject &, const regIOobject &) const
 
bool upToDate (const regIOobject &, const regIOobject &, const regIOobject &) const
 
bool upToDate (const regIOobject &, const regIOobject &, const regIOobject &, const regIOobject &) const
 
void setUpToDate ()
 
virtual void rename (const word &newName)
 
const dictionaryfindMetaData () const noexcept
 
dictionarygetMetaData () noexcept
 
void removeMetaData ()
 
virtual void updateMetaData ()
 
virtual fileName filePath () const
 
bool headerOk ()
 
IstreamreadStream (const word &, const bool valid=true)
 
void close ()
 
virtual bool readData (Istream &)
 
virtual bool read ()
 
virtual label addWatch (const fileName &)
 
const labelListwatchIndices () const
 
labelListwatchIndices ()
 
virtual bool modified () const
 
virtual bool readIfModified ()
 
virtual bool writeObject (IOstreamOption streamOpt, const bool valid) const
 
virtual bool write (const bool valid=true) const
 
virtual bool global () const
 
void operator= (const IOobject &io)
 
virtual bool writeObject (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType comp, const bool valid) const
 
- Public Member Functions inherited from IOobject
 TypeName ("IOobject")
 
 IOobject (const IOobject &)=default
 
virtual ~IOobject ()=default
 
 IOobject (const word &name, const fileName &instance, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false)
 
 IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false)
 
 IOobject (const fileName &path, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false)
 
 IOobject (const IOobject &io, const objectRegistry &registry)
 
 IOobject (const IOobject &io, const word &name)
 
 IOobject (const IOobject &io, readOption, writeOption)
 
autoPtr< IOobjectclone () const
 
autoPtr< IOobjectclone (const objectRegistry &registry) const
 
const objectRegistrydb () const noexcept
 
const Timetime () const
 
const wordname () const noexcept
 
const wordheaderClassName () const noexcept
 
wordheaderClassName () noexcept
 
const stringnote () const noexcept
 
stringnote () noexcept
 
bool registerObject () const noexcept
 
bool registerObject (bool on) noexcept
 
bool globalObject () const noexcept
 
bool globalObject (bool on) noexcept
 
unsigned labelByteSize () const noexcept
 
unsigned scalarByteSize () const noexcept
 
bool isHeaderClassName (const word &clsName) const
 
template<class Type >
bool isHeaderClassName () const
 
readOption readOpt () const noexcept
 
readOption readOpt (readOption opt) noexcept
 
writeOption writeOpt () const noexcept
 
writeOption writeOpt (writeOption opt) noexcept
 
word group () const
 
word member () const
 
const fileNamerootPath () const
 
const fileNamecaseName () const
 
const fileNameinstance () const noexcept
 
fileNameinstance () noexcept
 
const fileNamelocal () const noexcept
 
fileName path () const
 
fileName path (const word &instance, const fileName &local=fileName::null) const
 
fileName objectPath () const
 
fileName objectRelPath () const
 
fileName localFilePath (const word &typeName, const bool search=true) const
 
fileName globalFilePath (const word &typeName, const bool search=true) const
 
IOstreamOption parseHeader (const dictionary &headerDict)
 
bool readHeader (Istream &is)
 
bool readHeader (dictionary &headerDict, Istream &is)
 
template<class Type >
bool typeHeaderOk (const bool checkType=true, const bool search=true, const bool verbose=true)
 
template<class Type >
void warnNoRereading () const
 
bool writeHeader (Ostream &os) const
 
bool writeHeader (Ostream &os, const word &objectType) const
 
void writeHeader (dictionary &dict, IOstreamOption streamOpt) const
 
void writeHeader (dictionary &dict, const word &objectType, IOstreamOption streamOpt) const
 
bool good () const noexcept
 
bool bad () const noexcept
 
InfoProxy< IOobjectinfo () const
 
void operator= (const IOobject &io)
 
readOptionreadOpt () noexcept
 
writeOptionwriteOpt () noexcept
 
boolregisterObject () noexcept
 
boolglobalObject () noexcept
 
template<>
bool isHeaderClassName () const
 
template<class StringType >
Foam::word groupName (StringType base, const word &group)
 
- Public Member Functions inherited from List
constexpr List () noexcept
 
 List (const label len)
 
 List (const label len, const T &val)
 
 List (const label len, const Foam::zero)
 
 List (const Foam::one, const T &val)
 
 List (const Foam::one, T &&val)
 
 List (const Foam::one, const Foam::zero)
 
 List (const List< T > &a)
 
 List (const UList< T > &a)
 
 List (List< T > &a, bool reuse)
 
 List (const UList< T > &list, const labelUList &indices)
 
template<unsigned N>
 List (const UList< T > &list, const FixedList< label, N > &indices)
 
template<unsigned N>
 List (const FixedList< T, N > &list)
 
 List (const PtrList< T > &list)
 
 List (const SLList< T > &list)
 
template<class Addr >
 List (const IndirectListBase< T, Addr > &list)
 
 List (std::initializer_list< T > list)
 
 List (List< T > &&list)
 
template<int SizeMin>
 List (DynamicList< T, SizeMin > &&list)
 
 List (SortableList< T > &&list)
 
 List (SLList< T > &&list)
 
 List (Istream &is)
 
autoPtr< List< T > > clone () const
 
 ~List ()
 
void clear ()
 
void resize (const label len)
 
void resize (const label len, const T &val)
 
void resize_nocopy (const label len)
 
void setSize (const label n)
 
void setSize (const label n, const T &val)
 
void append (const T &val)
 
void append (T &&val)
 
void append (const UList< T > &list)
 
template<class Addr >
void append (const IndirectListBase< T, Addr > &list)
 
label appendUniq (const T &val)
 
void transfer (List< T > &list)
 
template<int SizeMin>
void transfer (DynamicList< T, SizeMin > &list)
 
void transfer (SortableList< T > &list)
 
TnewElmt (const label i)
 
void operator= (const UList< T > &a)
 
void operator= (const List< T > &list)
 
void operator= (const SLList< T > &list)
 
template<class Addr >
void operator= (const IndirectListBase< T, Addr > &list)
 
template<unsigned N>
void operator= (const FixedList< T, N > &list)
 
void operator= (std::initializer_list< T > list)
 
void operator= (const T &val)
 
void operator= (const Foam::zero)
 
void operator= (List< T > &&list)
 
template<int SizeMin>
void operator= (DynamicList< T, SizeMin > &&list)
 
void operator= (SortableList< T > &&list)
 
void operator= (SLList< T > &&list)
 
IstreamreadList (Istream &is)
 
void shallowCopy (const UList< T > &)=delete
 
template<class TypeT = T>
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type set (const label i, bool val=true)
 
template<class T >
 List (const label len)
 
template<class T >
 List (const label len, const T &val)
 
template<class T >
 List (const label len, const Foam::zero)
 
template<class T >
 List (const Foam::one, const T &val)
 
template<class T >
 List (const Foam::one, T &&val)
 
template<class T >
 List (const Foam::one, const Foam::zero)
 
template<class T >
 List (const UList< T > &a)
 
template<class T >
 List (const List< T > &a)
 
template<class T >
 List (List< T > &a, bool reuse)
 
template<class T >
 List (const UList< T > &list, const labelUList &indices)
 
template<class T >
 List (const PtrList< T > &list)
 
template<class T >
 List (const SLList< T > &list)
 
template<class T >
 List (std::initializer_list< T > list)
 
template<class T >
 List (List< T > &&list)
 
template<class T >
 List (SortableList< T > &&list)
 
template<class T >
 List (SLList< T > &&list)
 
template<class T >
void transfer (List< T > &list)
 
template<class T >
void transfer (SortableList< T > &list)
 
template<class T >
void operator= (const UList< T > &a)
 
template<class T >
void operator= (const List< T > &list)
 
template<class T >
void operator= (const SLList< T > &list)
 
template<class T >
void operator= (std::initializer_list< T > list)
 
template<class T >
void operator= (List< T > &&list)
 
template<class T >
void operator= (SortableList< T > &&list)
 
template<class T >
void operator= (SLList< T > &&list)
 
IstreamreadList (Istream &is)
 
template<class T >
constexpr List () noexcept
 
void resize (const label newLen)
 
template<class T >
void append (const T &val)
 
template<class T >
void append (T &&val)
 
template<class T >
void append (const UList< T > &list)
 
template<class T >
void operator= (const T &val)
 
template<class T >
void operator= (const Foam::zero)
 
template<class T >
 List (Istream &is)
 
IstreamreadList (Istream &is)
 

Additional Inherited Members

- Public Types inherited from IOobject
enum  objectState : char { GOOD, BAD }
 
enum  readOption : char { MUST_READ, MUST_READ_IF_MODIFIED, READ_IF_PRESENT, NO_READ }
 
enum  writeOption : char { AUTO_WRITE = 0, NO_WRITE = 1 }
 
enum  fileCheckTypes : char { timeStamp, timeStampMaster, inotify, inotifyMaster }
 
- Public Types inherited from List
typedef SubList< TsubList
 
- Static Public Member Functions inherited from MeshObject< polyMesh, TopologicalMeshObject, regionSplit >
static const regionSplitNew (const polyMesh &mesh, Args &&... args)
 
static bool Delete (const polyMesh &mesh)
 
- 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 > &ptr)
 
template<class Type >
static Type & store (autoPtr< Type > &&ptr)
 
template<class Type >
static Type & store (refPtr< Type > &ptr)
 
template<class Type >
static Type & store (refPtr< Type > &&ptr)
 
template<class Type >
static Type & store (tmp< Type > &ptr)
 
template<class Type >
static Type & store (tmp< Type > &&ptr)
 
- Static Public Member Functions inherited from IOobject
static bool bannerEnabled () noexcept
 
static bool bannerEnabled (bool on) noexcept
 
static bool fileNameComponents (const fileName &path, fileName &instance, fileName &local, word &name)
 
template<class StringType >
static word groupName (StringType base, const word &group)
 
static word group (const word &name)
 
static word member (const word &name)
 
static word scopedName (const std::string &scope, const word &name)
 
static IOobject selectIO (const IOobject &io, const fileName &altFile, const word &ioName="")
 
static OstreamwriteBanner (Ostream &os, const bool noSyntaxHint=false)
 
static OstreamwriteDivider (Ostream &os)
 
static OstreamwriteEndDivider (Ostream &os)
 
- Static Public Member Functions inherited from List
static const List< T > & null ()
 
- Static Public Attributes inherited from IOobject
static const Enum< fileCheckTypesfileCheckTypesNames
 
static char scopeSeparator
 
static fileCheckTypes fileModificationChecking
 
static float fileModificationSkew
 
static int maxFileModificationPolls
 
- Protected Member Functions inherited from regIOobject
bool readHeaderOk (const IOstreamOption::streamFormat fmt, const word &typeName)
 
- Protected Member Functions inherited from IOobject
void setBad (const string &s)
 
- Static Protected Member Functions inherited from IOobject
static void writeHeaderContent (Ostream &os, const IOobject &io, const word &objectType, const dictionary *metaDataDict=nullptr)
 
static void writeHeaderContent (dictionary &dict, const IOobject &io, const word &objectType, IOstreamOption streamOpt, const dictionary *metaDataDict=nullptr)
 
- Protected Attributes inherited from MeshObject< polyMesh, TopologicalMeshObject, regionSplit >
const polyMeshmesh_
 
- Static Protected Attributes inherited from regIOobject
static bool masterOnlyReading = false
 

Detailed Description

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 | proc2
1: 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.

Note
does not walk across cyclicAMI/cyclicACMI - since these are not coupled() at the patch level.
Source files

Definition at line 136 of file regionSplit.H.

Constructor & Destructor Documentation

◆ regionSplit() [1/3]

regionSplit ( const polyMesh mesh,
const bool  doGlobalRegions = Pstream::parRun() 
)

Definition at line 360 of file regionSplit.C.

◆ regionSplit() [2/3]

regionSplit ( const polyMesh mesh,
const bitSet blockedFace,
const List< labelPair > &  explicitConnections = List<labelPair>(),
const bool  doGlobalRegions = Pstream::parRun() 
)

Definition at line 376 of file regionSplit.C.

References BLOCKED, List::clear(), mesh, primitiveMesh::nFaces(), and UNASSIGNED.

Here is the call graph for this function:

◆ regionSplit() [3/3]

regionSplit ( const polyMesh mesh,
const boolList blockedFace,
const List< labelPair > &  explicitConnections = List<labelPair>(),
const bool  doGlobalRegions = Pstream::parRun() 
)

Definition at line 423 of file regionSplit.C.

References BLOCKED, List::clear(), Foam::expressions::patchExpr::debug, forAll, mesh, primitiveMesh::nFaces(), and UNASSIGNED.

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "regionSplit"  )

◆ globalNumbering()

const globalIndex& globalNumbering ( ) const
inlinenoexcept

Definition at line 278 of file regionSplit.H.

Referenced by regionSplit::nLocalRegions(), and regionSplit::nRegions().

Here is the caller graph for this function:

◆ nLocalRegions()

label nLocalRegions ( ) const
inline

Definition at line 284 of file regionSplit.H.

References regionSplit::globalNumbering(), globalIndex::localSize(), and UPstream::myProcNo().

Referenced by decompositionMethod::decompose().

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

◆ nRegions()

label nRegions ( ) const
inline

◆ reduceRegions()

Foam::globalIndex reduceRegions ( const label  numLocalRegions,
const bitSet blockedFace,
labelList cellRegion 
) const

Definition at line 837 of file regionSplit.C.


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