![]() |
INMOST
Mathematical Modelling Toolkit
|
#include <inmost_mesh.h>
Classes | |
class | iterator |
Public Types | |
typedef INMOST_DATA_BULK_TYPE | ComparatorType |
![]() | |
typedef INMOST_DATA_BULK_TYPE | GeometricType |
typedef INMOST_DATA_BULK_TYPE | Status |
typedef inner_reference_array | adj_type |
typedef adj_type::iterator | adj_iterator |
typedef adj_type::const_iterator | const_adj_iterator |
typedef adj_type::reverse_iterator | adj_reverse_iterator |
typedef adj_type::const_reverse_iterator | const_adj_reverse_iterator |
![]() | |
typedef INMOST_DATA_REAL_TYPE | real |
Storage type for representing real values. More... | |
typedef INMOST_DATA_INTEGER_TYPE | integer |
Storage type for representing integer values. More... | |
typedef INMOST_DATA_BULK_TYPE | bulk |
Storage type for representing one byte of abstact data. More... | |
typedef INMOST_DATA_ENUM_TYPE | enumerator |
type for representing unsigned integer values. More... | |
typedef HandleType | reference |
Storage type for representing references to Element. More... | |
typedef RemoteHandleType | remote_reference |
Storage type for representing references to Element in another Mesh. More... | |
typedef shell< real > | real_array |
Storage type for representing arrays of real values. More... | |
typedef shell< integer > | integer_array |
Storage type for representing arrays of integer values. More... | |
typedef shell< bulk > | bulk_array |
Storage type for representing abstact data as a series of bytes. More... | |
typedef variable | var |
Storage type for representing real value with vector of variations. More... | |
typedef shell< variable > | var_array |
Storage type for representing array of values with vectors of variations. More... | |
Public Member Functions | |
ElementSet () | |
ElementSet (Mesh *m, HandleType h) | |
ElementSet (Mesh *m, HandleType *h) | |
ElementSet (const ElementSet &other) | |
__INLINE ElementSet & | operator= (ElementSet const &other) |
__INLINE ElementSet * | operator-> () |
__INLINE const ElementSet * | operator-> () const |
__INLINE ElementSet & | self () |
__INLINE const ElementSet & | self () const |
std::string | GetName () const |
Get name of the set. More... | |
ElementSet | GetParent () const |
Retrieve parent of the set. More... | |
ElementSet | GetSibling () const |
Retrieve sibling set of the set, this will be next child for the parent. More... | |
ElementSet | GetChild () const |
void | AddSibling (const ElementSet &sibling) const |
This will create new child for the parent. More... | |
void | AddChild (const ElementSet &child) const |
Add child to current set. More... | |
void | RemSibling (const ElementSet &sibling) const |
This will erase sibling or parent's child. More... | |
void | RemChild (const ElementSet &child) const |
This will erase my child. More... | |
enumerator | CountSiblings () const |
How many there are siblings to the right of me including me. More... | |
enumerator | CountChildren () const |
How many children I have. More... | |
bool | HaveSibling () const |
bool | HaveParent () const |
bool | HaveChild () const |
HandleType * | getHandles () const |
enumerator | nbHandles () const |
enumerator | nbSorted () const |
enumerator | nbAdjElements (ElementType etype) const |
Retrieve all elements by type. More... | |
enumerator | nbAdjElements (ElementType etype, MarkerType select, bool invert=false) const |
ElementArray< Element > | getAdjElements (ElementType etype) const |
Retrieve all elements by type. More... | |
ElementArray< Element > | getAdjElements (ElementType etype, MarkerType select, bool invert=false) const |
ElementArray< Node > | getNodes () const |
Retrieve only nodes. More... | |
ElementArray< Node > | getNodes (MarkerType select, bool invert=false) const |
ElementArray< Edge > | getEdges () const |
Retrieve only edges. More... | |
ElementArray< Edge > | getEdges (MarkerType select, bool invert=false) const |
ElementArray< Face > | getFaces () const |
Retrieve only faces. More... | |
ElementArray< Face > | getFaces (MarkerType select, bool invert=false) const |
ElementArray< Cell > | getCells () const |
Retrieve only cells. More... | |
ElementArray< Cell > | getCells (MarkerType select, bool invert=false) const |
void | PutElement (HandleType e) const |
void | PutElement (const Storage &e) const |
void | PutElements (const HandleType *handles, enumerator num) const |
Put multiple handles without checking of the existance of duplicate. More... | |
void | PutElements (const ElementSet &other) const |
Put multiple handles of the other set without checking of the existance of duplicate. More... | |
template<typename EType > | |
void | PutElements (const ElementArray< EType > &elems) const |
Put multiple handles without checking. More... | |
void | AddElement (HandleType e) const |
void | AddElement (const Storage &e) const |
void | AddElements (const HandleType *handles, enumerator num) const |
void | AddElements (const ElementSet &other) |
Add elements of other set. More... | |
template<typename EType > | |
void | AddElements (const ElementArray< EType > &elems) const |
Add multiple elements with checking of the existance of duplicate. More... | |
void | RemoveElement (const Storage &e) const |
void | RemoveElements (const HandleType *handles, enumerator num) const |
template<typename EType > | |
void | RemoveElements (const ElementArray< EType > &elems) const |
Remove multiple elements from the set. More... | |
ElementArray< Element > | Union (const ElementSet &other) const |
ElementArray< Element > | Union (const HandleType *handles, enumerator num) const |
template<typename EType > | |
ElementArray< Element > | Union (const ElementArray< EType > &elems) const |
Compute and return union with elements. More... | |
ElementArray< Element > | Difference (const ElementSet &other) const |
ElementArray< Element > | Difference (const HandleType *handles, enumerator num) const |
template<typename EType > | |
ElementArray< Element > | Difference (const ElementArray< EType > &elems) const |
Compute and return difference with elements. More... | |
ElementArray< Element > | Intersection (const ElementSet &other) const |
ElementArray< Element > | Intersection (const HandleType *handles, enumerator num) const |
template<typename EType > | |
ElementArray< Element > | Intersection (const ElementArray< EType > &elems) const |
Compute and return intersection with elements. More... | |
void | Unite (const ElementSet &other) const |
Compute and store union with raw handles. More... | |
void | Unite (const HandleType *handles, enumerator num) const |
Compute and store union with raw handles. More... | |
template<typename EType > | |
void | Unite (const ElementArray< EType > &elems) const |
Compute and store union with elements. More... | |
void | Subtract (const ElementSet &other) const |
void | Subtract (const HandleType *handles, enumerator num) const |
Compute and store difference with raw handles. More... | |
template<typename EType > | |
void | Subtract (const ElementArray< EType > &elems) const |
Compute and store difference with elements. More... | |
void | Intersect (const ElementSet &other) const |
Compute and store intersection with raw handles. More... | |
void | Intersect (const HandleType *handles, enumerator num) const |
Compute and store intersection with raw handles. More... | |
template<typename EType > | |
void | Intersect (const ElementArray< EType > &elems) const |
Compute and store intersection with elements. More... | |
void | SortSet (ComparatorType comp) const |
Element | FindElementByGlobalID (integer global_id) const |
Element | FindElementByCentroid (real *centroid) const |
bool | FindHandle (HandleType h, bool use_comparator) const |
void | SetMarkerElements (MarkerType m, ElementType etype=ESET|CELL|FACE|EDGE|NODE) const |
Set markers on all the elements of given type. More... | |
void | SetPrivateMarkerElements (MarkerType m, ElementType etype=ESET|CELL|FACE|EDGE|NODE) const |
void | RemMarkerElements (MarkerType m, ElementType etype=ESET|CELL|FACE|EDGE|NODE) const |
Remove markers from all the elements of given type. More... | |
void | RemPrivateMarkerElements (MarkerType m, ElementType etype=ESET|CELL|FACE|EDGE|NODE) const |
iterator | Begin () const |
iterator | End () const |
iterator | EndSorted () const |
iterator | Erase (iterator pos) const |
Erase one element pointed by iterator and return next valid element. More... | |
void | Erase (iterator beg, iterator end) const |
Erase set of elements pointed by iterators. More... | |
ComparatorType | GetComparator () const |
Retrieve current set comparator. More... | |
void | ReorderEmpty () const |
Compact holes in inner representation. More... | |
bool | Empty () const |
Is there any elements in the set. More... | |
enumerator | Size () const |
Get total number of elements. More... | |
void | Clear () const |
Remove all elements, clear all data, removes sorted marker. More... | |
bool | DeleteSet () |
Remove the set and resolve it's ierarchical structure. More... | |
![]() | |
Element () | |
Element (Mesh *m, HandleType h) | |
Element (Mesh *m, HandleType *h) | |
Element (const Element &other) | |
Element & | operator= (Element const &other) |
Element * | operator-> () |
const Element * | operator-> () const |
Element & | self () |
const Element & | self () const |
virtual | ~Element () |
ElementArray< Element > | BridgeAdjacencies (ElementType Bridge, ElementType Dest, MarkerType mask=0, bool invert_mask=false) const |
ElementArray< Node > | BridgeAdjacencies2Node (ElementType Bridge, MarkerType mask=0, bool invert_mask=false) const |
ElementArray< Edge > | BridgeAdjacencies2Edge (ElementType Bridge, MarkerType mask=0, bool invert_mask=false) const |
ElementArray< Face > | BridgeAdjacencies2Face (ElementType Bridge, MarkerType mask=0, bool invert_mask=false) const |
ElementArray< Cell > | BridgeAdjacencies2Cell (ElementType Bridge, MarkerType mask=0, bool invert_mask=false) const |
GeometricType | GetGeometricType () const |
unsigned int | GetElementDimension () const |
Status | GetStatus () const |
void | SetStatus (Status status) const |
Storage::integer & | GlobalID () const |
bool | CheckElementConnectivity () const |
void | PrintElementConnectivity () const |
void | CastRay (real *pos, real *dir, dynarray< std::pair< Element, real >, 16 > &hits) const |
void | ComputeGeometricType () const |
void | Centroid (real *cnt) const |
void | Barycenter (real *cnt) const |
Storage::real | Mean (real(*func)(real *x, real t), real time) const |
bool | Boundary () const |
bool | Planarity () const |
bool | Hide () const |
bool | Show () const |
bool | Delete () |
bool | Hidden () const |
bool | New () const |
void | Disconnect (bool delete_upper_adjacent) const |
void | Disconnect (const HandleType *adjacent, INMOST_DATA_ENUM_TYPE num) const |
void | Connect (const HandleType *adjacent, INMOST_DATA_ENUM_TYPE num) const |
Connects lower adjacencies to current element. Geometric data and cell nodes are updated automatically. More... | |
void | UpdateGeometricData () const |
Update geometric data for element, calls RecomputeGeometricData from Mesh. More... | |
![]() | |
Storage (const Storage &other) | |
Storage (Mesh *mesh, HandleType handle) | |
Storage (Mesh *mesh, HandleType *handle) | |
This constructor allows for remote handle modification. More... | |
Storage & | operator= (Storage const &other) |
__INLINE bool | operator< (const Storage &other) const |
Inline functions for class Storage //. More... | |
__INLINE bool | operator> (const Storage &other) const |
__INLINE bool | operator<= (const Storage &other) const |
__INLINE bool | operator>= (const Storage &other) const |
__INLINE bool | operator== (const Storage &other) const |
__INLINE bool | operator!= (const Storage &other) const |
__INLINE Storage * | operator-> () |
__INLINE const Storage * | operator-> () const |
__INLINE Storage & | self () |
__INLINE const Storage & | self () const |
virtual | ~Storage () |
__INLINE real & | Real (const Tag &tag) const |
__INLINE integer & | Integer (const Tag &tag) const |
__INLINE bulk & | Bulk (const Tag &tag) const |
__INLINE reference & | Reference (const Tag &tag) const |
__INLINE remote_reference & | RemoteReference (const Tag &tag) const |
__INLINE real_array | RealArray (const Tag &tag) const |
__INLINE integer_array | IntegerArray (const Tag &tag) const |
__INLINE bulk_array | BulkArray (const Tag &tag) const |
__INLINE reference_array | ReferenceArray (const Tag &tag) const |
__INLINE remote_reference_array | RemoteReferenceArray (const Tag &tag) const |
__INLINE real_array | RealArrayDF (const Tag &tag) const |
__INLINE integer_array | IntegerArrayDF (const Tag &tag) const |
__INLINE bulk_array | BulkArrayDF (const Tag &tag) const |
__INLINE reference_array | ReferenceArrayDF (const Tag &tag) const |
__INLINE remote_reference_array | RemoteReferenceArrayDF (const Tag &tag) const |
__INLINE real & | RealDF (const Tag &tag) const |
__INLINE integer & | IntegerDF (const Tag &tag) const |
__INLINE bulk & | BulkDF (const Tag &tag) const |
__INLINE reference & | ReferenceDF (const Tag &tag) const |
__INLINE remote_reference & | RemoteReferenceDF (const Tag &tag) const |
__INLINE real_array | RealArrayDV (const Tag &tag) const |
__INLINE integer_array | IntegerArrayDV (const Tag &tag) const |
__INLINE bulk_array | BulkArrayDV (const Tag &tag) const |
__INLINE reference_array | ReferenceArrayDV (const Tag &tag) const |
__INLINE remote_reference_array | RemoteReferenceArrayDV (const Tag &tag) const |
__INLINE real & | RealDV (const Tag &tag) const |
__INLINE integer & | IntegerDV (const Tag &tag) const |
__INLINE bulk & | BulkDV (const Tag &tag) const |
__INLINE reference & | ReferenceDV (const Tag &tag) const |
__INLINE remote_reference & | RemoteReferenceDV (const Tag &tag) const |
__INLINE var & | Variable (const Tag &tag) const |
Retrieve variable reference associated with Tag. More... | |
__INLINE var & | VariableDF (const Tag &tag) const |
__INLINE var & | VariableDV (const Tag &tag) const |
__INLINE var_array | VariableArray (const Tag &tag) const |
Retrieve array of variables associated with Tag. More... | |
__INLINE var_array | VariableArrayDF (const Tag &tag) const |
__INLINE var_array | VariableArrayDV (const Tag &tag) const |
__INLINE INMOST_DATA_ENUM_TYPE | GetDataSize (const Tag &tag) const |
__INLINE INMOST_DATA_ENUM_TYPE | GetDataCapacity (const Tag &tag) const |
__INLINE void | SetDataSize (const Tag &tag, INMOST_DATA_ENUM_TYPE new_size) const |
__INLINE void | GetData (const Tag &tag, INMOST_DATA_ENUM_TYPE shift, INMOST_DATA_ENUM_TYPE size, void *data) const |
__INLINE void | SetData (const Tag &tag, INMOST_DATA_ENUM_TYPE shift, INMOST_DATA_ENUM_TYPE size, const void *data) const |
__INLINE void | DelData (const Tag &tag) const |
__INLINE void | DelSparseData (const Tag &tag) const |
Deallocates space allocated for sparse data, frees variable array if necessary. More... | |
__INLINE void | DelDenseData (const Tag &tag) const |
Frees variable array or fills field with zeroes. More... | |
__INLINE bool | HaveData (const Tag &tag) const |
Check if any data is associated with Tag. More... | |
__INLINE ElementType | GetElementType () const |
__INLINE integer | GetElementNum () const |
__INLINE void | SetMarker (MarkerType n) const |
__INLINE bool | GetMarker (MarkerType n) const |
__INLINE void | RemMarker (MarkerType n) const |
__INLINE void | SetPrivateMarker (MarkerType n) const |
__INLINE bool | GetPrivateMarker (MarkerType n) const |
__INLINE void | RemPrivateMarker (MarkerType n) const |
__INLINE void | ClearMarkerSpace () const |
__INLINE void | GetMarkerSpace (bulk copy[MarkerFields]) const |
__INLINE void | SetMarkerSpace (bulk source[MarkerFields]) const |
__INLINE integer | LocalID () const |
__INLINE integer | DataLocalID () const |
__INLINE bool | isValid () const |
__INLINE Mesh * | GetMeshLink () const |
__INLINE HandleType | GetHandle () const |
__INLINE Element | getAsElement () const |
__INLINE Node | getAsNode () const |
__INLINE Edge | getAsEdge () const |
__INLINE Face | getAsFace () const |
__INLINE Cell | getAsCell () const |
__INLINE ElementSet | getAsSet () const |
Static Public Member Functions | |
static __INLINE HandleType & | hParent (Element::adj_type &arr) |
static __INLINE HandleType & | hSibling (Element::adj_type &arr) |
static __INLINE HandleType & | hChild (Element::adj_type &arr) |
static __INLINE HandleType & | hSorted (Element::adj_type &arr) |
![]() | |
static const char * | GeometricTypeName (GeometricType t) |
static integer | GetGeometricDimension (GeometricType m_type) |
static const char * | StatusName (Status s) |
static bool | CheckConnectivity (Mesh *m) |
Static Public Attributes | |
static const enumerator | high_conn_reserved = 4 |
static const ComparatorType | UNSORTED_COMPARATOR = 0 |
static const ComparatorType | GLOBALID_COMPARATOR = 1 |
static const ComparatorType | CENTROID_COMPARATOR = 2 |
static const ComparatorType | HIERARCHY_COMPARATOR = 3 |
static const ComparatorType | HANDLE_COMPARATOR = 4 |
![]() | |
static const GeometricType | Unset = 0 |
static const GeometricType | Vertex = 1 |
static const GeometricType | Line = 2 |
static const GeometricType | MultiLine = 3 |
static const GeometricType | Tri = 4 |
static const GeometricType | Quad = 5 |
static const GeometricType | Polygon = 6 |
static const GeometricType | MultiPolygon = 7 |
static const GeometricType | Tet = 8 |
static const GeometricType | Hex = 9 |
static const GeometricType | Prism = 10 |
static const GeometricType | Pyramid = 11 |
static const GeometricType | Polyhedron = 12 |
static const GeometricType | Set = 253 |
static const GeometricType | MeshPart = 254 |
static const GeometricType | MaxType = 255 |
static const Status | Owned = 1 |
static const Status | Shared = 2 |
static const Status | Ghost = 4 |
static const Status | Any = 0 |
Additional Inherited Members | |
![]() | |
void | SetGeometricType (GeometricType t) |
![]() | |
HandleType | handle |
HandleType * | handle_link |
Definition at line 906 of file inmost_mesh.h.
Definition at line 920 of file inmost_mesh.h.
|
inline |
Definition at line 926 of file inmost_mesh.h.
|
inline |
Definition at line 927 of file inmost_mesh.h.
|
inline |
Definition at line 928 of file inmost_mesh.h.
|
inline |
Definition at line 929 of file inmost_mesh.h.
void INMOST::ElementSet::AddChild | ( | const ElementSet & | child | ) | const |
Add child to current set.
void INMOST::ElementSet::AddElement | ( | HandleType | e | ) | const |
Put one element with checking of the existance of duplicate. Preserves order for sorted set, thus may be expensive
|
inline |
Put one element with checking of the existance of duplicate. Preserves order for sorted set, thus may be expensive
Definition at line 1012 of file inmost_mesh.h.
void INMOST::ElementSet::AddElements | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Add multiple elements with checking of the existance of duplicate. Preserves order for sorted set, thus may be expensive. This will also remove any duplicates in unsorted part of the set. If you inserted duplicated elements through PutElements into previously sorted array then this operation does not guarantee that those duplications will be stored.
|
inline |
Add elements of other set.
Definition at line 1021 of file inmost_mesh.h.
|
inline |
Add multiple elements with checking of the existance of duplicate.
Definition at line 1024 of file inmost_mesh.h.
void INMOST::ElementSet::AddSibling | ( | const ElementSet & | sibling | ) | const |
This will create new child for the parent.
iterator INMOST::ElementSet::Begin | ( | ) | const |
Provides forward iterator that skips deleted and hidden elements within set. The iterator will be valid during removal or insertion of elements. While that may seem usefull, many functions like AddElements, SortSet, Union will internally reorder handles thus making iterators useless. To correctly resolve situation when size of array shrink due to removal of elements use less then (<) instead of not equal (!=) operator to check for end of the loop. Note that iterators would not let you change underlaying handles, you can use getHandles for that instead.
void INMOST::ElementSet::Clear | ( | ) | const |
Remove all elements, clear all data, removes sorted marker.
enumerator INMOST::ElementSet::CountChildren | ( | ) | const |
How many children I have.
enumerator INMOST::ElementSet::CountSiblings | ( | ) | const |
How many there are siblings to the right of me including me.
bool INMOST::ElementSet::DeleteSet | ( | ) |
Remove the set and resolve it's ierarchical structure.
ElementArray<Element> INMOST::ElementSet::Difference | ( | const ElementSet & | other | ) | const |
ElementArray<Element> INMOST::ElementSet::Difference | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Compute and return difference with raw handles. If initial set was ordered, result will preserve the order. All elements will be unique.
|
inline |
Compute and return difference with elements.
Definition at line 1051 of file inmost_mesh.h.
bool INMOST::ElementSet::Empty | ( | ) | const |
Is there any elements in the set.
iterator INMOST::ElementSet::End | ( | ) | const |
Provides end for forward iterator to stop the loop.
iterator INMOST::ElementSet::EndSorted | ( | ) | const |
Provides iterator that points to element located after the last element that belong to presorted part of the set as well as on the first element of unsorted part
Erase one element pointed by iterator and return next valid element.
Erase set of elements pointed by iterators.
Perform binary search by centroid. In set sorted with CENTROID_COMPARATOR in O(log(n)) time otherwise search needs O(n) comparisons
Perform binary search by global id. In set sorted with GLOBALID_COMPARATOR in O(log(n)) time otherwise search needs O(n) comparisons
bool INMOST::ElementSet::FindHandle | ( | HandleType | h, |
bool | use_comparator | ||
) | const |
Performs linear search in unsorted set.
If you have a lot of elements to test against set, then you'd better first put marker on elements of the set by SetMarkerElements then test which of your elements have marker and then remove markers by RemMarkerElements. This will consume only O(n+m) operations where n is the number of my elements and m is the size of the test set.
h | handle of element |
use_comparator | use information about current comparator or perform linear search |
|
virtual |
Retrieve all elements by type.
Reimplemented from INMOST::Element.
|
virtual |
Retrieve unordered array of adjacent elements with marker.
etype | bitwise mask of element types |
mask | marker to be set |
invert_mask | if true then those are selected on wich marker is not set |
Reimplemented from INMOST::Element.
|
virtual |
Retrieve only cells.
Reimplemented from INMOST::Element.
|
virtual |
Reimplemented from INMOST::Element.
ElementSet INMOST::ElementSet::GetChild | ( | ) | const |
Retrieve child set of the set. Following example shows how to iterate through children of current set: for(ElementSet it = set->GetChild(); it->isValid(); it = it->GetSibling()) ...
ComparatorType INMOST::ElementSet::GetComparator | ( | ) | const |
Retrieve current set comparator.
|
virtual |
Retrieve only edges.
Reimplemented from INMOST::Element.
|
virtual |
Reimplemented from INMOST::Element.
|
virtual |
Retrieve only faces.
Reimplemented from INMOST::Element.
|
virtual |
Reimplemented from INMOST::Element.
HandleType* INMOST::ElementSet::getHandles | ( | ) | const |
Direct raw access to stored elements, no copy involved. The actual pointer may change when you add new elements due to reallocation of memory. Modify at your own risk.
std::string INMOST::ElementSet::GetName | ( | ) | const |
Get name of the set.
|
virtual |
Retrieve only nodes.
Reimplemented from INMOST::Element.
|
virtual |
Reimplemented from INMOST::Element.
ElementSet INMOST::ElementSet::GetParent | ( | ) | const |
Retrieve parent of the set.
ElementSet INMOST::ElementSet::GetSibling | ( | ) | const |
Retrieve sibling set of the set, this will be next child for the parent.
bool INMOST::ElementSet::HaveChild | ( | ) | const |
bool INMOST::ElementSet::HaveParent | ( | ) | const |
bool INMOST::ElementSet::HaveSibling | ( | ) | const |
|
inlinestatic |
Definition at line 918 of file inmost_mesh.h.
|
inlinestatic |
Definition at line 916 of file inmost_mesh.h.
|
inlinestatic |
Definition at line 917 of file inmost_mesh.h.
|
inlinestatic |
Definition at line 919 of file inmost_mesh.h.
void INMOST::ElementSet::Intersect | ( | const ElementSet & | other | ) | const |
Compute and store intersection with raw handles.
void INMOST::ElementSet::Intersect | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Compute and store intersection with raw handles.
|
inline |
Compute and store intersection with elements.
Definition at line 1089 of file inmost_mesh.h.
ElementArray<Element> INMOST::ElementSet::Intersection | ( | const ElementSet & | other | ) | const |
ElementArray<Element> INMOST::ElementSet::Intersection | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Compute and return intersection with raw handles. If initial set was ordered, result will preserve the order. All elements will be unique.
|
inline |
Compute and return intersection with elements.
Definition at line 1060 of file inmost_mesh.h.
|
virtual |
Retrieve all elements by type.
Reimplemented from INMOST::Element.
|
virtual |
Retrieve number of adjacent elements with marker. As etype you can either pass one type as CELL, or several types as bitwise mask: NODE | CELL
etype | bitwise mask of element types |
mask | marker to be set |
invert_mask | if true then those are selected on wich marker is not set |
Reimplemented from INMOST::Element.
enumerator INMOST::ElementSet::nbHandles | ( | ) | const |
Retrieve number of stored handles, including invalid. If you want to get number of valid elements use ElementSet::Size
enumerator INMOST::ElementSet::nbSorted | ( | ) | const |
Retrieve position after last sorted element. This does not correctly represent total number of sorted elements, since some of them may be deleted
|
inline |
Definition at line 931 of file inmost_mesh.h.
|
inline |
Definition at line 932 of file inmost_mesh.h.
|
inline |
void INMOST::ElementSet::PutElement | ( | HandleType | e | ) | const |
Put one element without checking of the existance of duplicate. For sorted set new element will appear at unsorted part.
|
inline |
Put one element without checking of the existance of duplicate. For sorted set new element will appear at unsorted part
Definition at line 999 of file inmost_mesh.h.
void INMOST::ElementSet::PutElements | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Put multiple handles without checking of the existance of duplicate.
|
inline |
Put multiple handles of the other set without checking of the existance of duplicate.
Definition at line 1003 of file inmost_mesh.h.
|
inline |
Put multiple handles without checking.
Definition at line 1006 of file inmost_mesh.h.
void INMOST::ElementSet::RemChild | ( | const ElementSet & | child | ) | const |
This will erase my child.
void INMOST::ElementSet::RemMarkerElements | ( | MarkerType | m, |
ElementType | etype = ESET|CELL|FACE|EDGE|NODE |
||
) | const |
Remove markers from all the elements of given type.
void INMOST::ElementSet::RemoveElement | ( | const Storage & | e | ) | const |
void INMOST::ElementSet::RemoveElements | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
|
inline |
Remove multiple elements from the set.
Definition at line 1030 of file inmost_mesh.h.
void INMOST::ElementSet::RemPrivateMarkerElements | ( | MarkerType | m, |
ElementType | etype = ESET|CELL|FACE|EDGE|NODE |
||
) | const |
void INMOST::ElementSet::RemSibling | ( | const ElementSet & | sibling | ) | const |
This will erase sibling or parent's child.
void INMOST::ElementSet::ReorderEmpty | ( | ) | const |
Compact holes in inner representation.
|
inline |
Definition at line 933 of file inmost_mesh.h.
|
inline |
Definition at line 934 of file inmost_mesh.h.
void INMOST::ElementSet::SetMarkerElements | ( | MarkerType | m, |
ElementType | etype = ESET|CELL|FACE|EDGE|NODE |
||
) | const |
Set markers on all the elements of given type.
void INMOST::ElementSet::SetPrivateMarkerElements | ( | MarkerType | m, |
ElementType | etype = ESET|CELL|FACE|EDGE|NODE |
||
) | const |
enumerator INMOST::ElementSet::Size | ( | ) | const |
Get total number of elements.
void INMOST::ElementSet::SortSet | ( | ComparatorType | comp | ) | const |
Performs sort of the set of elements. If the set was previously sorted but have unsorted part, then unsorted part will be sorted and two parts will be merged. If you need all the set to be resorted (for example in the case global ids were changed) then invoke SortSet with UNSORTED_COMPARATOR first and then with needed comparator.
Internally it uses:
After the set was sorted all the invalid handles should appear at the end of the set and then removed from array, so it will implicitly work as ReorderEmpty function. No checks that elements are hidden performed (Maybe this checks should be done in comparators) In the case you formed the set by running over all mesh elements from NODE to ESET in increasing order then your set will be automatically sorted by handles, in this case you are encouraged to override Mesh::SetComparatorTag with HANDLE_COMPARATOR on the set without invoking SortSet, so that SortSet does not redundantly perform any work. You are encouraged to do so even if you are not going to use this information - some internal algorithms may benefit from it.
comp | one of the comparators from description |
void INMOST::ElementSet::Subtract | ( | const ElementSet & | other | ) | const |
Compute and store difference with raw handles.
void INMOST::ElementSet::Subtract | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Compute and store difference with raw handles.
|
inline |
Compute and store difference with elements.
Definition at line 1080 of file inmost_mesh.h.
ElementArray<Element> INMOST::ElementSet::Union | ( | const ElementSet & | other | ) | const |
Compute and return union with other set. Result is unordered. All elements will be unique.
ElementArray<Element> INMOST::ElementSet::Union | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Compute and return union with raw handles. Result is unordered. All elements will be unique.
|
inline |
Compute and return union with elements.
Definition at line 1042 of file inmost_mesh.h.
void INMOST::ElementSet::Unite | ( | const ElementSet & | other | ) | const |
Compute and store union with raw handles.
void INMOST::ElementSet::Unite | ( | const HandleType * | handles, |
enumerator | num | ||
) | const |
Compute and store union with raw handles.
|
inline |
Compute and store union with elements.
Definition at line 1068 of file inmost_mesh.h.
|
static |
Definition at line 923 of file inmost_mesh.h.
|
static |
Definition at line 922 of file inmost_mesh.h.
|
static |
Definition at line 925 of file inmost_mesh.h.
|
static |
Definition at line 924 of file inmost_mesh.h.
|
static |
Number of reserved positions in HighConn array. The first position is the handle to parent set. The second position is handle to sibling set. The third position is handle to child set. The fourth position is number of sorted elements in the set. All the rest are positions of deleted elements.
Definition at line 915 of file inmost_mesh.h.
|
static |
Definition at line 921 of file inmost_mesh.h.