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") | |
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 globalIndex & | globalNumbering () const noexcept |
label | nLocalRegions () const |
label | nRegions () const |
globalIndex | reduceRegions (const label numLocalRegions, const bitSet &blockedFace, labelList &cellRegion) const |
![]() | |
MeshObject (const polyMesh &mesh) | |
virtual | ~MeshObject ()=default |
const polyMesh & | mesh () const |
virtual bool | writeData (Ostream &os) const |
![]() | |
TopologicalMeshObject (const word &typeName, const objectRegistry &obr) | |
![]() | |
ClassName ("meshObject") | |
meshObject (const word &typeName, const objectRegistry &obr) | |
![]() | |
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 dictionary * | findMetaData () const noexcept |
dictionary & | getMetaData () noexcept |
void | removeMetaData () |
virtual void | updateMetaData () |
virtual fileName | filePath () const |
bool | headerOk () |
Istream & | readStream (const word &, const bool valid=true) |
void | close () |
virtual bool | readData (Istream &) |
virtual bool | read () |
virtual label | addWatch (const fileName &) |
const labelList & | watchIndices () const |
labelList & | watchIndices () |
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 |
![]() | |
TypeName ("IOobject") | |
IOobject (const IOobject &)=default | |
virtual | ~IOobject ()=default |
IOobject (const word &name, const fileName &instance, const objectRegistry ®istry, 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 ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false) | |
IOobject (const fileName &path, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true, bool globalObject=false) | |
IOobject (const IOobject &io, const objectRegistry ®istry) | |
IOobject (const IOobject &io, const word &name) | |
IOobject (const IOobject &io, readOption, writeOption) | |
autoPtr< IOobject > | clone () const |
autoPtr< IOobject > | clone (const objectRegistry ®istry) const |
const objectRegistry & | db () const noexcept |
const Time & | time () const |
const word & | name () const noexcept |
const word & | headerClassName () const noexcept |
word & | headerClassName () noexcept |
const string & | note () const noexcept |
string & | note () 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 fileName & | rootPath () const |
const fileName & | caseName () const |
const fileName & | instance () const noexcept |
fileName & | instance () noexcept |
const fileName & | local () 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< IOobject > | info () const |
void | operator= (const IOobject &io) |
readOption & | readOpt () noexcept |
writeOption & | writeOpt () noexcept |
bool & | registerObject () noexcept |
bool & | globalObject () noexcept |
template<> | |
bool | isHeaderClassName () const |
template<class StringType > | |
Foam::word | groupName (StringType base, const word &group) |
![]() | |
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) |
T & | newElmt (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) |
Istream & | readList (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) |
Istream & | readList (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) | |
Istream & | readList (Istream &is) |
Additional Inherited Members | |
![]() | |
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 } |
![]() | |
typedef SubList< T > | subList |
![]() | |
static const regionSplit & | New (const polyMesh &mesh, Args &&... args) |
static bool | Delete (const polyMesh &mesh) |
![]() | |
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) |
![]() | |
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 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 Ostream & | writeBanner (Ostream &os, const bool noSyntaxHint=false) |
static Ostream & | writeDivider (Ostream &os) |
static Ostream & | writeEndDivider (Ostream &os) |
![]() | |
static const List< T > & | null () |
![]() | |
static const Enum< fileCheckTypes > | fileCheckTypesNames |
static char | scopeSeparator |
static fileCheckTypes | fileModificationChecking |
static float | fileModificationSkew |
static int | maxFileModificationPolls |
![]() | |
bool | readHeaderOk (const IOstreamOption::streamFormat fmt, const word &typeName) |
![]() | |
void | setBad (const string &s) |
![]() | |
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) |
![]() | |
const polyMesh & | mesh_ |
![]() | |
static bool | masterOnlyReading = false |
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.
coupled()
at the patch level.Definition at line 136 of file regionSplit.H.
regionSplit | ( | const polyMesh & | mesh, |
const bool | doGlobalRegions = Pstream::parRun() |
||
) |
Definition at line 360 of file regionSplit.C.
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.
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.
ClassName | ( | "regionSplit" | ) |
|
inlinenoexcept |
Definition at line 278 of file regionSplit.H.
Referenced by regionSplit::nLocalRegions(), and regionSplit::nRegions().
|
inline |
Definition at line 284 of file regionSplit.H.
References regionSplit::globalNumbering(), globalIndex::localSize(), and UPstream::myProcNo().
Referenced by decompositionMethod::decompose().
|
inline |
Definition at line 290 of file regionSplit.H.
References regionSplit::globalNumbering(), and globalIndex::size().
Referenced by distanceSurface::filterKeepLargestRegion(), distanceSurface::filterKeepNearestRegions(), distanceSurface::filterRegionProximity(), cellVolumeWeight::findHoles(), inverseDistance::findHoles(), regionSizeDistribution::regionSum(), meshRefinement::splitMesh(), meshRefinement::splitMeshRegions(), and regionSizeDistribution::write().
Foam::globalIndex reduceRegions | ( | const label | numLocalRegions, |
const bitSet & | blockedFace, | ||
labelList & | cellRegion | ||
) | const |
Definition at line 837 of file regionSplit.C.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.