hexRef8 Class Reference

Refinement of (split) hexes using polyTopoChange. More...

Inheritance diagram for hexRef8:
Collaboration diagram for hexRef8:

Public Member Functions

 ClassName ("hexRef8")
 Runtime type information. More...
 
 hexRef8 (const polyMesh &mesh, const bool readHistory=true)
 Construct from mesh, read_if_present refinement data. More...
 
 hexRef8 (const polyMesh &mesh, const labelList &cellLevel, const labelList &pointLevel, const refinementHistory &history, const scalar level0Edge=-great)
 Construct from mesh and un/refinement data and optional size of. More...
 
 hexRef8 (const polyMesh &mesh, const labelList &cellLevel, const labelList &pointLevel, const scalar level0Edge=-great)
 Construct from mesh and refinement data and optional size of. More...
 
 hexRef8 (const hexRef8 &)=delete
 Disallow default bitwise copy construction. More...
 
const polyMeshmesh () const
 
const labelIOListcellLevel () const
 
const labelIOListpointLevel () const
 
const refinementHistoryhistory () const
 
scalar level0EdgeLength () const
 Typical edge length between unrefined points. More...
 
label faceLevel (const label facei) const
 Gets level such that the face has four points <= level. More...
 
labelList consistentRefinement (const labelList &cellsToRefine, const bool maxSet) const
 Given valid mesh and current cell level and proposed. More...
 
labelList consistentSlowRefinement (const label maxFaceDiff, const labelList &cellsToRefine, const labelList &facesToCheck, const label maxPointDiff, const labelList &pointsToCheck) const
 Like consistentRefinement but slower: More...
 
labelList consistentSlowRefinement2 (const label maxFaceDiff, const labelList &cellsToRefine, const labelList &facesToCheck) const
 Like consistentSlowRefinement but uses different meshWave. More...
 
labelListList setRefinement (const labelList &cells, polyTopoChange &)
 Insert refinement. All selected cells will be split into 8. More...
 
virtual void topoChange (const polyTopoChangeMap &)
 Update local numbering for changed mesh. More...
 
void subset (const labelList &pointMap, const labelList &faceMap, const labelList &cellMap)
 Update local numbering for subsetted mesh. More...
 
virtual bool movePoints ()
 Correct weighting factors for moving mesh. More...
 
virtual void mapMesh (const polyMeshMap &)
 Update from another mesh using the given map. More...
 
virtual void distribute (const polyDistributionMap &)
 Update local numbering for mesh redistribution. More...
 
virtual void reorderPatches (const labelUList &newToOld, const bool validBoundary)
 Reordered/removed trailing patches. More...
 
virtual void addPatch (const label patchi)
 Inserted patch at patchi. More...
 
virtual void reset ()
 Reset. More...
 
virtual void clear ()
 Clear. More...
 
void checkMesh () const
 Debug: Check coupled mesh for correctness. More...
 
void checkRefinementLevels (const label maxPointDiff, const labelList &pointsToCheck) const
 Debug: Check 2:1 consistency across faces. More...
 
const cellShapeListcellShapes () const
 Utility: get hexes as cell shapes. More...
 
labelList getSplitPoints () const
 Return the points at the centre of top-level split cells. More...
 
labelList consistentUnrefinement (const labelList &pointsToUnrefine, const bool maxSet) const
 Given proposed. More...
 
void setUnrefinement (const labelList &splitPointLabels, polyTopoChange &)
 Remove some refinement. Needs to be supplied output of. More...
 
void setInstance (const fileName &inst)
 
virtual bool writeObject (IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType, const bool write=true) const
 Write using given format, version and compression. More...
 
void operator= (const hexRef8 &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from DemandDrivenMeshObject< polyMesh, PermanentMeshObject, hexRef8 >
virtual const wordtype () const
 Runtime type information. More...
 
virtual ~DemandDrivenMeshObject ()
 
const polyMeshmesh () const
 
virtual bool writeData (Foam::Ostream &) const
 Pure virtual writaData function. 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 word &newName, const IOobject &, bool registerObject)
 Construct from IOobject with new name, and overriding the. More...
 
 regIOobject (const regIOobject &)
 Copy constructor. More...
 
 regIOobject (regIOobject &&)
 Move constructor. More...
 
 regIOobject (const regIOobject &, bool registerCopy)
 Copy constructor, transferring registry registration to copy. More...
 
