'Cuts' a mesh with a surface. More...
#include <meshTools/cellClassification.H>
'Cuts' a mesh with a surface.
Divides cells into three types
Used in various meshing programs.
Has various utility functions to deal with 'features' on this level where the mesh still has all inside and outside cells.
Seen from above:
Ok: A | A | --+--- | B | B Not ok: A | B | ---+--- | B | A
because this latter situation would cause the surface after subsetting type A or B to be multiply connected across this edge. And also when snapping the edge end points to the surface it might cause some twisted faces if the surface is normal to the edge (and smoothing the surface would not help since the points on the edge would be 'pulled' from two different sides)
Definition at line 118 of file cellClassification.H.
Public Types | |
enum | cType { NOTSET, INSIDE, OUTSIDE, CUT } |
Type of cell. More... | |
enum | pointStatus { UNSET, MESH, NONMESH, MIXED } |
Enumeration defining the whether points are use by cells of. More... | |
![]() | |
typedef SubList< label > | subList |
Declare type of subList. | |
![]() | |
typedef label | value_type |
Type of values the UList contains. | |
typedef label & | reference |
Type that can be used for storing into. | |
typedef const label & | const_reference |
Type that can be used for storing into. | |
typedef label | difference_type |
The type that can represent the difference between any two. | |
typedef label | size_type |
The type that can represent the size of a UList. | |
typedef label * | iterator |
Random access iterator for traversing UList. | |
typedef const label * | const_iterator |
Random access iterator for traversing UList. | |
typedef label * | reverse_iterator |
Reverse iterator for reverse traversal of UList. | |
typedef const label * | const_reverse_iterator |
Reverse iterator for reverse traversal of constant UList. |
Public Member Functions | |
ClassName ("cellClassification") | |
cellClassification (const polyMesh &mesh, const meshSearch &meshQuery, const triSurfaceSearch &surfQuery, const pointField &outsidePoints) | |
Construct from mesh and surface and point(s) on outside. | |
cellClassification (const polyMesh &mesh, const labelList &cellType) | |
Construct from mesh and type for every cell. | |
cellClassification (const cellClassification &) | |
Construct as copy. | |
const polyMesh & | mesh () const |
label | trimCutCells (const label nLayers, const label meshType, const label fillType) |
label | growSurface (const label meshType, const label fillType) |
Sets vertex neighbours of meshType cells to fillType. | |
label | fillHangingCells (const label meshType, const label fillType, const label maxIter) |
Find hanging cells (cells with all points on outside) and set their. | |
label | fillRegionEdges (const label meshType, const label fillType, const label maxIter) |
Find regionEdges and fill one neighbour. Iterate until nothing. | |
label | fillRegionPoints (const label meshType, const label fillType, const label maxIter) |
Find regionPoints and fill all neighbours. Iterate until nothing. | |
void | writeStats (Ostream &os) const |
Write statistics on cell types to Ostream. | |
void | operator= (const cellClassification &) |
![]() | |
label | size () const |
Return the number of elements in the UList. | |
List () | |
Null constructor. | |
List (const label) | |
Construct with given size. | |
List (const label, const label &) | |
Construct with given size and value for all elements. | |
List (const List< label > &) | |
Copy constructor. | |
List (const Xfer< List< label > > &) | |
Construct by transferring the parameter contents. | |
List (List< label > &, bool reUse) | |
Construct as copy or re-use as specified. | |
List (const UList< label > &, const unallocLabelList &mapAddressing) | |
Construct as subset. | |
List (InputIterator first, InputIterator last) | |
Construct given start and end iterators. | |
List (const FixedList< label, Size > &) | |
Construct as copy of FixedList<T, Size> | |
List (const PtrList< label > &) | |
Construct as copy of PtrList<T> | |
List (const SLList< label > &) | |
Construct as copy of SLList<T> | |
List (const IndirectList< label > &) | |
Construct as copy of IndirectList<T> | |
List (const UIndirectList< label > &) | |
Construct as copy of UIndirectList<T> | |
List (const BiIndirectList< label > &) | |
Construct as copy of BiIndirectList<T> | |
List (Istream &) | |
Construct from Istream. | |
autoPtr< List< label > > | clone () const |
Clone. | |
~List () | |
void | resize (const label) |
Reset size of List. | |
void | resize (const label, const label &) |
Reset size of List and value for new elements. | |
void | setSize (const label) |
Reset size of List. | |
void | setSize (const label, const label &) |
Reset size of List and value for new elements. | |
void | clear () |
Clear the list, i.e. set size to zero. | |
void | append (const UList< label > &) |
Append a List at the end of this list. | |
void | append (const UIndirectList< label > &) |
Append a UIndirectList at the end of this list. | |
void | transfer (List< label > &) |
Transfer the contents of the argument List into this list. | |
void | transfer (DynamicList< label, SizeInc, SizeMult, SizeDiv > &) |
Transfer the contents of the argument List into this list. | |
void | transfer (SortableList< label > &) |
Transfer the contents of the argument List into this list. | |
Xfer< List< label > > | xfer () |
Transfer contents to the Xfer container. | |
label & | newElmt (const label) |
Return subscript-checked element of UList. | |
void | operator= (const UList< label > &) |
Assignment from UList operator. Takes linear time. | |
void | operator= (const List< label > &) |
Assignment operator. Takes linear time. | |
void | operator= (const SLList< label > &) |
Assignment from SLList operator. Takes linear time. | |
void | operator= (const IndirectList< label > &) |
Assignment from IndirectList operator. Takes linear time. | |
void | operator= (const UIndirectList< label > &) |
Assignment from UIndirectList operator. Takes linear time. | |
void | operator= (const BiIndirectList< label > &) |
Assignment from BiIndirectList operator. Takes linear time. | |
void | operator= (const label &) |
Assignment of all entries to the given value. | |
![]() | |
UList () | |
Null constructor. | |
UList (label *__restrict__ v, label size) | |
Construct from components. | |
label | fcIndex (const label i) const |
Return the forward circular index, i.e. the next index. | |
label | rcIndex (const label i) const |
Return the reverse circular index, i.e. the previous index. | |
label | byteSize () const |
Return the binary size in number of characters of the UList. | |
const label * | cdata () const |
Return a const pointer to the first data element,. | |
label * | data () |
Return a pointer to the first data element,. | |
void | checkStart (const label start) const |
Check start is within valid range (0 ... size-1). | |
void | checkSize (const label size) const |
Check size is within valid range (0 ... size). | |
void | checkIndex (const label i) const |
Check index i is within valid range (0 ... size-1). | |
void | writeEntry (Ostream &) const |
Write the UList as a dictionary entry. | |
void | writeEntry (const word &keyword, Ostream &) const |
Write the UList as a dictionary entry with keyword. | |
void | assign (const UList< label > &) |
Assign elements to those from UList. | |
label & | operator[] (const label) |
Return element of UList. | |
const label & | operator[] (const label) const |
Return element of constant UList. | |
operator const Foam::List< label > & () const | |
Allow cast to a const List<T>&. | |
iterator | begin () |
Return an iterator to begin traversing the UList. | |
const_iterator | begin () const |
Return const_iterator to begin traversing the constant UList. | |
iterator | end () |
Return an iterator to end traversing the UList. | |
const_iterator | end () const |
Return const_iterator to end traversing the constant UList. | |
const_iterator | cbegin () const |
Return const_iterator to begin traversing the constant UList. | |
const_iterator | cend () const |
Return const_iterator to end traversing the constant UList. | |
reverse_iterator | rbegin () |
Return reverse_iterator to begin reverse traversing the UList. | |
const_reverse_iterator | rbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. | |
reverse_iterator | rend () |
Return reverse_iterator to end reverse traversing the UList. | |
const_reverse_iterator | rend () const |
Return const_reverse_iterator to end reverse traversing the UList. | |
const_reverse_iterator | crbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. | |
const_reverse_iterator | crend () const |
Return const_reverse_iterator to end reverse traversing the UList. | |
label | max_size () const |
Return size of the largest possible UList. | |
bool | empty () const |
Return true if the UList is empty (ie, size() is zero). | |
void | swap (UList< label > &) |
Swap two ULists of the same type in constant time. | |
bool | operator== (const UList< label > &) const |
Equality operation on ULists of the same type. | |
bool | operator!= (const UList< label > &) const |
The opposite of the equality operation. Takes linear time. | |
bool | operator< (const UList< label > &) const |
Compare two ULists lexicographically. Takes linear time. | |
bool | operator> (const UList< label > &) const |
Compare two ULists lexicographically. Takes linear time. | |
bool | operator<= (const UList< label > &) const |
Return true if !(a > b). Takes linear time. | |
bool | operator>= (const UList< label > &) const |
Return true if !(a < b). Takes linear time. |
Additional Inherited Members | |
![]() | |
static const List< label > & | null () |
Return a null List. | |
![]() | |
void | size (const label) |
Override size to be inconsistent with allocated storage. |
enum cType |
Type of cell.
Definition at line 128 of file cellClassification.H.
enum pointStatus |
Enumeration defining the whether points are use by cells of.
a certain type.
Definition at line 139 of file cellClassification.H.
cellClassification | ( | const polyMesh & | mesh, |
const meshSearch & | meshQuery, | ||
const triSurfaceSearch & | surfQuery, | ||
const pointField & | outsidePoints | ||
) |
Construct from mesh and surface and point(s) on outside.
Definition at line 484 of file cellClassification.C.
cellClassification | ( | const polyMesh & | mesh, |
const labelList & | cellType | ||
) |
Construct from mesh and type for every cell.
Used to be able to reuse filling routines below.
Definition at line 505 of file cellClassification.C.
References Foam::abort(), Foam::FatalError, and FatalErrorIn.
cellClassification | ( | const cellClassification & | cType | ) |
Construct as copy.
Definition at line 526 of file cellClassification.C.
ClassName | ( | "cellClassification" | ) |
|
inline |
Definition at line 221 of file cellClassification.H.
Foam::label trimCutCells | ( | const label | nLayers, |
const label | meshType, | ||
const label | fillType | ||
) |
Definition at line 539 of file cellClassification.C.
References cellClassification::CUT, and forAll.
Referenced by surfaceSets::getSurfaceSets().
Foam::label growSurface | ( | const label | meshType, |
const label | fillType | ||
) |
Sets vertex neighbours of meshType cells to fillType.
Definition at line 625 of file cellClassification.C.
References forAll.
Foam::label fillHangingCells | ( | const label | meshType, |
const label | fillType, | ||
const label | maxIter | ||
) |
Find hanging cells (cells with all points on outside) and set their.
type to fillType. Iterate until nothing changed. Returns total number of cells changed (in all iterations)
Definition at line 682 of file cellClassification.C.
References Foam::endl(), forAll, and Foam::Pout.
Foam::label fillRegionEdges | ( | const label | meshType, |
const label | fillType, | ||
const label | maxIter | ||
) |
Find regionEdges and fill one neighbour. Iterate until nothing.
changes. Returns total number of cells changed.
Definition at line 739 of file cellClassification.C.
References Foam::endl(), forAll, Foam::Pout, and List< T >::size().
Foam::label fillRegionPoints | ( | const label | meshType, |
const label | fillType, | ||
const label | maxIter | ||
) |
Find regionPoints and fill all neighbours. Iterate until nothing.
changes. Returns total number of cells changed.
Definition at line 808 of file cellClassification.C.
References Foam::endl(), forAll, pFaces, and Foam::Pout.
void writeStats | ( | Ostream & | os | ) | const |
Write statistics on cell types to Ostream.
Definition at line 884 of file cellClassification.C.
References Foam::endl().
void operator= | ( | const cellClassification & | rhs | ) |
Definition at line 896 of file cellClassification.C.
References List< T >::operator=().