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 &, const bool doGlobalRegions=Pstream::parRun()) | |
Construct from mesh. More... | |
regionSplit (const polyMesh &, const boolList &blockedFace, const bool doGlobalRegions=Pstream::parRun()) | |
Construct from mesh and whether face is blocked. More... | |
regionSplit (const polyMesh &, const boolList &blockedFace, const List< labelPair > &, const bool doGlobalRegions=Pstream::parRun()) | |
Construct from mesh and whether face is blocked. Additional explicit. More... | |
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... | |
![]() | |
MeshObject (const polyMesh &mesh) | |
virtual | ~MeshObject () |
const polyMesh & | mesh () const |
virtual bool | writeData (Foam::Ostream &) const |
![]() | |
TopologicalMeshObject (const word &typeName, const objectRegistry &obr) | |
![]() | |
ClassName ("meshObject") | |
meshObject (const word &typeName, const objectRegistry &obr) | |
![]() | |
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... | |
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 up to date (obviously) More... | |
virtual void | rename (const word &newName) |
Rename. More... | |
Istream & | readStream (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... | |
virtual bool | read () |
Read object. More... | |
label | watchIndex () const |
Return file-monitoring handle. More... | |
label & | watchIndex () |
Return file-monitoring handle. More... | |
virtual bool | modified () const |
Return true if the object's file (or files for objectRegistry) More... | |
virtual bool | readIfModified () |
Read object if modified (as set by call to modified) More... | |
virtual bool | writeObject (IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType) const |
Write using given format, version and compression. More... | |
virtual bool | write () const |
Write using setting from DB. More... | |
void | operator= (const IOobject &) |
![]() | |
TypeName ("IOobject") | |
Runtime type information. 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) | |
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) | |
Construct from path, registry, io options. More... | |
IOobject (const IOobject &io, const word &name) | |
Construct as copy resetting name. More... | |
Foam::autoPtr< IOobject > | clone () const |
Clone. More... | |
virtual | ~IOobject () |
Destructor. More... | |
const Time & | time () const |
Return time. More... | |
const objectRegistry & | db () const |
Return the local objectRegistry. More... | |
const word & | name () const |
Return name. More... | |
const word & | headerClassName () const |
Return name of the class name read from header. More... | |
string & | note () |
Return non-constant access to the optional note. More... | |
const string & | note () 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 |
readOption & | readOpt () |
writeOption | writeOpt () const |
writeOption & | writeOpt () |
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 |
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< IOobject > | info () const |
Return info proxy. More... | |
void | operator= (const IOobject &) |
template<class Name > | |
Foam::word | groupName (Name name, const word &group) |
![]() | |
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... | |
template<class InputIterator > | |
List (InputIterator first, InputIterator last) | |
Construct given start and end iterators. More... | |
template<unsigned Size> | |
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... | |
autoPtr< List< T > > | clone () const |
Clone. More... | |
~List () | |
Destructor. More... | |
label | size () const |
Return the number of elements in the UList. 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... | |
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv> | |
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... | |
Xfer< List< T > > | xfer () |
Transfer contents to the Xfer container. More... | |
T & | newElmt (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... | |
template<class T > | |
List (const label s) | |
template<class T > | |
List (const label s, const T &a) | |
template<class T > | |
List (const List< T > &a) | |
template<class T > | |
List (const Xfer< List< T > > &lst) | |
template<class T > | |
List (List< T > &a, bool reUse) | |
template<class T > | |
List (const UList< T > &a, const labelUList &map) | |
template<class T > | |
List (const PtrList< T > &lst) | |
template<class T > | |
List (const SLList< T > &lst) | |
template<class T > | |
List (const UIndirectList< T > &lst) | |
template<class T > | |
List (const BiIndirectList< T > &lst) | |
template<class T > | |
void | transfer (List< T > &a) |
template<class T > | |
void | transfer (SortableList< T > &a) |
template<class T > | |
List () | |
template<class T > | |
List (Istream &is) | |
Private Member Functions | |
void | calcNonCompactRegionSplit (const globalIndex &globalFaces, const boolList &blockedFace, const List< labelPair > &explicitConnections, labelList &cellRegion) const |
Calculate region split in non-compact (global) numbering. More... | |
autoPtr< globalIndex > | calcRegionSplit (const bool doGlobalRegions, const boolList &blockedFace, const List< labelPair > &explicitConnections, labelList &cellRegion) const |
Calculate global region split. Return globalIndex. More... | |
Private Attributes | |
autoPtr< globalIndex > | globalNumberingPtr_ |
Additional Inherited Members | |
![]() | |
enum | fileCheckTypes { timeStamp, timeStampMaster, inotify, inotifyMaster } |
Types of communications. More... | |
![]() | |
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... | |
![]() | |
typedef SubList< T > | subList |
Declare type of subList. More... | |
![]() | |
static const regionSplit & | New (const polyMesh &mesh) |
static const regionSplit & | New (const polyMesh &mesh, const Data1 &d) |
static const regionSplit & | New (const polyMesh &mesh, const Data1 &, const Data2 &) |
static const regionSplit & | New (const polyMesh &mesh, const Data1 &, const Data2 &, const Data3 &) |
static const regionSplit & | New (const polyMesh &mesh, const Data1 &, const Data2 &, const Data3 &, const Data4 &) |
static bool | Delete (const polyMesh &mesh) |
![]() | |
template<class Mesh > | |
static void | movePoints (objectRegistry &) |
template<class Mesh > | |
static void | updateMesh (objectRegistry &, const mapPolyMesh &) |
template<class Mesh , template< class > class MeshObjectType> | |
static void | clear (objectRegistry &) |
template<class Mesh , template< class > class FromType, template< class > class ToType> | |
static void | clearUpto (objectRegistry &) |
Clear all meshObject derived from FromType up to (but not including) More... | |
![]() | |
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 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 const List< T > & | null () |
Return a null List. More... | |
![]() | |
static const NamedEnum< fileCheckTypes, 4 > | fileCheckTypesNames |
static int | fileModificationSkew |
static fileCheckTypes | fileModificationChecking |
![]() | |
Istream * | objectStream () |
Construct and return an IFstream for the object. More... | |
Istream * | objectStream (const fileName &) |
Construct and return an IFstream for the object given the. More... | |
void | setBad (const string &) |
Set the object state to bad. More... | |
![]() | |
void | size (const label) |
Override size to be inconsistent with allocated storage. More... | |
![]() | |
const polyMesh & | mesh_ |
![]() | |
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 | 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:
proc0 uses regions:
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 not 'coupled()' at the patch level.
Definition at line 119 of file regionSplit.H.
regionSplit | ( | const polyMesh & | mesh, |
const bool | doGlobalRegions = Pstream::parRun() |
||
) |
Construct from mesh.
Definition at line 411 of file regionSplit.C.
References regionSplit::calcRegionSplit(), and regionSplit::globalNumberingPtr_.
regionSplit | ( | const polyMesh & | mesh, |
const boolList & | blockedFace, | ||
const bool | doGlobalRegions = Pstream::parRun() |
||
) |
Construct from mesh and whether face is blocked.
NOTE: blockedFace has to be consistent across coupled faces!
Definition at line 427 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. Additional explicit.
connections between normal boundary faces. NOTE: blockedFace has to be consistent across coupled faces!
Definition at line 447 of file regionSplit.C.
|
private |
Calculate region split in non-compact (global) numbering.
Definition at line 46 of file regionSplit.C.
References FaceCellWave< Type, TrackingData >::data(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, mesh, List::setSize(), List::size(), and globalIndex::toGlobal().
|
private |
Calculate global region split. Return globalIndex.
Definition at line 136 of file regionSplit.C.
References List::clear(), Foam::endl(), forAll, HashSet< Key, Hash >::insert(), globalIndex::isLocal(), mesh, Foam::Pout, List::resize(), List::setSize(), List::size(), polyPatch::start(), globalIndex::toGlobal(), globalIndex::whichProcID(), and List::xfer().
Referenced by regionSplit::regionSplit().
ClassName | ( | "regionSplit" | ) |
Runtime type information.
|
inline |
Return global region numbering.
Definition at line 189 of file regionSplit.H.
References regionSplit::globalNumberingPtr_.
Referenced by regionSplit::nLocalRegions(), and regionSplit::nRegions().
|
inline |
Return local number of regions.
Definition at line 195 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 201 of file regionSplit.H.
References regionSplit::globalNumbering(), and globalIndex::size().
Referenced by Foam::checkTopology(), meshRefinement::findCellZoneInsideWalk(), meshRefinement::findCellZoneTopo(), regionToCell::findRegions(), regionSizeDistribution::regionSum(), meshRefinement::splitMesh(), meshRefinement::splitMeshRegions(), and regionSizeDistribution::write().
|
mutableprivate |
Definition at line 126 of file regionSplit.H.
Referenced by regionSplit::globalNumbering(), and regionSplit::regionSplit().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.