holeToFace Class Reference

A topoSetFaceSource to select a set of faces that closes a hole i.e. disconnects zones (specified by locations) from one another. More...

Inheritance diagram for holeToFace:
[legend]
Collaboration diagram for holeToFace:
[legend]

Public Member Functions

 TypeName ("holeToFace")
 Runtime type information. More...
 
 holeToFace (const polyMesh &mesh, const List< pointField > &zonePoints, const wordList &blockedFaceNames, const wordList &blockedCellNames, const bool erode)
 Construct from components. More...
 
 holeToFace (const polyMesh &mesh, const dictionary &dict)
 Construct from dictionary. More...
 
 holeToFace (const polyMesh &mesh, Istream &is)
 Construct from Istream. More...
 
virtual ~holeToFace ()=default
 Destructor. More...
 
virtual void applyToSet (const topoSetSource::setAction action, topoSet &) const
 Apply specified action to the topoSet. More...
 
void combine (topoSet &set, const bitSet &isBlockedFace, const bitSet &isActiveCell, const bool add) const
 Optional direct use to generate a faceSet. More...
 
- Public Member Functions inherited from topoSetFaceSource
 declareRunTimeSelectionTable (autoPtr, topoSetFaceSource, word,(const polyMesh &mesh, const dictionary &dict),(mesh, dict))
 
 declareRunTimeSelectionTable (autoPtr, topoSetFaceSource, istream,(const polyMesh &mesh, Istream &is),(mesh, is))
 
 topoSetFaceSource (const polyMesh &mesh)
 Construct from mesh. More...
 
 topoSetFaceSource (const polyMesh &mesh, const dictionary &dict)
 Construct from mesh, use "verbose" entry if present. More...
 
autoPtr< topoSetFaceSourceclone () const
 Clone (disallowed) More...
 
virtual ~topoSetFaceSource ()=default
 Destructor. More...
 
virtual topoSetSource::sourceType setType () const
 The source category is a faceSet. More...
 
- Public Member Functions inherited from topoSetSource
 TypeName ("topoSetSource")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, topoSetSource, word,(const polyMesh &mesh, const dictionary &dict),(mesh, dict))
 
 declareRunTimeSelectionTable (autoPtr, topoSetSource, istream,(const polyMesh &mesh, Istream &is),(mesh, is))
 
 topoSetSource (const polyMesh &mesh, bool verbose=true)
 Construct from mesh, with preferred verbosity. More...
 
 topoSetSource (const polyMesh &mesh, const dictionary &dict)
 Construct from mesh, use "verbose" entry if present. More...
 
autoPtr< topoSetSourceclone () const
 Clone (disallowed) More...
 
virtual ~topoSetSource ()=default
 Destructor. More...
 
const polyMeshmesh () const noexcept
 Reference to the mesh. More...
 
bool verbose () const noexcept
 Get output verbosity. More...
 
bool verbose (bool on) noexcept
 Enable/disable verbose output. More...
 
void verbose (const dictionary &dict)
 Use "verbose" entry (if present) to enable/disable verbose output. More...
 
virtual sourceType setType () const =0
 The source category (cell/face/point combined with set/zone) More...
 
virtual void applyToSet (const topoSetSource::setAction action, topoSet &set) const =0
 Apply specified action to the topoSet. More...
 

Static Public Member Functions

static autoPtr< mapDistributecalcClosure (const polyMesh &mesh, const List< pointField > &zonePoints, const labelList &blockedFaces, const globalIndex &globalBlockedFaces, const bool erode, labelList &closureFaces, labelList &closureToBlocked)
 Optional direct use to generate the set of faces and the method to. More...
 
- Static Public Member Functions inherited from topoSetFaceSource
static autoPtr< topoSetFaceSourceNew (const word &sourceType, const polyMesh &mesh, const dictionary &dict)
 Return a reference to the selected source type. More...
 
static autoPtr< topoSetFaceSourceNew (const word &sourceType, const polyMesh &mesh, Istream &is)
 Return a reference to the selected source type. More...
 