virtual ~regIOobject ()
 Destructor. More...
 
virtual bool global () const
 Return true if object is global, i.e. same for all processors. More...
 
virtual bool globalFile () const
 Return true if object is global, i.e. same for all processors. More...
 
const fileNamecaseName () const
 
fileName path () const
 Return complete path. More...
 
fileName objectPath () const
 Return complete path + object name. More...
 
fileName filePath () const
 Return complete path + object name if the file exists. 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 registered () const
 Is this object registered with the 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...
 
uint64_t eventNo () const
 Event number at last update. More...
 
uint64_t & 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...
 
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...
 
virtual bool readData (Istream &)
 Virtual readData function. More...
 
virtual bool read ()
 Read object. 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 dependenciesModified () const
 Return true if the object's dependencies have been modified. More...
 
virtual bool readIfModified ()
 Read object if modified (as set by call to modified) More...
 
virtual bool write (const bool write=true) const
 Write using setting from DB. More...
 
void operator= (const IOobject &)=delete
 Assign to IOobject. More...
 
void operator= (const regIOobject &)=delete
 Disallow default assignment. More...
 
const fileNamecaseName (const bool global) const
 
fileName path (const bool global) const
 Return complete path including the processor sub-directory. More...
 
fileName objectPath (const bool global) const
 Return complete path + object name including the processor. More...
 
fileName filePath (const bool global) const
 Return complete path + object name if the file exists. More...
 
- 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 ()
 
writeOptionwriteOpt () const
 
writeOptionwriteOpt ()
 
word group () const
 Return group (extension part of name) More...
 
word member () const
 Return member (name without the extension) More...
 
const fileNamerootPath () const
 
const fileNamecaseName (const bool global) const
 
fileNameinstance () const
 Return the instance directory, constant, system, <time> etc. More...
 
void updateInstance () const
 If the instance is a time directory update to the current time. More...
 
void updateTimeInstance () const
 Update instance to the current time. More...
 
const fileNamelocal () const
 
fileName path (const bool global) const
 Return complete path including the processor sub-directory. More...
 
fileName objectPath (const bool global) const
 Return complete path + object name including the processor. More...
 
fileName relativePath () const
 Return the path relative to the case directory. More...
 
fileName relativeObjectPath () const
 Return complete relativePath + object name. More...
 
fileName filePath (const bool global) const
 Return complete path + object name if the file exists. More...
 
bool readHeader (Istream &)
 Read header. More...
 
bool headerOk ()
 Read header of local object without type-checking. 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)
 
- Public Member Functions inherited from PermanentMeshObject< Mesh >
template<class Type >
 PermanentMeshObject (Type &mo)
 
- Public Member Functions inherited from RepatchableMeshObject< Mesh >
template<class Type >
 RepatchableMeshObject (Type &mo)
 
- Public Member Functions inherited from TopoChangeableMeshObject< Mesh >
template<class Type >
 TopoChangeableMeshObject (Type &mo)
 
virtual void swap (Mesh &otherMesh)
 Swap mesh. More...
 
- Public Member Functions inherited from DistributeableMeshObject< Mesh >
template<class Type >
 DistributeableMeshObject (Type &mo)
 
- Public Member Functions inherited from MoveableMeshObject< Mesh >
template<class Type >
 MoveableMeshObject (Type &mo)
 
- Public Member Functions inherited from DeletableMeshObject< Mesh >
template<class Type >
 DeletableMeshObject (Type &mo)
 
virtual ~DeletableMeshObject ()=default
 Virtual destructor to make class polymorphic. More...
 

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 DemandDrivenMeshObject< polyMesh, PermanentMeshObject, hexRef8 >
static hexRef8New (const word &name, const polyMesh &mesh)
 Construct and return the named DemandDrivenMeshObject. More...
 
