'Cuts' a mesh with a surface. More...
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... | |
Public Types inherited from List< label > | |
typedef SubList< label > | subList |
Declare type of subList. More... | |
Public Types inherited from UList< label > | |
typedef label | value_type |
The value type the list contains. More... | |
typedef label * | pointer |
The pointer type for non-const access to value_type items. More... | |
typedef const label * | const_pointer |
The pointer type for const access to value_type items. More... | |
typedef label & | reference |
The type used for storing into value_type objects. More... | |
typedef const label & | const_reference |
The type used for reading from constant value_type objects. More... | |
typedef label * | iterator |
Random access iterator for traversing a UList. More... | |
typedef const label * | const_iterator |
Random access iterator for traversing a UList. More... | |
typedef label | size_type |
The type to represent the size of a UList. More... | |
typedef label | difference_type |
The difference between iterator objects. More... | |
typedef std::reverse_iterator< iterator > | reverse_iterator |
Reverse iterator (non-const access) More... | |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Reverse iterator (const access) More... | |
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. More... | |
cellClassification (const polyMesh &mesh, const labelList &cellType) | |
Construct from mesh and type for every cell. More... | |
cellClassification (const cellClassification &) | |
Construct as copy. More... | |
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. More... | |
label | fillHangingCells (const label meshType, const label fillType, const label maxIter) |
Find hanging cells (cells with all points on outside) and set their. More... | |
label | fillRegionEdges (const label meshType, const label fillType, const label maxIter) |
Find regionEdges and fill one neighbour. Iterate until nothing. More... | |
label | fillRegionPoints (const label meshType, const label fillType, const label maxIter) |
Find regionPoints and fill all neighbours. Iterate until nothing. More... | |
void | writeStats (Ostream &os) const |
Write statistics on cell types to Ostream. More... | |
void | operator= (const cellClassification &) |
Public Member Functions inherited from List< label > | |
constexpr | List () noexcept |
Default construct. More... | |
List (const label len) | |
Construct with given size. More... | |
List (const label len, const label &val) | |
Construct with given size and value for all elements. More... | |
List (const label len, const Foam::zero) | |
Construct with given size initializing all elements to zero. More... | |
List (const Foam::one, const label &val) | |
Construct with length=1, copying the value as the only content. More... | |
List (const Foam::one, label &&val) | |
Construct with length=1, moving the value as the only content. More... | |
List (const Foam::one, const Foam::zero) | |
Construct with length=1, initializing content to zero. More... | |
List (const List< label > &a) | |
Copy construct from list. More... | |
List (const UList< label > &a) | |
Copy construct contents from list. More... | |
List (List< label > &a, bool reuse) | |
Construct as copy or re-use as specified. More... | |
List (const UList< label > &list, const labelUList &indices) | |
Copy construct subset of list. More... | |
List (const UList< label > &list, const FixedList< label, N > &indices) | |
Copy construct subset of list. More... | |
List (const FixedList< label, N > &list) | |
Construct as copy of FixedList<T, N> More... | |
List (const PtrList< label > &list) | |
Construct as copy of PtrList<T> More... | |
List (const SLList< label > &list) | |
Construct as copy of SLList<T> More... | |
List (const IndirectListBase< label, Addr > &list) | |
Construct as copy of IndirectList contents. More... | |
List (std::initializer_list< label > list) | |
Construct from an initializer list. More... | |
List (List< label > &&list) | |
Move construct from List. More... | |
List (DynamicList< label, SizeMin > &&list) | |
Move construct from DynamicList. More... | |
List (SLList< label > &&list) | |
Move construct from SLList. More... | |
List (Istream &is) | |
Construct from Istream. More... | |
autoPtr< List< label > > | clone () const |
Clone. More... | |
~List () | |
Destructor. More... | |
void | clear () |
Clear the list, i.e. set size to zero. More... | |
void | resize (const label len) |
Adjust allocated size of list. More... | |
void | resize (const label len, const label &val) |
Adjust allocated size of list and set val for new elements. More... | |
void | resize (const label newLen) |
void | resize_nocopy (const label len) |
Adjust allocated size of list without necessarily. More... | |
void | setSize (const label n) |
Alias for resize() More... | |
void | setSize (const label n, const label &val) |
Alias for resize() More... | |
void | transfer (List< label > &list) |
Transfer the contents of the argument List into this list and annul the argument list. More... | |
void | transfer (DynamicList< label, SizeMin > &list) |
Transfer the contents of the argument List into this list and annul the argument list. More... | |
label & | newElmt (const label i) |
Return subscript-checked element of UList and resizing the list if required. More... | |
label & | emplace_back (Args &&... args) |
Construct an element at the end of the list, return reference to the new list element. More... | |
void | push_back (const label &val) |
Append an element at the end of the list. More... | |
void | push_back (label &&val) |
Move append an element at the end of the list. More... | |
void | push_back (const UList< label > &list) |
Append a List to the end of this list. More... | |
void | push_back (const IndirectListBase< label, Addr > &list) |
Append IndirectList contents at the end of this list. More... | |
label | push_uniq (const label &val) |
Append an element if not already in the list. More... | |
void | pop_back (label n=1) |
Reduce size by 1 or more elements. Can be called on an empty list. More... | |
void | operator= (const UList< label > &a) |
Assignment to UList operator. Takes linear time. More... | |
void | operator= (const List< label > &list) |
Assignment operator. Takes linear time. More... | |
void | operator= (const SLList< label > &list) |
Assignment to SLList operator. Takes linear time. More... | |
void | operator= (const IndirectListBase< label, Addr > &list) |
Assignment from IndirectList. Takes linear time. More... | |
void | operator= (const FixedList< label, N > &list) |
Copy assignment from FixedList. More... | |
void | operator= (std::initializer_list< label > list) |
Assignment to an initializer list. More... | |
void | operator= (const label &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
void | operator= (List< label > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (DynamicList< label, SizeMin > &&list) |
Move assignment. Takes constant time. More... | |
void | operator= (SLList< label > &&list) |
Move assignment. Takes constant time. More... | |
Istream & | readList (Istream &is) |
Read List from Istream, discarding contents of existing List. More... | |
Istream & | readList (Istream &is) |
Specialized list reading for character lists which always uses binary format. More... | |
Istream & | readList (Istream &is) |
void | shallowCopy (const UList< label > &)=delete |
No shallowCopy permitted. More... | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
A bitSet::set() method for a list of bool. More... | |
void | append (const label &val) |
Append an element at the end of the list. More... | |
void | append (label &&val) |
Move append an element at the end of the list. More... | |
void | append (const UList< label > &list) |
Append a List to the end of this list. More... | |
void | append (const IndirectListBase< label, Addr > &list) |
Append IndirectList contents at the end of this list. More... | |
label | appendUniq (const label &val) |
Append an element if not already in the list. More... | |
Public Member Functions inherited from UList< label > | |
label | size () const noexcept |
The number of elements in the List. More... | |
void | writeEntry (const word &keyword, Ostream &os) const |
Write the List as a dictionary entry with keyword. More... | |
void | operator= (const label &val) |
Assignment of all entries to the given value. More... | |
void | operator= (const Foam::zero) |
Assignment of all entries to zero. More... | |
UList (const UList< label > &)=default | |
Copy construct. More... | |
constexpr | UList () noexcept |
Default construct, zero-sized and nullptr. More... | |
UList (label *__restrict__ v, const label len) noexcept | |
Construct from components. More... | |
label | fcIndex (const label i) const noexcept |
The forward circular index. The next index in the list which returns to the first at the end of the list. More... | |
label | rcIndex (const label i) const noexcept |
The reverse circular index. The previous index in the list which returns to the last at the beginning of the list. More... | |
const label & | fcValue (const label i) const |
Return forward circular value (ie, next value in the list) More... | |
label & | fcValue (const label i) |
Return forward circular value (ie, next value in the list) More... | |
const label & | rcValue (const label i) const |
Return reverse circular value (ie, previous value in the list) More... | |
label & | rcValue (const label i) |
Return reverse circular value (ie, previous value in the list) More... | |
const label * | cdata () const noexcept |
Return pointer to the underlying array serving as data storage. More... | |
label * | data () noexcept |
Return pointer to the underlying array serving as data storage. More... | |
const char * | cdata_bytes () const noexcept |
Return pointer to the underlying array serving as data storage,. More... | |
char * | data_bytes () noexcept |
Return pointer to the underlying array serving as data storage,. More... | |
label & | front () |
Access first element of the list, position [0]. More... | |
const label & | front () const |
Access first element of the list. More... | |
label & | back () |
Access last element of the list, position [size()-1]. More... | |
const label & | back () const |
Access last element of the list, position [size()-1]. More... | |
std::streamsize | size_bytes () const noexcept |
Number of contiguous bytes for the List data. More... | |
std::streamsize | byteSize () const |
Number of contiguous bytes for the List data, runtime FatalError if type is not contiguous. More... | |
void | checkStart (const label start) const |
Check start is within valid range [0,size) More... | |
void | checkSize (const label size) const |
Check size is within valid range [0,size]. More... | |
void | checkRange (const label start, const label len) const |
Check that start and length define a valid range. More... | |
void | checkIndex (const label i) const |
Check index is within valid range [0,size) More... | |
bool | uniform () const |
True if all entries have identical values, and list is non-empty. More... | |
label | find (const label &val, label pos=0) const |
Find index of the first occurrence of the value. More... | |
label | rfind (const label &val, label pos=-1) const |
Find index of the last occurrence of the value. More... | |
bool | contains (const label &val, label pos=0) const |
Is the value contained in the list? More... | |
void | moveFirst (const label i) |
Move element to the first position. More... | |
void | moveLast (const label i) |
Move element to the last position. More... | |
void | swapFirst (const label i) |
Swap element with the first element. Fatal on an empty list. More... | |
void | swapLast (const label i) |
Swap element with the last element. Fatal on an empty list. More... | |
void | shallowCopy (const UList< label > &list) |
Copy the pointer and size held by the given UList. More... | |
void | deepCopy (const UList< label > &list) |
Copy elements of the given UList. Sizes must match! More... | |
void | deepCopy (const IndirectListBase< label, Addr > &list) |
Copy elements of the given indirect list. Sizes must match! More... | |
SubList< label > | slice (const label pos, label len=-1) |
Return SubList slice (non-const access) - no range checking. More... | |
const SubList< label > | slice (const label pos, label len=-1) const |
Return SubList slice (const access) - no range checking. More... | |
SubList< label > | slice (const labelRange &range) |
Return SubList slice (non-const access) - with range checking. More... | |
const SubList< label > | slice (const labelRange &range) const |
Return SubList slice (const access) - with range checking. More... | |
label & | operator[] (const label i) |
Return element of UList. More... | |
const label & | operator[] (const label i) const |
Return element of constant UList. More... | |
const bool & | operator[] (const label i) const |
UPstream::commsStruct & | operator[] (const label procID) |
const UPstream::commsStruct & | operator[] (const label procID) const |
Foam::UPstream::commsStruct & | operator[] (const label procID) |
const Foam::UPstream::commsStruct & | operator[] (const label procID) const |
operator const Foam::List< label > & () const | |
Allow cast to a const List<T>&. More... | |
iterator | begin () noexcept |
Return an iterator to begin traversing the UList. More... | |
iterator | begin (const label i) noexcept |
Return iterator at offset i from begin, clamped to [0,size] range. More... | |
const_iterator | begin () const noexcept |
Return const_iterator to begin traversing the constant UList. More... | |
const_iterator | begin (const label i) const noexcept |
Return const_iterator at offset i from begin, clamped to [0,size] range. More... | |
iterator | end () noexcept |
Return an iterator to end traversing the UList. More... | |
const_iterator | end () const noexcept |
Return const_iterator to end traversing the constant UList. More... | |
const_iterator | cbegin () const noexcept |
Return const_iterator to begin traversing the constant UList. More... | |
const_iterator | cbegin (const label i) const noexcept |
Return const_iterator at offset i from begin, clamped to [0,size] range. More... | |
const_iterator | cend () const noexcept |
Return const_iterator to end traversing the constant UList. More... | |
reverse_iterator | rbegin () |
Return reverse_iterator to begin reverse traversing the UList. More... | |
const_reverse_iterator | rbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. More... | |
reverse_iterator | rend () |
Return reverse_iterator to end reverse traversing the UList. More... | |
const_reverse_iterator | rend () const |
Return const_reverse_iterator to end reverse traversing the UList. More... | |
const_reverse_iterator | crbegin () const |
Return const_reverse_iterator to begin reverse traversing the UList. More... | |
const_reverse_iterator | crend () const |
Return const_reverse_iterator to end reverse traversing the UList. More... | |
bool | empty () const noexcept |
True if List is empty (ie, size() is zero) More... | |
void | swap (UList< label > &list) |
Swap content with another UList of the same type in constant time. More... | |
bool | operator== (const UList< label > &a) const |
Equality operation on ULists of the same type. More... | |
bool | operator!= (const UList< label > &a) const |
The opposite of the equality operation. Takes linear time. More... | |
bool | operator< (const UList< label > &list) const |
Compare two ULists lexicographically. Takes linear time. More... | |
bool | operator> (const UList< label > &a) const |
Compare two ULists lexicographically. Takes linear time. More... | |
bool | operator<= (const UList< label > &a) const |
Return true if !(a > b). Takes linear time. More... | |
bool | operator>= (const UList< label > &a) const |
Return true if !(a < b). Takes linear time. More... | |
Istream & | readList (Istream &is) |
Read List contents from Istream. More... | |
Istream & | readList (Istream &is) |
Specialized list reading for character lists which always uses binary format. More... | |
Istream & | readList (Istream &is) |
Ostream & | writeList (Ostream &os, const label shortLen=0) const |
Write List, with line-breaks in ASCII when length exceeds shortLen. More... | |
Ostream & | writeList (Ostream &os, const label) const |
Specialized writeList for character lists which always uses binary format. More... | |
Ostream & | writeList (Ostream &os, const label) const |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | test (const label i) const |
Test bool value at specified position, always false for out-of-range access. More... | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | get (const label i) const |
Return bool value at specified position, always false for out-of-range access. More... | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | unset (const label i) |
Unset the bool entry at specified position, always false for out-of-range access. More... | |
label & | first () |
Access first element of the list, position [0]. More... | |
const label & | first () const |
Access first element of the list. More... | |
label & | last () |
Access last element of the list, position [size()-1]. More... | |
const label & | last () const |
Access last element of the list, position [size()-1]. More... | |
bool | found (const label &val, label pos=0) const |
Same as contains() More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from List< label > | |
static const List< label > & | null () |
Return a null List. More... | |
Static Public Member Functions inherited from UList< label > | |
static const UList< label > & | null () |
Return a UList reference to a nullObject. More... | |
static constexpr label | max_size () noexcept |
The size of the largest possible UList. More... | |
Protected Member Functions inherited from UList< label > | |
void | setAddressableSize (const label n) noexcept |
Set addressed size to be inconsistent with allocated storage. More... | |
void | size (const label n) |
Older name for setAddressableSize. More... | |
void | writeEntry (Ostream &os) const |
Write the UList with its compound type. More... | |
void | writeEntry (Ostream &os) const |
Specialized writeEntry for character lists which always uses binary format. More... | |
void | writeEntry (Ostream &os) const |
labelRange | validateRange (const labelRange &requestedRange) const |
Return a validated (start,size) subset range, which means that it always addresses a valid section of the list. More... | |
UList< label > & | operator= (const UList< label > &)=delete |
No copy assignment (default: shallow copy) More... | |
'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 113 of file cellClassification.H.
enum cType |
Type of cell.
Enumerator | |
---|---|
NOTSET | |
INSIDE | |
OUTSIDE | |
CUT |
Definition at line 125 of file cellClassification.H.
enum pointStatus |
Enumeration defining the whether points are use by cells of.
a certain type.
Enumerator | |
---|---|
UNSET | |
MESH | |
NONMESH | |
MIXED |
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 475 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 496 of file cellClassification.C.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
cellClassification | ( | const cellClassification & | cType | ) |
Construct as copy.
Definition at line 514 of file cellClassification.C.
ClassName | ( | "cellClassification" | ) |
|
inline |
Definition at line 245 of file cellClassification.H.
Foam::label trimCutCells | ( | const label | nLayers, |
const label | meshType, | ||
const label | fillType | ||
) |
Definition at line 527 of file cellClassification.C.
References cellClassification::CUT, forAll, and Foam::type().
Foam::label growSurface | ( | const label | meshType, |
const label | fillType | ||
) |
Sets vertex neighbours of meshType cells to fillType.
Definition at line 613 of file cellClassification.C.
References forAll, and Foam::type().
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 670 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 727 of file cellClassification.C.
References Foam::endl(), forAll, Foam::Pout, and UList< 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 796 of file cellClassification.C.
References Foam::endl(), pFaces, and Foam::Pout.
void writeStats | ( | Ostream & | os | ) | const |
Write statistics on cell types to Ostream.
Definition at line 864 of file cellClassification.C.
References Foam::BitOps::count(), Foam::endl(), and os().
void operator= | ( | const cellClassification & | rhs | ) |
Definition at line 876 of file cellClassification.C.
References List< label >::operator=().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.