refinementHistory Class Reference

All refinement history. Used in unrefinement. More...

Inheritance diagram for refinementHistory:
Collaboration diagram for refinementHistory:

Classes

class  splitCell8
 

Public Member Functions

 TypeName ("refinementHistory")
 
 refinementHistory (const IOobject &)
 Construct (read) given an IOobject. If global number of visible. More...
 
 refinementHistory (const IOobject &, const List< splitCell8 > &splitCells, const labelList &visibleCells, const bool active)
 Construct (read) or construct from components. More...
 
 refinementHistory (const IOobject &, const label nCells)
 Construct (read) or construct from initial number of cells. More...
 
 refinementHistory (const IOobject &, const label nCells, const bool active)
 Construct (read) or construct from initial number of cells. More...
 
 refinementHistory (const IOobject &, const refinementHistory &)
 Copy constructor. More...
 
 refinementHistory (const IOobject &, const UPtrList< const labelList > &cellMaps, const UPtrList< const refinementHistory > &)
 Construct from multiple refinement histories. If global number of. More...
 
 refinementHistory (const IOobject &, Istream &)
 Construct from Istream. If global number of. More...
 
const labelListvisibleCells () const
 Per cell in the current mesh (i.e. visible) either -1 (unrefined) More...
 
const DynamicList< splitCell8 > & splitCells () const
 Storage for splitCell8s. More...
 
const DynamicList< label > & freeSplitCells () const
 Cache of unused indices in splitCells. More...
 
bool active () const
 Is there unrefinement history? More...
 
bool & active ()
 Is there unrefinement history? More...
 
label parentIndex (const label celli) const
 Get parent of cell. More...
 
void storeSplit (const label celli, const labelList &addedCells)
 Store splitting of cell into 8. More...
 
void combineCells (const label masterCelli, const labelList &combinedCells)
 Store combining 8 cells into master. More...
 
autoPtr< refinementHistoryclone (const IOobject &io, const labelList &decomposition, const labelList &splitCellProc, const labelList &splitCellNum, const label procI, labelList &oldToNewSplit) const
 Low level clone. More...
 
autoPtr< refinementHistoryclone (const IOobject &io, const labelList &cellMap) const
 Create clone from subset. More...
 
void updateMesh (const mapPolyMesh &)
 Update numbering for mesh changes. More...
 
void subset (const labelList &pointMap, const labelList &faceMap, const labelList &cellMap)
 Update numbering for subsetting. More...
 
void distribute (const mapDistributePolyMesh &)
 Update local numbering for mesh redistribution. More...
 
void compact ()
 Compact splitCells_. Removes all freeSplitCells_ elements. More...
 
void resize (const label nCells)
 Extend/shrink storage. additional visibleCells_ elements get. More...
 
void writeDebug () const
 Debug write. More...
 
virtual bool read ()
 Read object. If global number of visible cells > 0 becomes active. More...
 
virtual bool readData (Istream &)
 ReadData function required for regIOobject read operation. Note: More...
 
virtual bool writeData (Ostream &) const
 WriteData function required for regIOobject write operation. More...
 
void add (boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
 Add my decomposition constraints. More...
 
void apply (const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections, labelList &decomposition) const
 Apply any additional post-decomposition constraints. More...
 
- Public Member Functions inherited from regIOobject
 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 &)
 Copy constructor. More...
 
 regIOobject (const regIOobject &, bool registerCopy)
 Copy constructor, transferring registry registration to copy. More...
 
 regIOobject (const word &newName, const regIOobject &, bool registerCopy)
 Copy constructor with new name, transferring registry registration. More...
 
 regIOobject (const IOobject &, const regIOobject &)
 Copy constructor with new IO parameters. More...
 
virtual ~regIOobject ()
 Destructor. More...
 
bool checkIn ()
 Add object to registry. More...
 
bool checkOut ()
 Remove object from registry. More...
 
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...
 
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...
 