- Static Public Member Functions inherited from topoSetSource
static IstreamcheckIs (Istream &is)
 Check state of stream. More...
 
static bool isSetSource (const sourceType t) noexcept
 True if a "set" source. More...
 
static bool isZoneSource (const sourceType t) noexcept
 True if a "zone" source. More...
 
static bool isCell (const sourceType t) noexcept
 True if "cell" geometric type. More...
 
static bool isFace (const sourceType t) noexcept
 True if "face" geometric type. More...
 
static bool isPoint (const sourceType t) noexcept
 True if "point" geometric type. More...
 
static const stringusage (const word &name)
 
static autoPtr< topoSetSourceNew (const word &topoSetSourceType, const polyMesh &mesh, const dictionary &dict)
 Return a reference to the selected topoSetSource. More...
 
static autoPtr< topoSetSourceNew (const word &topoSetSourceType, const polyMesh &mesh, Istream &is)
 Return a reference to the selected topoSetSource. More...
 
static setAction toAction (const word &actionName)
 Deprecated(2018-07) convert string to action. More...
 

Additional Inherited Members

- Public Types inherited from topoSetSource
enum  sourceType {
  UNKNOWN_SOURCE = 0 , CELL_TYPE = 0x1 , FACE_TYPE = 0x2 , POINT_TYPE = 0x4 ,
  SET_SOURCE = 0x10 , CELLSET_SOURCE = (CELL_TYPE | SET_SOURCE) , FACESET_SOURCE = (FACE_TYPE | SET_SOURCE) , POINTSET_SOURCE = (POINT_TYPE | SET_SOURCE) ,
  ZONE_SOURCE = 0x20 , CELLZONE_SOURCE = (CELL_TYPE | ZONE_SOURCE) , FACEZONE_SOURCE = (FACE_TYPE | ZONE_SOURCE) , POINTZONE_SOURCE = (POINT_TYPE | ZONE_SOURCE) ,
  CELLSETSOURCE = CELLSET_SOURCE , FACESETSOURCE = FACESET_SOURCE , POINTSETSOURCE = POINTSET_SOURCE , CELLZONESOURCE = CELLZONE_SOURCE ,
  FACEZONESOURCE = FACEZONE_SOURCE , POINTZONESOURCE = POINTZONE_SOURCE
}
 Enumeration defining the types of sources. More...
 
enum  setAction {
  ADD , SUBTRACT , NEW , SUBSET ,
  INVERT , CLEAR , REMOVE , LIST ,
  IGNORE , DELETE = SUBTRACT
}
 Enumeration defining various actions. More...
 
- Static Public Attributes inherited from topoSetSource
static const Enum< setActionactionNames
 
static const Enum< setActioncombineNames
 
- Protected Member Functions inherited from topoSetSource
void addOrDelete (topoSet &set, const label id, const bool add) const
 Add or delete id from set. Add when 'add' is true. More...
 
void addOrDelete (topoSet &set, const labelUList &labels, const bool add) const
 Add or delete labels from set. Add when 'add' is true. More...
 
void addOrDelete (topoSet &set, const bitSet &labels, const bool add) const
 Add or delete labels from set. Add when 'add' is true. More...
 
 topoSetSource (const topoSetSource &)=delete
 No copy construct. More...
 
void operator= (const topoSetSource &)=delete
 No copy assignment. More...
 
- Static Protected Member Functions inherited from topoSetSource
static bool check (labelList &list, const label maxLabel)
 Detect and remove any values less than 0 or ge maxLabel. More...
 
- Protected Attributes inherited from topoSetSource
const polyMeshmesh_
 Reference to the mesh. More...
 
bool verbose_
 Output verbosity (default: true) More...
 
- Static Protected Attributes inherited from topoSetSource
static const string illegalSource_
 
static HashTable< string > * usageTablePtr_ = nullptr
 A table of usage strings. More...
 

Detailed Description

A topoSetFaceSource to select a set of faces that closes a hole i.e. disconnects zones (specified by locations) from one another.

Algorithm roughly according to "A 3D-Hole Closing Algorithm", Zouina Aktouf et al