static hexRef8New (const polyMesh &mesh)
 Construct and return the DemandDrivenMeshObject named Type::typeName. More...
 
static hexRef8New (const word &name, const polyMesh &mesh, const Args &... args)
 Construct and return the named DemandDrivenMeshObject. More...
 
static hexRef8New (const polyMesh &mesh, const Args &... args)
 Construct and return the DemandDrivenMeshObject named Type::typeName. More...
 
static bool found (const word &name, const polyMesh &mesh)
 Return true if the DemandDrivenMeshObject with the given name. More...
 
static bool found (const polyMesh &mesh)
 Return true if the DemandDrivenMeshObject named Type::typeName. 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 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 bool writeHeader (Ostream &os, const IOstream::versionNumber version, const IOstream::streamFormat format, const word &type, const string &note, const fileName &location, const word &name)
 Write header. More...
 
static bool writeHeader (Ostream &, const dictionary &foamFileDict)
 Write header. 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 DemandDrivenMeshObject< polyMesh, PermanentMeshObject, hexRef8 >
 DemandDrivenMeshObject (const IOobject &io, const polyMesh &mesh)
 Construct from mesh and IOobject. More...
 
 DemandDrivenMeshObject (const word &name, const polyMesh &mesh)
 Construct from mesh and name. More...
 
 DemandDrivenMeshObject (const polyMesh &mesh)
 Construct from mesh, the name is set to Type::typeName. 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
template<class Type >
bool typeHeaderOk (const bool checkType)
 Read header using typeGlobalFile to find file. More...
 

Detailed Description

Refinement of (split) hexes using polyTopoChange.

Source files

Definition at line 65 of file hexRef8.H.

Constructor & Destructor Documentation

◆ hexRef8() [1/4]

hexRef8 ( const polyMesh mesh,
const bool  readHistory = true 
)

◆ hexRef8() [2/4]

hexRef8 ( const polyMesh mesh,
const labelList cellLevel,
const labelList pointLevel,
const refinementHistory history,
const scalar  level0Edge = -great 
)

Construct from mesh and un/refinement data and optional size of.

starting cells

Definition at line 1913 of file hexRef8.C.