labeleventNo ()
 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...
 
virtual fileName filePath () const
 Return complete path + object name if the file exists. More...
 
bool headerOk ()
 Read and check header info. More...
 
IstreamreadStream (const word &, const bool read=true)
 Return Istream and check object type against that given. More...
 
void close ()
 Close Istream. More...
 
const labelListwatchIndices () const
 Return file-monitoring handles. More...
 
labelListwatchIndices ()
 Return file-monitoring handles. 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 global () const
 Is object same for all processors. More...
 
virtual bool writeObject (IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType, const bool write) const
 Write using given format, version and compression. More...
 
virtual bool write (const bool write=true) const
 Write using setting from DB. More...
 
void operator= (const IOobject &)
 
- Public Member Functions inherited from IOobject
 TypeName ("IOobject")
 Runtime type information. More...
 
 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. More...
 
 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. More...
 
 IOobject (const fileName &path, const objectRegistry &registry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
 Construct from path, registry, io options. More...
 
 IOobject (const IOobject &io, const objectRegistry &registry)
 Construct from copy resetting registry. More...
 
 IOobject (const IOobject &io, const word &name)
 Construct from copy resetting name. More...
 
 IOobject (const IOobject &io)=default
 Copy constructor. More...
 
autoPtr< IOobjectclone () const
 Clone. More...
 
autoPtr< IOobjectclone (const objectRegistry &registry) const
 Clone resetting registry. More...
 
virtual ~IOobject ()
 Destructor. More...
 
const Timetime () const
 Return time. More...
 
const objectRegistrydb () const
 Return the local objectRegistry. More...
 
const wordname () const
 Return name. More...
 
const wordheaderClassName () const
 Return name of the class name read from header. More...
 
wordheaderClassName ()
 Return name of the class name read from header. More...
 
stringnote ()
 Return non-constant access to the optional note. More...
 
const stringnote () 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
 
readOptionreadOpt ()
 
writeOption writeOpt () const
 
writeOptionwriteOpt ()
 
word group () const
 Return group (extension part of name) More...
 
word member () const
 Return member (name without the extension) More...
 
word modelName (const char *name) const
 Return the name of the object within this model. More...
 
const fileNamerootPath () const
 
const fileNamecaseName () const
 
const fileNameinstance () const
 
fileNameinstance ()
 
const fileNamelocal () 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 localPath () const
 Return the path relative to the case. More...
 
fileName objectPath () const
 Return complete path + object name. More...
 
fileName localObjectPath () const
 Return complete localPath + object name. More...
 
fileName localFilePath (const word &typeName) const
 Helper for filePath that searches locally. More...
 
fileName globalFilePath (const word &typeName) const
 Helper for filePath that searches up if in parallel. More...
 
bool readHeader (Istream &)
 Read header. More...
 
template<class Type >
bool typeHeaderOk (const bool checkType=true)
 Read header (uses typeFilePath to find file) and check header. More...
 
template<class Type >
void warnNoRereading () const
 Helper: warn that type does not support re-reading. 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< IOobjectinfo () const
 Return info proxy. More...
 
void operator= (const IOobject &)
 
template<class Name >
Foam::word groupName (Name name, const word &group)
 
template<class Name >
Foam::word modelName (Name name, const word &model)
 

Friends

Istreamoperator>> (Istream &, refinementHistory &)
 Istream operator. Note: does not do a reduction - does not set. More...
 
Ostreamoperator<< (Ostream &, const refinementHistory &)
 

Additional Inherited Members

- Public Types inherited from IOobject
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...
 
enum  fileCheckTypes { timeStamp, timeStampMaster, inotify, inotifyMaster }
 Enumeration defining the file checking options. More...
 
- Static Public Member Functions inherited from regIOobject
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 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 Name >
static word groupName (Name name, const word &group)
 
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 Name >
static word modelName (Name name, const word &model)
 Return the name of the object within the given model. More...
 
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 Public Attributes inherited from regIOobject
static float fileModificationSkew
 
- Static Public Attributes inherited from IOobject
static constexpr const char * foamFile = "FoamFile"
 Keyword for the FoamFile header sub-dictionary. More...
 
static const NamedEnum< fileCheckTypes, 4 > fileCheckTypesNames
 
static fileCheckTypes fileModificationChecking
 Type of file modification checking. More...
 
- Protected Member Functions inherited from regIOobject
bool readHeaderOk (const IOstream::streamFormat defaultFormat, const word &typeName)
 Read header, check readOpt flags and read data if necessary. More...
 
- Protected Member Functions inherited from IOobject
void setBad (const string &)
 Set the object state to bad. More...
 

Detailed Description

All refinement history. Used in unrefinement.

- visibleCells: valid for the current mesh and contains per cell -1 (cell unrefined) or an index into splitCells_.

  • splitCells: for every split contains the parent (also index into splitCells) and optionally a subsplit as 8 indices into splitCells. Note that the numbers in splitCells are not cell labels, they are purely indices into splitCells.

E.g. 2 cells, cell 1 gets refined so end up with 9 cells:

    // splitCells
    9
    (
    -1 (1 2 3 4 5 6 7 8)
    0 0()
    0 0()
    0 0()
    0 0()
    0 0()
    0 0()
    0 0()
    0 0()
    )

    // visibleCells
    9(-1 1 2 3 4 5 6 7 8)

So cell0 (visibleCells=-1) is unrefined. Cells 1-8 have all valid splitCells entries which are:

  • parent:0
  • subsplits:0()

The parent 0 refers back to the splitcell entries.

Source files

Definition at line 103 of file refinementHistory.H.

Constructor & Destructor Documentation

◆ refinementHistory() [1/7]

refinementHistory ( const IOobject io)

Construct (read) given an IOobject. If global number of visible.

cells > 0 becomes active

Definition at line 555 of file refinementHistory.C.

References regIOobject::close(), Foam::endl(), regIOobject::headerOk(), IOobject::MUST_READ, IOobject::MUST_READ_IF_MODIFIED, Foam::Pout, IOobject::READ_IF_PRESENT, IOobject::readOpt(), regIOobject::readStream(), Foam::returnReduce(), List< T >::size(), and WarningInFunction.

Referenced by refinementHistory::clone(), and refinementHistory::refinementHistory().

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

◆ refinementHistory() [2/7]

refinementHistory ( const IOobject io,
const List< splitCell8 > &  splitCells,
const labelList visibleCells,
const bool  active 
)

◆ refinementHistory() [3/7]

refinementHistory ( const IOobject io,
const label  nCells 
)

Construct (read) or construct from initial number of cells.

(all visible). If global number of visible cells > 0 becomes active

Definition at line 647 of file refinementHistory.C.

References regIOobject::close(), Foam::endl(), regIOobject::headerOk(), IOobject::MUST_READ, IOobject::MUST_READ_IF_MODIFIED, Foam::Pout, IOobject::READ_IF_PRESENT, IOobject::readOpt(), regIOobject::readStream(), refinementHistory::refinementHistory(), Foam::returnReduce(), List< T >::setSize(), List< T >::size(), and WarningInFunction.

Here is the call graph for this function:

◆ refinementHistory() [4/7]

refinementHistory ( const IOobject io,
const label  nCells,
const bool  active 
)

Construct (read) or construct from initial number of cells.

(all visible) and active flag

Definition at line 707 of file refinementHistory.C.

References regIOobject::close(), Foam::endl(), regIOobject::headerOk(), IOobject::MUST_READ, IOobject::MUST_READ_IF_MODIFIED, Foam::Pout, IOobject::READ_IF_PRESENT, IOobject::readOpt(), regIOobject::readStream(), refinementHistory::refinementHistory(), List< T >::setSize(), List< T >::size(), and WarningInFunction.

Here is the call graph for this function:

◆ refinementHistory() [5/7]

refinementHistory ( const IOobject io,
const refinementHistory rh 
)

Copy constructor.

Definition at line 764 of file refinementHistory.C.

References Foam::endl(), Foam::Pout, and refinementHistory::refinementHistory().

Here is the call graph for this function:

◆ refinementHistory() [6/7]

refinementHistory ( const IOobject io,
const UPtrList< const labelList > &  cellMaps,
const UPtrList< const refinementHistory > &  refs 
)

◆ refinementHistory() [7/7]

refinementHistory ( const IOobject io,
Istream is 
)

Construct from Istream. If global number of.

visible cells > 0 becomes active

Definition at line 902 of file refinementHistory.C.

References IOobject::clone(), Foam::endl(), Foam::Pout, Foam::returnReduce(), and List< T >::size().

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

TypeName ( "refinementHistory"  )

◆ visibleCells()

const labelList& visibleCells ( ) const
inline

Per cell in the current mesh (i.e. visible) either -1 (unrefined)

or an index into splitCells.

Definition at line 268 of file refinementHistory.H.

Referenced by hexRef8::getSplitPoints(), and hexRef8::hexRef8().

Here is the caller graph for this function:

◆ splitCells()

const DynamicList<splitCell8>& splitCells ( ) const
inline

Storage for splitCell8s.

Definition at line 274 of file refinementHistory.H.

◆ freeSplitCells()

const DynamicList<label>& freeSplitCells ( ) const
inline

Cache of unused indices in splitCells.

Definition at line 280 of file refinementHistory.H.

◆ active() [1/2]

◆ active() [2/2]

bool& active ( )
inline

Is there unrefinement history?

Definition at line 292 of file refinementHistory.H.

◆ parentIndex()

◆ storeSplit()

void storeSplit ( const label  celli,
const labelList addedCells 
)

Store splitting of cell into 8.

Definition at line 1673 of file refinementHistory.C.

References refinementHistory::combineCells(), forAll, and refinementHistory::parentIndex().

Referenced by refinementHistory::parentIndex(), hexRef8::setRefinement(), and refinementHistory::writeDebug().

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

◆ combineCells()

void combineCells ( const label  masterCelli,
const labelList combinedCells 
)

Store combining 8 cells into master.

Definition at line 1711 of file refinementHistory.C.

References refinementHistory::splitCell8::addedCellsPtr_, forAll, and refinementHistory::parentIndex().

Referenced by refinementHistory::parentIndex(), hexRef8::setUnrefinement(), and refinementHistory::storeSplit().

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

◆ clone() [1/2]

Foam::autoPtr< Foam::refinementHistory > clone ( const IOobject io,
const labelList decomposition,
const labelList splitCellProc,
const labelList splitCellNum,
const label  procI,
labelList oldToNewSplit 
) const

◆ clone() [2/2]

Foam::autoPtr< Foam::refinementHistory > clone ( const IOobject io,
const labelList cellMap 
) const

Create clone from subset.

Definition at line 1049 of file refinementHistory.C.

References IOobject::clone(), forAll, refinementHistory::refinementHistory(), and List< T >::size().

Here is the call graph for this function:

◆ updateMesh()

void updateMesh ( const mapPolyMesh map)

Update numbering for mesh changes.

Definition at line 1133 of file refinementHistory.C.

References Foam::abort(), refinementHistory::active(), mapPolyMesh::cellMap(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Pout, mapPolyMesh::reverseCellMap(), List< T >::size(), refinementHistory::subset(), and List< T >::transfer().

Referenced by refinementHistory::parentIndex(), and hexRef8::updateMesh().

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

◆ subset()

void subset ( const labelList pointMap,
const labelList faceMap,
const labelList cellMap 
)

Update numbering for subsetting.

Definition at line 1179 of file refinementHistory.C.

References Foam::abort(), refinementHistory::active(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, UPstream::myProcNo(), Foam::Pout, List< T >::size(), and List< T >::transfer().

Referenced by refinementHistory::parentIndex(), hexRef8::subset(), and refinementHistory::updateMesh().

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

◆ distribute()

◆ compact()

void compact ( )

Compact splitCells_. Removes all freeSplitCells_ elements.

Definition at line 1510 of file refinementHistory.C.

References Foam::abort(), refinementHistory::splitCell8::addedCellsPtr_, DynamicList< T, SizeInc, SizeMult, SizeDiv >::clearStorage(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, refinementHistory::splitCell8::parent_, Foam::Pout, and List< T >::size().

Referenced by refinementHistory::distribute(), Foam::operator<<(), and refinementHistory::parentIndex().

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

◆ resize()

void resize ( const label  nCells)

Extend/shrink storage. additional visibleCells_ elements get.

set to -1.

Definition at line 1113 of file refinementHistory.C.

References Foam::endl(), Foam::Pout, List< T >::setSize(), and List< T >::size().

Referenced by refinementHistory::parentIndex(), and hexRef8::setRefinement().

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

◆ writeDebug()

void writeDebug ( ) const

Debug write.

Definition at line 1666 of file refinementHistory.C.

References refinementHistory::storeSplit().

Referenced by refinementHistory::parentIndex().

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

◆ read()

bool read ( )
virtual

Read object. If global number of visible cells > 0 becomes active.

Reimplemented from regIOobject.

Definition at line 1734 of file refinementHistory.C.

References regIOobject::close(), refinementHistory::readData(), regIOobject::readStream(), Foam::returnReduce(), and List< T >::size().

Referenced by hexRef8::hexRef8(), and refinementHistory::parentIndex().

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

◆ readData()

bool readData ( Istream is)
virtual

ReadData function required for regIOobject read operation. Note:

does not do a reduction - does not set active_ flag

Reimplemented from regIOobject.

Definition at line 1745 of file refinementHistory.C.

References IOstream::bad().

Referenced by refinementHistory::parentIndex(), and refinementHistory::read().

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

◆ writeData()

bool writeData ( Ostream os) const
virtual

WriteData function required for regIOobject write operation.

Implements regIOobject.

Definition at line 1752 of file refinementHistory.C.

References IOstream::good().

Referenced by refinementHistory::parentIndex().

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

◆ add()

void add ( boolList blockedFace,
PtrList< labelList > &  specifiedProcessorFaces,
labelList specifiedProcessor,
List< labelPair > &  explicitConnections 
) const

Add my decomposition constraints.

Definition at line 449 of file refinementHistory.C.

References refinementHistory::apply(), IOobject::db(), Foam::endl(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), forAll, Foam::Info, mesh, primitiveMesh::nFaces(), Foam::reduce(), List< T >::setSize(), syncTools::syncFaceList(), and Foam::type().

Referenced by refinementHistoryConstraint::add(), Foam::operator<<(), and refinementHistory::parentIndex().

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

◆ apply()

void apply ( const boolList blockedFace,
const PtrList< labelList > &  specifiedProcessorFaces,
const labelList specifiedProcessor,
const List< labelPair > &  explicitConnections,
labelList decomposition 
) const

Apply any additional post-decomposition constraints.

Definition at line 495 of file refinementHistory.C.

References IOobject::db(), Foam::endl(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), forAll, Foam::Info, mesh, Foam::reduce(), and Foam::type().

Referenced by refinementHistory::add(), refinementHistoryConstraint::apply(), and refinementHistory::parentIndex().

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

Friends And Related Function Documentation

◆ operator>>

Istream& operator>> ( Istream ,
refinementHistory  
)
friend

Istream operator. Note: does not do a reduction - does not set.

active_ flag

◆ operator<<

Ostream& operator<< ( Ostream ,
const refinementHistory  
)
friend

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