Dictionary parameters

Property Description Required Default
points Per zone the list of points yes
faceSet Optional blocked faces no <empty>
cellSet Optional subset of cells to operate in no <empty>
erode Perform some cleanup on set no no

Limited to max 31 zones.

Source files

Definition at line 92 of file holeToFace.H.

Constructor & Destructor Documentation

◆ holeToFace() [1/3]

holeToFace ( const polyMesh mesh,
const List< pointField > &  zonePoints,
const wordList blockedFaceNames,
const wordList blockedCellNames,
const bool  erode 
)

Construct from components.

Definition at line 1076 of file holeToFace.C.

◆ holeToFace() [2/3]

holeToFace ( const polyMesh mesh,
const dictionary dict 
)

Construct from dictionary.

Definition at line 1093 of file holeToFace.C.

References List< T >::clear(), dict, UList< T >::first(), dictionary::readEntry(), dictionary::readIfPresent(), and List< T >::resize().

Here is the call graph for this function:

◆ holeToFace() [3/3]

holeToFace ( const polyMesh mesh,
Istream is 
)

Construct from Istream.

Definition at line 1125 of file holeToFace.C.

◆ ~holeToFace()

virtual ~holeToFace ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "holeToFace"  )

Runtime type information.

◆ applyToSet()

void applyToSet ( const topoSetSource::setAction  action,
topoSet set 
) const
virtual

Apply specified action to the topoSet.

Implements topoSetSource.

Definition at line 1141 of file holeToFace.C.

References topoSetSource::ADD, Foam::endl(), Foam::flatOutput(), Foam::Info, topoSetSource::NEW, bitSet::set(), topoSetSource::SUBTRACT, and HashTable< T, Key, Hash >::toc().

Here is the call graph for this function:

◆ combine()

void combine ( topoSet set,
const bitSet isBlockedFace,
const bitSet isActiveCell,
const bool  add 
) const

Optional direct use to generate a faceSet.

Definition at line 986 of file holeToFace.C.

References Foam::add(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, List< T >::setSize(), and UList< T >::size().

Referenced by holeToFace::calcClosure().

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

◆ calcClosure()

Foam::autoPtr< Foam::mapDistribute > calcClosure ( const polyMesh mesh,
const List< pointField > &  zonePoints,
const labelList blockedFaces,
const globalIndex globalBlockedFaces,
const bool  erode,
labelList closureFaces,
labelList closureToBlocked 
)
static

Optional direct use to generate the set of faces and the method to.

get data from nearby blocked faces. Gets provided with the

  • set of points per 'zone'
  • set of blocked faces
  • global numbering for these blocked faces Returns
  • the set of faces to disconnect zones from one another (closureFaces)
  • a nullptr or the maps from closureFaces to nearest blocked face (mapDistribute and closureToBlocked). Note: closureToBlocked (index into the map) can contain -1 if no nearby valid blocked face could be found (from an edge-face-edge walk)

Seed edges of closureFaces patch with (global) index of blockedFace

Definition at line 1193 of file holeToFace.C.

References DynamicList< T, SizeMin >::append(), HashTable< T, Key, Hash >::cfind(), List< T >::clear(), holeToFace::combine(), UList< T >::data(), e, PrimitivePatch< FaceList, PointField >::edges(), Foam::exit(), f(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, UList< T >::fcIndex(), forAll, HashTable< T, Key, Hash >::insert(), globalIndex::localSize(), mesh, PrimitivePatch< FaceList, PointField >::meshPoints(), nBndEdges(), primitiveMesh::nCells(), PrimitivePatch< FaceList, PointField >::nEdges(), Time::New(), primitiveMesh::nFaces(), PrimitivePatch< FaceList, PointField >::nInternalEdges(), polyMesh::points(), Foam::returnReduce(), List< T >::setSize(), UList< T >::size(), HashTable< T, Key, Hash >::sortedToc(), syncTools::syncEdgeMap(), syncTools::syncFaceList(), and globalIndex::toGlobal().

Referenced by meshRefinement::blockLeakFaces().

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

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