References Foam::abort(), refinementHistory::active(), IOobject::AUTO_WRITE, hexRef8::checkMesh(), hexRef8::checkRefinementLevels(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, primitiveMesh::nCells(), primitiveMesh::nPoints(), List< T >::size(), refinementHistory::visibleCells(), and IOobject::writeOpt().

Here is the call graph for this function:

◆ hexRef8() [3/4]

hexRef8 ( const polyMesh mesh,
const labelList cellLevel,
const labelList pointLevel,
const scalar  level0Edge = -great 
)

Construct from mesh and refinement data and optional size of.

starting cells

Definition at line 2026 of file hexRef8.C.

References Foam::abort(), hexRef8::checkMesh(), hexRef8::checkRefinementLevels(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, primitiveMesh::nCells(), and primitiveMesh::nPoints().

Here is the call graph for this function:

◆ hexRef8() [4/4]

hexRef8 ( const hexRef8 )
delete

Disallow default bitwise copy construction.

Member Function Documentation

◆ ClassName()

ClassName ( "hexRef8"  )

Runtime type information.

◆ mesh()

const polyMesh& mesh ( ) const
inline

Definition at line 394 of file hexRef8.H.

◆ cellLevel()

const labelIOList& cellLevel ( ) const
inline

Definition at line 399 of file hexRef8.H.

◆ pointLevel()

const labelIOList& pointLevel ( ) const
inline

Definition at line 404 of file hexRef8.H.

◆ history()

const refinementHistory& history ( ) const
inline

Definition at line 409 of file hexRef8.H.

◆ level0EdgeLength()

scalar level0EdgeLength ( ) const
inline

Typical edge length between unrefined points.

Definition at line 415 of file hexRef8.H.

Referenced by meshRefinement::meshRefinement().

Here is the caller graph for this function:

◆ faceLevel()

Foam::label faceLevel ( const label  facei) const

Gets level such that the face has four points <= level.

Definition at line 675 of file hexRef8.C.

References f(), and List< T >::size().

Here is the call graph for this function:

◆ consistentRefinement()

Foam::labelList consistentRefinement ( const labelList cellsToRefine,
const bool  maxSet 
) const

Given valid mesh and current cell level and proposed.

cells to refine calculate any clashes (due to 2:1) and return ok list of cells to refine. Either adds cells to refine to set (maxSet = true) or removes cells to refine (maxSet = false)

Definition at line 2130 of file hexRef8.C.

References Foam::endl(), forAll, Foam::Pout, and Foam::reduce().

Here is the call graph for this function:

◆ consistentSlowRefinement()

Foam::labelList consistentSlowRefinement ( const label  maxFaceDiff,
const labelList cellsToRefine,
const labelList facesToCheck,
const label  maxPointDiff,
const labelList pointsToCheck 
) const

Like consistentRefinement but slower:

  • specify number of cells between consecutive refinement levels (consistentRefinement equivalent to 1)
  • specify max level difference between point-connected cells. (-1 to disable) Note that with normal 2:1 limitation (maxFaceDiff=1) there can be 8:1 size difference across point connected cells so maxPointDiff allows you to make that less. cellsToRefine : cells we're thinking about refining. It will extend this set. All refinement levels will be at least maxFaceDiff layers thick. facesToCheck : additional faces where to implement the maxFaceDiff thickness (usually only boundary faces)

Definition at line 2199 of file hexRef8.C.

References Foam::abort(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clear(), refinementData::count(), Foam::count(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::findIndices(), forAll, forAllConstIter, HashTable< T, Key, Hash >::insert(), FaceCellWave< Type, TrackingData >::iterate(), Foam::labelMin, UList< T >::last(), Foam::mag(), Foam::max(), Foam::nl, patchi, Foam::Pout, Foam::reduce(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::setCapacity(), FaceCellWave< Type, TrackingData >::setFaceInfo(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::shrink(), HashTable< T, Key, Hash >::size(), List< T >::size(), syncTools::swapBoundaryFaceList(), syncTools::syncPointList(), refinementData::updateFace(), and Foam::blendedInterfacialModel::valid().

Here is the call graph for this function:

◆ consistentSlowRefinement2()

Foam::labelList consistentSlowRefinement2 ( const label  maxFaceDiff,
const labelList cellsToRefine,
const labelList facesToCheck 
) const

◆ setRefinement()

Foam::labelListList setRefinement ( const labelList cells,
polyTopoChange meshMod 
)

Insert refinement. All selected cells will be split into 8.

Returns per element in cells the 8 cells they were split into. Guarantees that the 0th element is the original cell label. Mapping: -split cells: 7 new ones get added from original -split faces: original gets modified; 3 new ones get added from original -added internal faces: added from original cell face(if that was internal) or created out-of-nothing (so will not get mapped!). -points added to split edge: added from edge start() -midpoints added: added from cellPoints[0].

Definition at line 3105 of file hexRef8.C.

References Foam::abort(), polyTopoChange::addCell(), polyTopoChange::addPoint(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), Foam::meshCheck::checkMesh(), Foam::e, Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, PackedList< nBits >::get(), HashSet< Key, Hash >::insert(), Foam::labelMax, Foam::labelMin, Foam::max(), Foam::min(), OFstream::name(), Foam::nl, regIOobject::objectPath(), Foam::Pout, PackedBoolList::set(), List< T >::setSize(), HashTable< T, Key, Hash >::size(), List< T >::size(), syncTools::swapBoundaryFaceList(), syncTools::syncBoundaryFacePositions(), syncTools::syncEdgeList(), syncTools::syncEdgePositions(), syncTools::syncFaceList(), List< T >::transfer(), PackedBoolList::unset(), regIOobject::write(), and Foam::meshTools::writeOBJ().

Here is the call graph for this function:

◆ topoChange()

void topoChange ( const polyTopoChangeMap map)
virtual

Update local numbering for changed mesh.

Called after the mesh change. setRefinement will already have made sure the pointLevel_ and cellLevel_ are the size of the new mesh so we only need to account for reordering.

Implements TopoChangeableMeshObject< Mesh >.

Definition at line 4100 of file hexRef8.C.

References polyTopoChangeMap::cellMap(), Foam::endl(), forAll, newPointi, polyTopoChangeMap::nOldCells(), polyTopoChangeMap::nOldPoints(), polyTopoChangeMap::pointMap(), Foam::Pout, Foam::reorder(), polyTopoChangeMap::reverseCellMap(), polyTopoChangeMap::reversePointMap(), List< T >::size(), and List< T >::transfer().

Here is the call graph for this function:

◆ subset()

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

Update local numbering for subsetted mesh.

Gets new-to-old maps. Not compatible with unrefinement.

Definition at line 4211 of file hexRef8.C.

References Foam::abort(), Foam::endl(), Foam::faceMap(), Foam::FatalError, FatalErrorInFunction, Foam::findIndex(), forAll, newPointi, Foam::nl, Foam::Pout, List< T >::size(), List< T >::transfer(), and WarningInFunction.

Here is the call graph for this function:

◆ movePoints()

bool movePoints ( )
virtual

Correct weighting factors for moving mesh.

Implements MoveableMeshObject< Mesh >.

Definition at line 4294 of file hexRef8.C.

◆ mapMesh()

void mapMesh ( const polyMeshMap )
virtual

Update from another mesh using the given map.

Implements TopoChangeableMeshObject< Mesh >.

Definition at line 4300 of file hexRef8.C.

References NotImplemented.

◆ distribute()

void distribute ( const polyDistributionMap map)
virtual

Update local numbering for mesh redistribution.

Implements DistributeableMeshObject< Mesh >.

Definition at line 4309 of file hexRef8.C.

References polyDistributionMap::distributeCellData(), polyDistributionMap::distributePointData(), Foam::endl(), and Foam::Pout.

Here is the call graph for this function:

◆ reorderPatches()

void reorderPatches ( const labelUList newToOld,
const bool  validBoundary 
)
virtual

Reordered/removed trailing patches.

If validBoundary call is parallel synced and all add the same patch with same settings

Implements RepatchableMeshObject< Mesh >.

Definition at line 4338 of file hexRef8.C.

◆ addPatch()

void addPatch ( const label  patchi)
virtual

Inserted patch at patchi.

Implements RepatchableMeshObject< Mesh >.

Definition at line 4346 of file hexRef8.C.

◆ reset()

void reset ( )
virtual

Reset.

hexRef8 update must be handled explicitly

Implements PermanentMeshObject< Mesh >.

Definition at line 4350 of file hexRef8.C.

◆ clear()

void clear ( )
virtual

Clear.

Implements PermanentMeshObject< Mesh >.

Definition at line 4356 of file hexRef8.C.

◆ checkMesh()

void checkMesh ( ) const

Debug: Check coupled mesh for correctness.

Definition at line 4360 of file hexRef8.C.

References Foam::abort(), polyPatch::coupled(), Foam::e, Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::mag(), patchIdentifier::name(), patches, patchi, Foam::Pout, UList< T >::size(), List< T >::size(), polyPatch::start(), and syncTools::swapBoundaryFaceList().

Referenced by hexRef8::hexRef8().

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

◆ checkRefinementLevels()

void checkRefinementLevels ( const label  maxPointDiff,
const labelList pointsToCheck 
) const

Debug: Check 2:1 consistency across faces.

maxPointDiff==-1 : only check 2:1 across faces maxPointDiff!=-1 : check point-connected cells.

Gives problems after first splitting off inside mesher.

// Hanging points { Any patches with points having only two edges.

boolList isHangingPoint(mesh_.nPoints(), false);

const polyBoundaryMesh& patches = mesh_.boundary();

forAll(patches, patchi) { const polyPatch& pp = patches[patchi];

const labelList& meshPoints = pp.meshPoints();

forAll(meshPoints, i) { label pointi = meshPoints[i];

const labelList& pEdges = mesh_.pointEdges()[pointi];

if (pEdges.size() == 2) { isHangingPoint[pointi] = true; } } }

syncTools::syncPointList ( mesh_, isHangingPoint, andEqOp<bool>(), // only if all decide it is hanging point true, // null false // no separation );

OFstream str(mesh_.time().path()/"hangingPoints.obj");

label nHanging = 0;

forAll(isHangingPoint, pointi) { if (isHangingPoint[pointi]) { nHanging++;

Pout<< "Hanging boundary point " << pointi << " at " << mesh_.points()[pointi] << endl; meshTools::writeOBJ(str, mesh_.points()[pointi]); } }

if (returnReduce(nHanging, sumOp<label>()) > 0) { FatalErrorInFunction << "Detected a point used by two edges only (hanging point)" << nl << "This is not allowed" << abort(FatalError); } }

Definition at line 4569 of file hexRef8.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::labelMax, Foam::labelMin, Foam::mag(), Foam::max(), Foam::nl, patchi, Foam::Pout, syncTools::swapBoundaryFaceList(), and syncTools::syncPointList().

Referenced by hexRef8::hexRef8().

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

◆ cellShapes()

const Foam::cellShapeList & cellShapes ( ) const

Utility: get hexes as cell shapes.

Definition at line 4822 of file hexRef8.C.

References Foam::endl(), forAll, Foam::nl, and Foam::Pout.

Here is the call graph for this function:

◆ getSplitPoints()

Foam::labelList getSplitPoints ( ) const

Return the points at the centre of top-level split cells.

that can be unsplit.

Definition at line 4882 of file hexRef8.C.

References Foam::abort(), Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Pout, and List< T >::size().

Here is the call graph for this function:

◆ consistentUnrefinement()

Foam::labelList consistentUnrefinement ( const labelList pointsToUnrefine,
const bool  maxSet 
) const

Given proposed.

splitPoints to unrefine according to calculate any clashes (due to 2:1) and return ok list of points to unrefine. Either adds points to refine to set (maxSet = true) or removes points to refine (maxSet = false)

Definition at line 5023 of file hexRef8.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, PackedList< nBits >::get(), Foam::Pout, Foam::reduce(), PackedBoolList::set(), syncTools::swapBoundaryFaceList(), and PackedBoolList::unset().

Here is the call graph for this function:

◆ setUnrefinement()

void setUnrefinement ( const labelList splitPointLabels,
polyTopoChange meshMod 
)

Remove some refinement. Needs to be supplied output of.

consistentUnrefinement. Only call if undoable set. All 8 pointCells of a split point will be combined into the lowest numbered cell of those 8.

Definition at line 5257 of file hexRef8.C.

References Foam::abort(), Foam::meshCheck::checkMesh(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, HashSet< Key, Hash >::insert(), Foam::min(), Foam::nl, regIOobject::objectPath(), pFaces, Foam::Pout, Foam::region(), HashTable< T, Key, Hash >::size(), List< T >::size(), HashTable< T, Key, Hash >::toc(), and regIOobject::write().

Here is the call graph for this function:

◆ setInstance()

void setInstance ( const fileName inst)

Definition at line 1595 of file hexRef8.C.

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

Here is the call graph for this function:

◆ writeObject()

bool writeObject ( IOstream::streamFormat  fmt,
IOstream::versionNumber  ver,
IOstream::compressionType  cmp,
const bool  write = true 
) const
virtual

Write using given format, version and compression.

Reimplemented from DemandDrivenMeshObject< polyMesh, PermanentMeshObject, hexRef8 >.

Definition at line 5446 of file hexRef8.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and Foam::vtkWriteOps::write().

Here is the call graph for this function:

◆ operator=()

void operator= ( const hexRef8 )
delete

Disallow default bitwise assignment.


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