ug4
|
Manages the elements of a grid and their interconnection. More...
#include <grid.h>
Classes | |
class | AttachmentAccessor |
the generic attachment-accessor for access to grids attachment pipes. More... | |
class | EdgeAttachmentAccessor |
class | FaceAttachmentAccessor |
struct | traits |
The traits class holds some important types for each element-type. More... | |
class | VertexAttachmentAccessor |
class | VolumeAttachmentAccessor |
Public Types | |
typedef EdgeContainer::iterator | AssociatedEdgeIterator |
used to iterate over associated edges of vertices, faces and volumes More... | |
typedef FaceContainer::iterator | AssociatedFaceIterator |
used to iterate over associated faces of vertices, edges and volumes More... | |
typedef VolumeContainer::iterator | AssociatedVolumeIterator |
used to iterate over associated volumes of vertices, edges and faces More... | |
typedef traits< Edge > | edge_traits |
typedef ug::AttachmentPipe< Edge *, EdgeElementStorage > | EdgeAttachmentPipe |
typedef std::vector< Edge * > | EdgeContainer |
Container used to store associated edges. More... | |
typedef traits< Face > | face_traits |
typedef ug::AttachmentPipe< Face *, FaceElementStorage > | FaceAttachmentPipe |
typedef std::vector< Face * > | FaceContainer |
Container used to store associated faces. More... | |
typedef traits< Edge >::secure_container | SecureEdgeContainer |
Container to store associated edges. More... | |
typedef traits< Face >::secure_container | SecureFaceContainer |
Container to store associated faces. More... | |
typedef traits< Vertex >::secure_container | SecureVertexContainer |
Container to store associated vertices. More... | |
typedef traits< Volume >::secure_container | SecureVolumeContainer |
Container to store associated volumes. More... | |
typedef traits< Vertex > | vertex_traits |
Convenience access to grid elements. More... | |
typedef ug::AttachmentPipe< Vertex *, VertexElementStorage > | VertexAttachmentPipe |
the attachment-pipe used by Grid More... | |
typedef std::vector< Vertex * > | VertexContainer |
Container used to store associated vertices. More... | |
typedef traits< Volume > | volume_traits |
typedef ug::AttachmentPipe< Volume *, VolumeElementStorage > | VolumeAttachmentPipe |
typedef std::vector< Volume * > | VolumeContainer |
Container used to store associated volumes. More... | |
Public Member Functions | |
AssociatedEdgeIterator | associated_edges_begin (Face *face) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedEdgeIterator | associated_edges_begin (Vertex *vrt) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedEdgeIterator | associated_edges_begin (Volume *vol) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedEdgeIterator | associated_edges_end (Face *face) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedEdgeIterator | associated_edges_end (Vertex *vrt) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedEdgeIterator | associated_edges_end (Volume *vol) |
DO NOT INVOKE! Subject to change. More... | |
template<class TElem > | |
void | associated_elements_sorted (traits< Edge >::secure_container &elemsOut, TElem *e) |
template<class TElem > | |
void | associated_elements_sorted (traits< Face >::secure_container &elemsOut, TElem *e) |
template<class TElem > | |
void | associated_elements_sorted (traits< Vertex >::secure_container &elemsOut, TElem *e) |
Puts all elements of type TAss which are contained in 'e' into elemsOut in the reference elements order. More... | |
template<class TElem > | |
void | associated_elements_sorted (traits< Volume >::secure_container &elemsOut, TElem *e) |
AssociatedFaceIterator | associated_faces_begin (Edge *edge) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedFaceIterator | associated_faces_begin (Vertex *vrt) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedFaceIterator | associated_faces_begin (Volume *vol) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedFaceIterator | associated_faces_end (Edge *edge) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedFaceIterator | associated_faces_end (Vertex *vrt) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedFaceIterator | associated_faces_end (Volume *vol) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedVolumeIterator | associated_volumes_begin (Edge *edge) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedVolumeIterator | associated_volumes_begin (Face *face) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedVolumeIterator | associated_volumes_begin (Vertex *vrt) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedVolumeIterator | associated_volumes_end (Edge *edge) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedVolumeIterator | associated_volumes_end (Face *face) |
DO NOT INVOKE! Subject to change. More... | |
AssociatedVolumeIterator | associated_volumes_end (Vertex *vrt) |
DO NOT INVOKE! Subject to change. More... | |
template<class TGeomObjClass > | |
void | attach_to (IAttachment &attachment) |
attach with default pass-on behaviour and unspecified default value. More... | |
template<class TGeomObjClass > | |
void | attach_to (IAttachment &attachment, bool passOnValues) |
attach with custom pass-on-behaviour and unspecified default value. More... | |
void | attach_to_all (IAttachment &attachment) |
attaches to vertices, edges, faces and volumes at once. More... | |
void | attach_to_all (IAttachment &attachment, bool passOnValues) |
template<class TAttachment > | |
void | attach_to_all_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue) |
attaches to vertices, edges, faces and volumes at once. More... | |
template<class TAttachment > | |
void | attach_to_all_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue, bool passOnValues) |
template<class TGeomObjClass , class TAttachment > | |
void | attach_to_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue) |
template<class TGeomObjClass , class TAttachment > | |
void | attach_to_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue, bool passOnValues) |
void | attach_to_edges (IAttachment &attachment) |
void | attach_to_edges (IAttachment &attachment, bool passOnValues) |
template<class TAttachment > | |
void | attach_to_edges_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue) |
template<class TAttachment > | |
void | attach_to_edges_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue, bool passOnValues) |
void | attach_to_faces (IAttachment &attachment) |
void | attach_to_faces (IAttachment &attachment, bool passOnValues) |
template<class TAttachment > | |
void | attach_to_faces_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue) |
template<class TAttachment > | |
void | attach_to_faces_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue, bool passOnValues) |
void | attach_to_vertices (IAttachment &attachment) |
void | attach_to_vertices (IAttachment &attachment, bool passOnValues) |
template<class TAttachment > | |
void | attach_to_vertices_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue) |
template<class TAttachment > | |
void | attach_to_vertices_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue, bool passOnValues) |
void | attach_to_volumes (IAttachment &attachment) |
void | attach_to_volumes (IAttachment &attachment, bool passOnValues) |
template<class TAttachment > | |
void | attach_to_volumes_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue) |
template<class TAttachment > | |
void | attach_to_volumes_dv (TAttachment &attachment, const typename TAttachment::ValueType &defaultValue, bool passOnValues) |
template<class TGeomObj > | |
size_t | attachment_container_size () const |
returns the size of the associated attachment containers. More... | |
template<class TGeomObj > | |
TGeomObj * | back () |
returns the last element of the given type. More... | |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::iterator | begin () |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::const_iterator | begin () const |
void | begin_marking () |
begin marking. More... | |
void | clear () |
clears the grids geometry and attachments More... | |
template<class TGeomObj > | |
void | clear () |
void | clear_attachments () |
clears the grids attachments. The geometry remains. More... | |
void | clear_geometry () |
clears the grids geometry. Registered attachments remain. More... | |
void | clear_marks () |
clears all marks More... | |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::iterator | create (const typename geometry_traits< TGeomObj >::Descriptor &descriptor, GridObject *pParent=NULL) |
create a custom element from a descriptor. More... | |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::iterator | create (GridObject *pParent=NULL) |
create a custom element. More... | |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::iterator | create_and_replace (typename geometry_traits< TGeomObj >::grid_base_object *pReplaceMe) |
create a custom element and replaces an old one. More... | |
EdgeIterator | create_by_cloning (Edge *pCloneMe, const IVertexGroup &ev, GridObject *pParent=NULL) |
this method creates a new edge, which has the same type as pCloneMe. More... | |
FaceIterator | create_by_cloning (Face *pCloneMe, const IVertexGroup &fv, GridObject *pParent=NULL) |
this method creates a new face, which has the same type as pCloneMe. More... | |
VertexIterator | create_by_cloning (Vertex *pCloneMe, GridObject *pParent=NULL) |
this method creates a new vertex, which has the same type as pCloneMe. More... | |
VolumeIterator | create_by_cloning (Volume *pCloneMe, const IVertexGroup &vv, GridObject *pParent=NULL) |
this method creates a new volume, which has the same type as pCloneMe. More... | |
template<class TGeomObjClass > | |
void | detach_from (IAttachment &attachment) |
void | detach_from_all (IAttachment &attachment) |
void | detach_from_edges (IAttachment &attachment) |
void | detach_from_faces (IAttachment &attachment) |
void | detach_from_vertices (IAttachment &attachment) |
void | detach_from_volumes (IAttachment &attachment) |
void | disable_options (uint options) |
see set_options for a description of valid parameters. More... | |
size_t | edge_fragmentation () |
returns the number of unused edge-data-entries. More... | |
EdgeIterator | edges_begin () |
EdgeIterator | edges_end () |
void | enable_options (uint options) |
see set_options for a description of valid parameters. More... | |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::iterator | end () |
template<class TGeomObj > | |
geometry_traits< TGeomObj >::const_iterator | end () const |
void | end_marking () |
ends a marking sequence. Call this method when you're done with marking. More... | |
template<class GeomObjIter > | |
void | erase (const GeomObjIter &iterBegin, const GeomObjIter &iterEnd) |
void | erase (Edge *edge) |
void | erase (Face *face) |
void | erase (GridObject *geomObj) |
void | erase (Vertex *vrt) |
void | erase (Volume *vol) |
size_t | face_fragmentation () |
returns the number of unused face-data-entries. More... | |
FaceIterator | faces_begin () |
FaceIterator | faces_end () |
void | flip_orientation (Edge *e) |
flips the orientation of an edge. More... | |
void | flip_orientation (Face *f) |
flips the orientation of a face. More... | |
void | flip_orientation (Volume *vol) |
flips the orientation of a volume. More... | |
template<class TGeomObj > | |
TGeomObj * | front () |
returns the first element of the given type. More... | |
template<class TGeomObj , class TAttachment > | |
TAttachment::ContainerType * | get_attachment_data_container (TAttachment &attachment) |
template<class TGeomObj > | |
uint | get_attachment_data_index (TGeomObj *pObj) const |
template<class TGeomObj > | |
traits< TGeomObj >::AttachmentPipe & | get_attachment_pipe () |
returns the attachment-pipe in which data associated with the given objects-types are stored. More... | |
Edge * | get_edge (const EdgeVertices &ev) |
returns the edge that is described by ev. More... | |
Edge * | get_edge (Face *f, int ind) |
If it exists, this method returns the i-th edge of the given Face. If not NULL is returned. More... | |
Edge * | get_edge (Vertex *v1, Vertex *v2) |
returns the edge between v1 and v2, if it exists. Returns NULL if not. More... | |
Edge * | get_edge (Volume *v, int ind) |
If it exists, this method returns the i-th edge of the given Volume. If not NULL is returned. More... | |
Vertex * | get_element (const VertexDescriptor &vd) |
This overload is only useful to avoid compile issues in templated code. More... | |
Face * | get_face (const FaceVertices &fv) |
returns the face that is described by fv. More... | |
Face * | get_face (Volume *v, int ind) |
If it exists, this method returns the i-th face of the given Volume. If not NULL is returned. More... | |
virtual GridObjectCollection | get_grid_objects () |
returns the the GridObjectCollection of the grid: More... | |
uint | get_options () const |
Edge::side * | get_side (Edge *obj, size_t side) |
Face::side * | get_side (Face *obj, size_t side) |
Vertex::side * | get_side (Vertex *obj, size_t side) |
This method returns the i-th side of an Edge, Face or Volume. More... | |
Volume::side * | get_side (Volume *obj, size_t side) |
Volume * | get_volume (const VolumeVertices &vv) |
returns the volume that is described by ev. More... | |
Grid () | |
initialises the grid and sets the option GRIDOPT_DEFAULT. More... | |
Grid (const Grid &grid) | |
copies all elements and some attachments from the passed grid to this grid. More... | |
Grid (uint options) | |
initialises the grid with the given option. More... | |
template<class TGeomObjClass > | |
bool | has_attachment (IAttachment &attachment) |
bool | has_edge_attachment (IAttachment &attachment) |
bool | has_face_attachment (IAttachment &attachment) |
bool | has_periodic_boundaries () const |
returns true, if grid has the possibility to handle periodic boundaries. More... | |
bool | has_vertex_attachment (IAttachment &attachment) |
bool | has_volume_attachment (IAttachment &attachment) |
bool | is_parallel () const |
returns true if the grid is prepared for parallel computations. More... | |
template<class TIterator > | |
void | mark (TIterator begin, TIterator end) |
marks all objects between begin and end More... | |
SPMessageHub | message_hub () |
gives access to the grid's message-hub More... | |
template<class TGeomObj > | |
size_t | num () const |
size_t | num_edges () const |
size_t | num_faces () const |
size_t | num_vertices () const |
size_t | num_volumes () const |
Grid & | operator= (const Grid &grid) |
copies all elements and some attachments from the passed grid to this grid. More... | |
bool | option_is_enabled (uint option) const |
see set_options for a description of valid parameters. More... | |
void | pass_on_values (Edge *objSrc, Edge *objDest) |
void | pass_on_values (Face *objSrc, Face *objDest) |
void | pass_on_values (Vertex *objSrc, Vertex *objDest) |
void | pass_on_values (Volume *objSrc, Volume *objDest) |
void | register_element (Edge *e, GridObject *pParent=NULL) |
void | register_element (Face *f, GridObject *pParent=NULL) |
void | register_element (Vertex *v, GridObject *pParent=NULL) |
void | register_element (Volume *v, GridObject *pParent=NULL) |
void | register_observer (GridObserver *observer, uint observerType=OT_FULL_OBSERVER) |
bool | replace_vertex (Vertex *vrtOld, Vertex *vrtNew) |
Replace vrtOld with vrtNew. More... | |
bool | replace_vertex_is_valid (Vertex *vrtOld, Vertex *vrtNew) |
checks if replace_vertex would be a valid operation More... | |
template<class TGeomObj > | |
void | reserve (size_t num) |
Reserves memory for the creation of the given object type. More... | |
void | set_options (uint options) |
void | set_parallel (bool parallel) |
tell the grid whether it will be used in a serial or in a parallel environment. More... | |
void | set_periodic_boundaries (bool) |
tell the grid whether it may contain periodic boundaries. More... | |
void | test_attached_linked_lists () |
a temporary testing method More... | |
template<class TIterator > | |
void | unmark (TIterator begin, TIterator end) |
unmarks all objects between begin and end More... | |
void | unregister_element (Edge *e) |
void | unregister_element (Face *f) |
void | unregister_element (Vertex *v) |
void | unregister_element (Volume *v) |
void | unregister_observer (GridObserver *observer) |
size_t | vertex_fragmentation () |
returns the number of unused vertex-data-entries. More... | |
VertexIterator | vertices_begin () |
VertexIterator | vertices_end () |
size_t | volume_fragmentation () |
returns the number of unused volume-data-entries. More... | |
VolumeIterator | volumes_begin () |
VolumeIterator | volumes_end () |
virtual | ~Grid () |
DistributedGridManager * | distributed_grid_manager () |
returns a pointer to the associated distributed grid manager. More... | |
const DistributedGridManager * | distributed_grid_manager () const |
returns a pointer to the associated distributed grid manager. More... | |
PeriodicBoundaryManager * | periodic_boundary_manager () |
returns a pointer to the associated periodic boundary manager. More... | |
const PeriodicBoundaryManager * | periodic_boundary_manager () const |
returns a pointer to the associated periodic boundary manager. More... | |
void | objects_will_be_merged (Vertex *target, Vertex *elem1, Vertex *elem2) |
notifies the grid that two objects will be merged. More... | |
void | objects_will_be_merged (Edge *target, Edge *elem1, Edge *elem2) |
notifies the grid that two objects will be merged. More... | |
void | objects_will_be_merged (Face *target, Face *elem1, Face *elem2) |
notifies the grid that two objects will be merged. More... | |
void | objects_will_be_merged (Volume *target, Volume *elem1, Volume *elem2) |
notifies the grid that two objects will be merged. More... | |
Edge * | get_element (const EdgeVertices &ev) |
returns the element for the given vertices. More... | |
Face * | get_element (const FaceVertices &fv) |
returns the element for the given vertices. More... | |
Volume * | get_element (const VolumeVertices &vv) |
returns the element for the given vertices. More... | |
GridObject * | get_opposing_object (Vertex *vrt, Face *elem) |
returns the geometric object on the opposing side of the given vertex regarding the given element. More... | |
GridObject * | get_opposing_object (Vertex *vrt, Volume *elem) |
returns the geometric object on the opposing side of the given vertex regarding the given element. More... | |
template<class TElem > | |
void | associated_elements (traits< Vertex >::secure_container &elemsOut, TElem *e) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut. More... | |
template<class TElem > | |
void | associated_elements (traits< Edge >::secure_container &elemsOut, TElem *e) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut. More... | |
template<class TElem > | |
void | associated_elements (traits< Face >::secure_container &elemsOut, TElem *e) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut. More... | |
template<class TElem > | |
void | associated_elements (traits< Volume >::secure_container &elemsOut, TElem *e) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut. More... | |
void | register_and_replace_element (Vertex *v, Vertex *pReplaceMe) |
void | register_and_replace_element (Edge *e, Edge *pReplaceMe) |
void | register_and_replace_element (Face *f, Face *pReplaceMe) |
void | register_and_replace_element (Volume *v, Volume *pReplaceMe) |
void | mark (GridObject *obj) |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | mark (Vertex *obj) |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | mark (Edge *obj) |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | mark (Face *obj) |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | mark (Volume *obj) |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | unmark (GridObject *obj) |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | unmark (Vertex *obj) |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | unmark (Edge *obj) |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | unmark (Face *obj) |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
void | unmark (Volume *obj) |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking. More... | |
bool | is_marked (GridObject *obj) const |
returns true if the object is marked, false if not. More... | |
bool | is_marked (Vertex *obj) const |
returns true if the object is marked, false if not. More... | |
bool | is_marked (Edge *obj) const |
returns true if the object is marked, false if not. More... | |
bool | is_marked (Face *obj) const |
returns true if the object is marked, false if not. More... | |
bool | is_marked (Volume *obj) const |
returns true if the object is marked, false if not. More... | |
Protected Types | |
typedef Attachment< EdgeContainer > | AEdgeContainer |
typedef Attachment< FaceContainer > | AFaceContainer |
typedef Attachment< int > | AMark |
typedef Attachment< VertexContainer > | AVertexContainer |
typedef Attachment< VolumeContainer > | AVolumeContainer |
typedef std::vector< GridObserver * > | ObserverContainer |
Protected Member Functions | |
void | assign_grid (const Grid &grid) |
copies the contents from the given grid to this grid. More... | |
void | assign_hash_value (Vertex *vrt) |
assigns a unique hash value to a Vertex. More... | |
void | autoenable_option (uint option, const char *caller, const char *optionName) |
void | change_edge_options (uint optsNew) |
void | change_face_options (uint optsNew) |
void | change_options (uint optsNew) |
void | change_vertex_options (uint optsNew) |
void | change_volume_options (uint optsNew) |
template<class TElem > | |
void | clear_attachments () |
helper to clear_attachments More... | |
template<class TAttachmentPipe > | |
void | copy_user_attachments (const TAttachmentPipe &apSrc, TAttachmentPipe &apDest, std::vector< int > &srcDataIndices) |
helps in copying attachment pipes during assign_grid More... | |
void | edge_store_associated_faces (bool bStoreIt) |
void | edge_store_associated_volumes (bool bStoreIt) |
template<class TElem > | |
traits< TElem >::ElementStorage & | element_storage () |
returns the element storage for a given element type More... | |
template<class TElem > | |
const traits< TElem >::ElementStorage & | element_storage () const |
returns the const element storage for a given element type More... | |
void | face_autogenerate_edges (bool bAutogen) |
void | face_store_associated_edges (bool bStoreIt) |
void | face_store_associated_volumes (bool bStoreIt) |
template<class TGeomObj > | |
Edge * | find_edge_in_associated_edges (TGeomObj *obj, const EdgeVertices &ev) |
template<class TGeomObj > | |
Face * | find_face_in_associated_faces (TGeomObj *obj, const FaceVertices &fv) |
template<class TGeomObj > | |
Volume * | find_volume_in_associated_volumes (TGeomObj *obj, const VolumeVertices &vv) |
void | get_associated (SecureEdgeContainer &edges, Face *f) |
void | get_associated (SecureEdgeContainer &edges, Vertex *v) |
void | get_associated (SecureEdgeContainer &edges, Volume *v) |
void | get_associated (SecureFaceContainer &faces, Edge *e) |
void | get_associated (SecureFaceContainer &faces, Vertex *v) |
void | get_associated (SecureFaceContainer &faces, Volume *v) |
void | get_associated (SecureVertexContainer &vrts, Edge *e) |
void | get_associated (SecureVertexContainer &vrts, Face *f) |
void | get_associated (SecureVertexContainer &vrts, Volume *v) |
void | get_associated (SecureVolumeContainer &vols, Edge *e) |
void | get_associated (SecureVolumeContainer &vols, Face *f) |
void | get_associated (SecureVolumeContainer &vols, Vertex *v) |
template<class TContainer > | |
void | get_associated (TContainer &container, GridObject *o) |
template<class TElem > | |
void | get_associated (typename traits< typename TElem::grid_base_object > ::secure_container &elems, TElem *e) |
void | get_associated_sorted (SecureEdgeContainer &edges, Face *f) |
void | get_associated_sorted (SecureEdgeContainer &edges, Vertex *v) |
void | get_associated_sorted (SecureEdgeContainer &edges, Volume *v) |
void | get_associated_sorted (SecureFaceContainer &faces, Edge *e) |
void | get_associated_sorted (SecureFaceContainer &faces, Vertex *v) |
void | get_associated_sorted (SecureFaceContainer &faces, Volume *v) |
void | get_associated_sorted (SecureVertexContainer &vrts, Edge *e) const |
void | get_associated_sorted (SecureVertexContainer &vrts, Face *f) const |
void | get_associated_sorted (SecureVertexContainer &vrts, Volume *v) const |
void | get_associated_sorted (SecureVolumeContainer &vols, Edge *e) |
void | get_associated_sorted (SecureVolumeContainer &vols, Face *f) |
void | get_associated_sorted (SecureVolumeContainer &vols, Vertex *v) |
template<class TElem > | |
void | get_associated_sorted (typename traits< typename TElem::grid_base_object > ::secure_container &elems, TElem *e) |
void | get_associated_vols_raw (SecureVolumeContainer &vols, Face *f) |
void | init_marks () |
void | notify_and_clear_observers_on_grid_destruction (GridObserver *initiator=NULL) |
unregisters all observers. Call this method in destructors of derived classes. More... | |
template<class TAttachmentPipe , class TElem > | |
void | pass_on_values (TAttachmentPipe &attachmentPipe, TElem *pSrc, TElem *pDest) |
void | register_edge (Edge *e, GridObject *pParent=NULL, Face *createdByFace=NULL, Volume *createdByVol=NULL) |
pDF specifies the element from which v derives its values More... | |
void | register_face (Face *f, GridObject *pParent=NULL, Volume *createdByVol=NULL) |
pDF specifies the element from which v derives its values More... | |
void | register_vertex (Vertex *v, GridObject *pParent=NULL) |
pDF specifies the element from which v derives its values More... | |
void | register_volume (Volume *v, GridObject *pParent=NULL) |
pDF specifies the element from which v derives its values More... | |
void | remove_marks () |
void | reset_marks () |
void | unregister_edge (Edge *e) |
void | unregister_face (Face *f) |
void | unregister_vertex (Vertex *v) |
void | unregister_volume (Volume *v) |
void | vertex_store_associated_edges (bool bStoreIt) |
void | vertex_store_associated_faces (bool bStoreIt) |
void | vertex_store_associated_volumes (bool bStoreIt) |
void | volume_autogenerate_edges (bool bAutogen) |
void | volume_autogenerate_faces (bool bAutogen) |
void | volume_sort_associated_edge_container () |
void | volume_store_associated_edges (bool bStoreIt) |
void | volume_store_associated_faces (bool bStoreIt) |
traits< Vertex >::SectionContainer::iterator | get_iterator (Vertex *o) |
returns the iterator at which the given element lies in the section container More... | |
traits< Edge >::SectionContainer::iterator | get_iterator (Edge *o) |
returns the iterator at which the given element lies in the section container More... | |
traits< Face >::SectionContainer::iterator | get_iterator (Face *o) |
returns the iterator at which the given element lies in the section container More... | |
traits< Volume >::SectionContainer::iterator | get_iterator (Volume *o) |
returns the iterator at which the given element lies in the section container More... | |
Manages the elements of a grid and their interconnection.
The Grid class is the heart of libGrid. It can be used to create elements of custom types, for example Vertices, Triangles or Tetrahedrons. All elements have to be derived from either Vertex, Edge, Face or Volume and have to specialize the template-class geometry_traits (both defined in grid_base_objects.h). The grid can automatically create information about connected geometric objects. You could for example query a face for associated volumes. Associated elements are however only stored, if the according options are set. This reduces storage space if only particular associations are required. Since these options can be changed dynamically at runtime on could in practice always start with a grid holding minimal connection informations. Options are then enabled on the fly, as required by called methods. Note however that some algorithms do run faster if particular options are enabled. On the other hand a grid serves as the connection between geometric objects and their associated data. This connection is realized by so called attachments. You can attach data to vertices, edges, faces, and volumes. Note, that data is attached to all elements of one type at once. No sub-types are considered. This allows for efficient storage and data-access. thanks to this way of storing data, methods and classes can temporarily attach data to the grids elements and thus store and access data of given elements in an efficient way. The data-access is handled by so called attachment-accessors. Grid defines one for each base-type as well as a generic one.
The Grid class itself only knows about the concepts of Vertex, Edge, Face and Volume (classes Vertex, Edge, Face, Volume). In order to implement algorithms one needs more specialized element-types, like Triangles, Quadrilaterals or Tetrahedrons. Those special types are supported by the use of templates. All that a custom type has to satisfy is that it is derived from one of the four basic elements and that it specializes the class geometry_traits. By calling Grids methods with those specialized types as template parameters, you can create, erase and iterate over specialized elements. You could for example iterate over all faces using the calls Grid::begin<Face>() and Grid::end<Face>() (or by calling Grid::faces_begin() and Grid::faces_end()). if you want to iterate only over elements of type Triangle (given this type has been defined), you could call Grid::begin<Triangle>() and Grid::end<Triangle>(). This is applicable to all methods that take an TGeomObj as their template parameter. If a template function takes the parameter TGeomObjClass, then only one of the four base objects should be passed (Vertex, Edge, Face and Volume). This use if templates allows for a arbitrary number of custom elements, without requiring any changes to the Grid-class itself.
The Grid class features a message-hub, which can be used to distribute messages to registered callbacks.
|
protected |
|
protected |
|
protected |
typedef EdgeContainer::iterator ug::Grid::AssociatedEdgeIterator |
used to iterate over associated edges of vertices, faces and volumes
typedef FaceContainer::iterator ug::Grid::AssociatedFaceIterator |
used to iterate over associated faces of vertices, edges and volumes
typedef VolumeContainer::iterator ug::Grid::AssociatedVolumeIterator |
used to iterate over associated volumes of vertices, edges and faces
|
protected |
|
protected |
typedef std::vector<Edge*> ug::Grid::EdgeContainer |
Container used to store associated edges.
typedef std::vector<Face*> ug::Grid::FaceContainer |
Container used to store associated faces.
|
protected |
typedef traits<Edge>::secure_container ug::Grid::SecureEdgeContainer |
Container to store associated edges.
typedef traits<Face>::secure_container ug::Grid::SecureFaceContainer |
Container to store associated faces.
typedef traits<Vertex>::secure_container ug::Grid::SecureVertexContainer |
Container to store associated vertices.
typedef traits<Volume>::secure_container ug::Grid::SecureVolumeContainer |
Container to store associated volumes.
the attachment-pipe used by Grid
typedef std::vector<Vertex*> ug::Grid::VertexContainer |
Container used to store associated vertices.
typedef std::vector<Volume*> ug::Grid::VolumeContainer |
Container used to store associated volumes.
ug::Grid::Grid | ( | ) |
initialises the grid and sets the option GRIDOPT_DEFAULT.
Pass a custom option to the alternative constructor in order to initialise the grid with your options.
References change_options(), ug::GRIDOPT_DEFAULT, ug::GRIDOPT_NONE, m_currentMark, m_hashCounter, m_messageHub, and m_options.
ug::Grid::Grid | ( | uint | options | ) |
initialises the grid with the given option.
pass an or-combination of constants enumerated in VertexOptions, EdgeOptions, FaceOptions, VolumeOptions and GridOptions.
References change_options(), ug::GRIDOPT_NONE, m_currentMark, m_hashCounter, m_messageHub, and m_options.
ug::Grid::Grid | ( | const Grid & | grid | ) |
copies all elements and some attachments from the passed grid to this grid.
While all elements and the options are copied completely from the source-grid, the attachments are only copied if their pass-on behaviour is set to true.
References assign_grid(), ug::GRIDOPT_NONE, m_currentMark, m_hashCounter, m_messageHub, and m_options.
|
virtual |
|
protected |
copies the contents from the given grid to this grid.
Make sure that the grid on which this method is called is empty before the method is called.
References attachment_container_size(), begin(), copy_user_attachments(), create_by_cloning(), ug::EDGE, enable_options(), end(), ug::FACE, get_attachment_data_index(), get_options(), ug::ElementStorage< TElem >::m_attachmentPipe, m_vertexElementStorage, num(), ug::NUM_GEOMETRIC_BASE_OBJECTS, ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::VolumeVertices::num_vertices(), ug::VolumeDescriptor::num_vertices(), ug::FaceDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), ug::VolumeDescriptor::set_vertex(), ug::VERTEX, ug::EdgeVertices::vertex(), ug::FaceVertices::vertices(), ug::VolumeVertices::vertices(), and ug::VOLUME.
Referenced by Grid(), operator=(), and ug::Partitioner_DynamicBisection< TElem, dim >::set_grid().
|
inlineprotected |
assigns a unique hash value to a Vertex.
overflow is not handled properly. If sombody creates 2^32 elements, the uniquness can no longer be guaranteed.
References ug::Vertex::m_hashValue.
Grid::AssociatedEdgeIterator ug::Grid::associated_edges_begin | ( | Face * | face | ) |
DO NOT INVOKE! Subject to change.
References face_store_associated_edges(), ug::FACEOPT_STORE_ASSOCIATED_EDGES, LOG, m_aaEdgeContainerFACE, and option_is_enabled().
Grid::AssociatedEdgeIterator ug::Grid::associated_edges_begin | ( | Vertex * | vrt | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaEdgeContainerVERTEX, option_is_enabled(), vertex_store_associated_edges(), and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
Referenced by ug::AssignFixedVertices(), ug::CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme(), ug::CalculateSmoothManifoldPosInParentLevelLoopScheme(), ug::CollectAssociatedSides(), ug::CollectEdges(), ug::CollectEdgesSorted(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::CreatePolyChain(), ug::DeselectBoundarySelectionVertices(), ug::DistributeExpansionMarks3D(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExportGridToUG_2D(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), find_edge_in_associated_edges(), ug::FixEdgeOrientation(), ug::GetNextSectionOfPolyChain(), ug::GetPolyChainType(), ug::IsBoundaryVertex1D(), ug::IsBoundaryVertex2D(), ug::IsRegularSurfaceVertex(), ug::MarkFixedCreaseVertices(), ug::MergeVertices(), ug::ProjectToLimitLoop(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::SelectInnerSelectionVertices(), ug::SelectSmoothEdgePath(), ug::SortFaces4DiamondCreation(), ug::SplitIrregularPolyChain(), ug::TrySplit(), and ug::TrySwap().
Grid::AssociatedEdgeIterator ug::Grid::associated_edges_begin | ( | Volume * | vol | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaEdgeContainerVOLUME, option_is_enabled(), ug::VOLOPT_STORE_ASSOCIATED_EDGES, and volume_store_associated_edges().
Grid::AssociatedEdgeIterator ug::Grid::associated_edges_end | ( | Face * | face | ) |
DO NOT INVOKE! Subject to change.
References face_store_associated_edges(), ug::FACEOPT_STORE_ASSOCIATED_EDGES, LOG, m_aaEdgeContainerFACE, and option_is_enabled().
Grid::AssociatedEdgeIterator ug::Grid::associated_edges_end | ( | Vertex * | vrt | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaEdgeContainerVERTEX, option_is_enabled(), vertex_store_associated_edges(), and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
Referenced by ug::AssignFixedVertices(), ug::CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme(), ug::CalculateSmoothManifoldPosInParentLevelLoopScheme(), ug::CollectAssociatedSides(), ug::CollectEdges(), ug::CollectEdgesSorted(), ug::CollectNeighbors(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::CreatePolyChain(), ug::DeselectBoundarySelectionVertices(), ug::DistributeExpansionMarks3D(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExportGridToUG_2D(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), find_edge_in_associated_edges(), ug::FixEdgeOrientation(), ug::GetNextSectionOfPolyChain(), ug::GetPolyChainType(), ug::IsBoundaryVertex1D(), ug::IsBoundaryVertex2D(), ug::IsRegularSurfaceVertex(), ug::MarkFixedCreaseVertices(), ug::MergeVertices(), ug::ProjectToLimitLoop(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::SelectInnerSelectionVertices(), ug::SelectSmoothEdgePath(), ug::SortFaces4DiamondCreation(), ug::SplitIrregularPolyChain(), ug::TrySplit(), and ug::TrySwap().
Grid::AssociatedEdgeIterator ug::Grid::associated_edges_end | ( | Volume * | vol | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaEdgeContainerVOLUME, option_is_enabled(), ug::VOLOPT_STORE_ASSOCIATED_EDGES, and volume_store_associated_edges().
void ug::Grid::associated_elements | ( | traits< Edge >::secure_container & | elemsOut, |
TElem * | e | ||
) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut.
One shouldn't depend on the order of elements in elemsOut. Use Grid::associated_elements_sorted if the order matters.
References get_associated().
void ug::Grid::associated_elements | ( | traits< Face >::secure_container & | elemsOut, |
TElem * | e | ||
) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut.
One shouldn't depend on the order of elements in elemsOut. Use Grid::associated_elements_sorted if the order matters.
References get_associated().
void ug::Grid::associated_elements | ( | traits< Vertex >::secure_container & | elemsOut, |
TElem * | e | ||
) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut.
One shouldn't depend on the order of elements in elemsOut. Use Grid::associated_elements_sorted if the order matters.
References get_associated().
Referenced by ug::DoFDistribution::_algebra_indices(), ug::AdaptSurfaceGridToCylinder(), ug::AdjustEdgeOrientationToFaceOrientation(), ug::HangingNodeRefiner_MultiGrid::assign_hnode_marks(), ug::AssignSelectionStateToSides(), ug::CheckElementConsistency(), ug::CheckHangingNodeConstrainingFace(), ug::CheckValences(), ug::CollapseEdge(), ug::HangingNodeRefiner_MultiGrid::collect_objects_for_coarsen(), ug::HangingNodeRefinerBase< MGSelector >::collect_objects_for_refine(), ug::CollectUnconnectedSides(), ug::ComputeLocalSubsetDimensions(), ug::SubdivisionProjector::concerned_nbr_faces(), ug::ConvertToTetrahedra(), ug::CopySubsetFromHigherDimNbr(), ug::CopySubsetIndicesToSides(), ug::AdaptiveRegularRefiner_MultiGrid::create_closure_elements_2d(), ug::AdaptiveRegularRefiner_MultiGrid::create_closure_elements_3d(), ug::ElementDiameterSq(), ug::ExportGridToSWC(), ug::ExtrudeLayers(), ug::FixFaceOrientation(), ug::ParallelDualGraph< TGeomBaseObj, TIndexType, TConnectingObj >::generate_graph(), ug::SideAndElemErrEstData< TDomain >::get_elem_error_indicator(), ug::DegeneratedLayerManager< dim >::get_layer_sides(), ug::GetConnectedNeighbor(), ug::GetConnectingEdge(), ug::GetInnerEdgesOfFaceSoup(), ug::GetOpposingSide(), ug::GetSharedSide(), ug::PeriodicBoundaryManager::handle_creation(), ug::PeriodicBoundaryManager::identify(), ug::AssocElemIter< TElem, TAssocElem, VSorted >::init(), ug::IntersectCloseEdges(), ug::LaplacianSmooth(), ug::MarkAlongSurface(), ug::MarkAnisotropic(), ug::MarkAnisotropic_LongEdges(), ug::MarkAnisotropicOnlyX(), ug::MarkCorners(), ug::MarkForAnisotropicRefinement(), ug::MarkForRefinement_AnisotropicDirection(), ug::MarkForRefinement_SubsetInterfaceElements(), ug::MarkForRefinementByDirection(), ug::MarkOutOfRangeElems(), ug::SubdivisionProjector::nbr_crease_edges(), ug::SubdivisionProjector::new_vertex(), ug::NumAssociatedEdges(), ug::NumAssociatedFaces(), ug::ClusterElementStacks< elem_t, vector_t >::post_process(), ug::SmoothPartitionBounds< elem_t >::post_process(), ug::PrintElementEdgeRatios(), ug::RayElementIntersectionImpl(), ug::HorizontalAnisotropyAdjuster< TAPos >::ref_marks_changed(), ug::LocalMarkAdjuster::ref_marks_changed(), ug::MGHNodeAdjuster::ref_marks_changed(), ug::ShadowCopyAdjuster::ref_marks_changed(), ug::StdHNodeAdjuster::ref_marks_changed(), ug::SubdivisionProjector::refinement_begins(), ug::SmoothProjector::refinement_ends(), ug::RemoveDuplicates(), ug::ReplaceByQuadrilaterals_EdgeBased(), ug::ReplaceByQuadrilaterals_EdgeBasedNoSort(), ug::ReplaceLowValenceVertices(), ug::ReplaceValence3Vertices(), ug::SelectAssociatedSides(), ug::SelectChildrenOfSelectedShadowRimEdges(), ug::SelectChildrenOfSelectedShadowRimFaces(), ug::SelectChildrenOfSelectedShadowVertices(), ug::SelectLinkedElements(), ug::SelectShortPolychains(), ug::SlopeSmooth(), ug::TangentialSmooth(), ug::TangentialSmoothSimple(), ug::ProtectSubsetPartitionWeighting::weigh(), ug::WeightedEdgeSmooth(), ug::WeightedFaceSmooth(), ug::WeightedNormalSmooth(), and ug::GridWriterVTU::write_cells().
void ug::Grid::associated_elements | ( | traits< Volume >::secure_container & | elemsOut, |
TElem * | e | ||
) |
Puts all elements of type TAss which are contained in 'e' or which contain 'e' into elemsOut.
One shouldn't depend on the order of elements in elemsOut. Use Grid::associated_elements_sorted if the order matters.
References get_associated().
void ug::Grid::associated_elements_sorted | ( | traits< Edge >::secure_container & | elemsOut, |
TElem * | e | ||
) |
void ug::Grid::associated_elements_sorted | ( | traits< Face >::secure_container & | elemsOut, |
TElem * | e | ||
) |
References get_associated_sorted().
void ug::Grid::associated_elements_sorted | ( | traits< Vertex >::secure_container & | elemsOut, |
TElem * | e | ||
) |
Puts all elements of type TAss which are contained in 'e' into elemsOut in the reference elements order.
The order of elements in elemsOut is the same as the order in the reference element. Note that, depending on active grid options, this method may take more time than associated_elements, and should thus only be invoked, if the order of elements matters. Use Grid::associated_elements if the order does not matter.
Valid arguments for TElem are Vertex, Edge, Face, Volume. Let TAss be the type of queried elements in elemsOut. Only associated elements of lower dimension can be sorted. The method thus behaves as follows: TAss::dim < TElem::dim -> associated elements are written to 'elemsOut' with the same order as in the reference element TAss::dim == TElem::dim -> onle 'e' itself will be written to 'elemsOut' TAss::dim > TElem::dim -> elemsOut will be empty.
References get_associated_sorted().
Referenced by ug::DoFDistribution::_dof_indices(), ug::DoFDistribution::_indices(), ug::HangingNodeRefinerBase< TSelector >::assign_hnode_marks(), ug::close_sides_of_anisotropic_elem(), ug::NeumannBoundaryFV1< TDomain >::compute_err_est_rhs_elem(), ug::AdaptiveRegularRefiner_MultiGrid::create_closure_elements_2d(), ug::AdaptiveRegularRefiner_MultiGrid::create_closure_elements_3d(), ug::AssocElemIter< TElem, TAssocElem, VSorted >::init(), ug::IntegralNormalComponentOnManifoldGeneral(), ug::long_edges_of_anisotropic_elem(), and ug::LocalMarkAdjuster::ref_marks_changed().
void ug::Grid::associated_elements_sorted | ( | traits< Volume >::secure_container & | elemsOut, |
TElem * | e | ||
) |
References get_associated_sorted().
Grid::AssociatedFaceIterator ug::Grid::associated_faces_begin | ( | Edge * | edge | ) |
DO NOT INVOKE! Subject to change.
References edge_store_associated_faces(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, LOG, m_aaFaceContainerEDGE, and option_is_enabled().
Grid::AssociatedFaceIterator ug::Grid::associated_faces_begin | ( | Vertex * | vrt | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaFaceContainerVERTEX, option_is_enabled(), vertex_store_associated_faces(), and ug::VRTOPT_STORE_ASSOCIATED_FACES.
Referenced by ug::CalculateMinCurvature(), ug::CalculateVertexNormal(), ug::CollectFaces(), ug::CollectFacesSorted(), ug::CollectNeighborhood(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::DeselectBoundarySelectionVertices(), ug::DistributeExpansionMarks3D(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), find_face_in_associated_faces(), ug::GetAssociatedFaces(), ug::IsBoundaryEdge(), ug::IsBoundaryEdge3D(), ug::IsBoundaryVertex3D(), ug::MergeVertices(), ug::NumAssociatedFaces(), ug::ObtainSimpleGrid(), ug::SelectInnerSelectionVertices(), and ug::WriteNG().
Grid::AssociatedFaceIterator ug::Grid::associated_faces_begin | ( | Volume * | vol | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaFaceContainerVOLUME, option_is_enabled(), ug::VOLOPT_STORE_ASSOCIATED_FACES, and volume_store_associated_faces().
Grid::AssociatedFaceIterator ug::Grid::associated_faces_end | ( | Edge * | edge | ) |
DO NOT INVOKE! Subject to change.
References edge_store_associated_faces(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, LOG, m_aaFaceContainerEDGE, and option_is_enabled().
Grid::AssociatedFaceIterator ug::Grid::associated_faces_end | ( | Vertex * | vrt | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaFaceContainerVERTEX, option_is_enabled(), vertex_store_associated_faces(), and ug::VRTOPT_STORE_ASSOCIATED_FACES.
Referenced by ug::CalculateMinCurvature(), ug::CalculateVertexNormal(), ug::CollectFaces(), ug::CollectFacesSorted(), ug::CollectNeighborhood(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::DeselectBoundarySelectionVertices(), ug::DistributeExpansionMarks3D(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), find_face_in_associated_faces(), ug::GetAssociatedFaces(), ug::IsBoundaryEdge(), ug::IsBoundaryEdge3D(), ug::IsBoundaryVertex3D(), ug::MergeVertices(), ug::NumAssociatedFaces(), ug::ObtainSimpleGrid(), ug::SelectInnerSelectionVertices(), and ug::WriteNG().
Grid::AssociatedFaceIterator ug::Grid::associated_faces_end | ( | Volume * | vol | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaFaceContainerVOLUME, option_is_enabled(), ug::VOLOPT_STORE_ASSOCIATED_FACES, and volume_store_associated_faces().
Grid::AssociatedVolumeIterator ug::Grid::associated_volumes_begin | ( | Edge * | edge | ) |
DO NOT INVOKE! Subject to change.
References edge_store_associated_volumes(), ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, LOG, m_aaVolumeContainerEDGE, and option_is_enabled().
Grid::AssociatedVolumeIterator ug::Grid::associated_volumes_begin | ( | Face * | face | ) |
DO NOT INVOKE! Subject to change.
References face_store_associated_volumes(), ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, LOG, m_aaVolumeContainerFACE, and option_is_enabled().
Grid::AssociatedVolumeIterator ug::Grid::associated_volumes_begin | ( | Vertex * | vrt | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaVolumeContainerVERTEX, option_is_enabled(), vertex_store_associated_volumes(), and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVolumes(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::DeselectBoundarySelectionVertices(), ug::DistributeExpansionMarks3D(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), find_volume_in_associated_volumes(), ug::GetNeighbours(), ug::MergeVertices(), ug::NumAssociatedVolumes(), and ug::SelectInnerSelectionVertices().
Grid::AssociatedVolumeIterator ug::Grid::associated_volumes_end | ( | Edge * | edge | ) |
DO NOT INVOKE! Subject to change.
References edge_store_associated_volumes(), ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, LOG, m_aaVolumeContainerEDGE, and option_is_enabled().
Grid::AssociatedVolumeIterator ug::Grid::associated_volumes_end | ( | Face * | face | ) |
DO NOT INVOKE! Subject to change.
References face_store_associated_volumes(), ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, LOG, m_aaVolumeContainerFACE, and option_is_enabled().
Grid::AssociatedVolumeIterator ug::Grid::associated_volumes_end | ( | Vertex * | vrt | ) |
DO NOT INVOKE! Subject to change.
References LOG, m_aaVolumeContainerVERTEX, option_is_enabled(), vertex_store_associated_volumes(), and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVolumes(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::DeselectBoundarySelectionVertices(), ug::DistributeExpansionMarks3D(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), find_volume_in_associated_volumes(), ug::GetNeighbours(), ug::MergeVertices(), ug::NumAssociatedVolumes(), and ug::SelectInnerSelectionVertices().
|
inline |
attach with default pass-on behaviour and unspecified default value.
References ug::IAttachment::default_pass_on_behaviour().
void ug::Grid::attach_to | ( | IAttachment & | attachment, |
bool | passOnValues | ||
) |
attach with custom pass-on-behaviour and unspecified default value.
References STATIC_ASSERT.
Referenced by ug::AdjustEdgeLength(), ug::Grid::AttachmentAccessor< TElem, TAttachment >::AttachmentAccessor(), ug::CalculateVertexNormals(), ug::GlobalAttachments::cast_and_attach(), ug::CheckDistributedObjectConstraintTypes(), ug::ConstructDualGraphMG(), ug::ConstructDualGraphMGLevel(), ug::ConstructParallelDualGraphMGLevel(), ug::ConvertMathVectorAttachmentValues(), ug::CopyAttachments(), ug::CreateAndDistributeGlobalIDs(), ug::DeserializeAttachment(), ug::GetSelectedElementIndices(), ug::ClusterElementStacks< elem_t, vector_t >::init_post_processing(), ug::SmoothPartitionBounds< elem_t >::init_post_processing(), ug::MarkForRefinement_SubsetInterfaceElements(), ug::OverlyingSubsetFinder< TDomain >::OverlyingSubsetFinder(), ug::Partitioner_DynamicBisection< TElem, dim >::partition(), ug::PartitionMultiGridLevel_MetisKway(), and ug::GlobalAttachments::read_attachment_from_stream().
|
inline |
attaches to vertices, edges, faces and volumes at once.
|
inline |
|
inline |
attaches to vertices, edges, faces and volumes at once.
Referenced by ug::SurfaceView::SurfaceView().
|
inline |
void ug::Grid::attach_to_dv | ( | TAttachment & | attachment, |
const typename TAttachment::ValueType & | defaultValue | ||
) |
Referenced by ug::ConstructDualGraph().
void ug::Grid::attach_to_dv | ( | TAttachment & | attachment, |
const typename TAttachment::ValueType & | defaultValue, | ||
bool | passOnValues | ||
) |
References STATIC_ASSERT.
|
inline |
|
inline |
Referenced by ug::AdaptSurfaceGridToCylinder(), ug::GridSubsetHandler::assign_grid(), ug::MultiGridSubsetHandler::assign_grid(), ug::ISelector::enable_element_support(), ug::MGSelector::enable_element_support(), ug::ISubsetHandler::enable_element_support(), ug::ExportGridToUG(), ug::ExportGridToUG_2D(), ug::GenerateIcosphere(), ug::MultiGrid::init(), ug::GridWriterUGX::init_grid_attachments(), ug::Refine(), ug::SaveGridToART(), and ug::DistributedGridManager::set_grid().
|
inline |
Referenced by ug::ApplySmoothManifoldPosToTopLevelButterflyScheme(), ug::ApplySmoothManifoldPosToTopLevelLoopScheme(), ug::ArteExpandFracs3D::attachMarkers(), ug::CheckValences(), ug::DelaunayInfo< TAAPos >::DelaunayInfo(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), init_marks(), ug::MinimizeEdgeLength_SwapsOnly(), ug::PeriodicBoundaryManager::set_grid(), and ug::HangingNodeRefiner_Grid::set_grid().
|
inline |
|
inline |
|
inline |
Referenced by ug::GridSubsetHandler::assign_grid(), ug::MultiGridSubsetHandler::assign_grid(), ug::CalculateFaceNormals(), ug::ISelector::enable_element_support(), ug::MGSelector::enable_element_support(), ug::ISubsetHandler::enable_element_support(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExportGridToUG(), ug::MultiGrid::init(), ug::GridWriterUGX::init_grid_attachments(), ug::Refine(), ug::ResolveTriangleIntersections(), ug::SaveGridToART(), ug::SaveGridToELE(), and ug::DistributedGridManager::set_grid().
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by ug::RasterLayersProjector::add_attachments(), ug::GridSubsetHandler::assign_grid(), ug::MultiGridSubsetHandler::assign_grid(), ug::CopyGrid(), ug::CopyGridLevel(), ug::CopySelected(), ug::CopySelection(), ug::FileReaderSWC::create_grid(), ug::GridPointsOrdering< TDomain, TAlgebra >::create_vtkoutput_ordering(), ug::CreateOctree(), ug::Duplicate(), ug::ISelector::enable_element_support(), ug::MGSelector::enable_element_support(), ug::ISubsetHandler::enable_element_support(), ug::ExpandFractures2d(), ug::ExpandFractures3d(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExportGridToUG(), ug::ExportGridToUG_2D(), ug::Extrude(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::GenerateIcosahedron(), ug::GenerateIcosphere(), ug::GridReaderUGX::grid(), ug::GridReaderVTU::grid(), ug::ImportGridFromLGM(), ug::ImportGridFromNG(), ug::ImportGridFromTETGEN(), ug::MultiGrid::init(), ug::GridWriterUGX::init_grid_attachments(), ug::LoadGrid3d(), ug::LoadGridFrom2DF(), ug::LoadGridFromART(), ug::LoadGridFromASC(), ug::LoadGridFromDUMP(), ug::LoadGridFromGRDECL(), ug::LoadGridFromLGB(), ug::LoadGridFromMSH(), ug::LoadGridFromOBJ(), ug::LoadGridFromSMESH(), ug::LoadGridFromSTL(), ug::LoadGridFromTXT(), ug::LoadGridFromUGX(), ug::LoadGridFromVTU(), ug::MergeGrids(), ug::GridWriterVTU::new_piece(), ug::NTreeGridData< world_dim >::NTreeGridData(), ug::PPP_ReplaceCoordinate< dim >::partitioning_starts(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::VTKOutput< TDim >::print(), ug::VTKOutput< TDim >::print_subset(), ug::VTKOutput< TDim >::print_subsets(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::RemoveDoubles(), ug::ResolveTriangleIntersections(), ug::SaveGrid3d(), ug::SaveGridLevel(), ug::SaveGridTo2DF(), ug::SaveGridToART(), ug::SaveGridToNCDF(), ug::SaveGridToOBJ(), ug::SaveGridToTXT(), ug::SerializeGridElements(), ug::DistributedGridManager::set_grid(), and ug::SimplifySmoothedPolylines().
|
inline |
Referenced by ug::ApplySmoothManifoldPosToTopLevelAveragingScheme(), ug::ApplySmoothManifoldPosToTopLevelButterflyScheme(), ug::ApplySmoothManifoldPosToTopLevelLoopScheme(), ug::ApplySmoothVolumePosToTopLevel(), ug::ArteExpandFracs3D::attachMarkers(), ug::CheckValences(), ug::CreateEdgeSplitGeometry(), ug::DelaunayInfo< TAAPos >::DelaunayInfo(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::ExportGridToSWC(), ug::ExtrudeLayers(), init_marks(), ug::ResolveTriangleIntersections(), ug::PeriodicBoundaryManager::set_grid(), and ug::TangentialSmooth().
|
inline |
|
inline |
|
inline |
Referenced by ug::GridSubsetHandler::assign_grid(), ug::MultiGridSubsetHandler::assign_grid(), ug::AttachAct(), ug::ArteExpandFracs3D::attachMarkers(), ug::AttachProperty(), ug::ISelector::enable_element_support(), ug::MGSelector::enable_element_support(), ug::ISubsetHandler::enable_element_support(), ug::ExpandFractures3d(), ug::MultiGrid::init(), ug::GridWriterUGX::init_grid_attachments(), ug::SaveGridToELE(), and ug::DistributedGridManager::set_grid().
|
inline |
Referenced by ug::HangingNodeRefiner_Grid::attach_local_marks(), ug::MultiGrid::init(), and init_marks().
|
inline |
size_t ug::Grid::attachment_container_size |
returns the size of the associated attachment containers.
valid types for TGeomObj are Vertex, Edge, Face, Volume.
Referenced by assign_grid().
|
inlineprotected |
References enable_options(), LOG, and option_is_enabled().
TGeomObj * ug::Grid::back |
returns the last element of the given type.
Make sure that elements of the given type exist! Behaviour is undefined, if not.
References STATIC_ASSERT.
geometry_traits< TGeomObj >::iterator ug::Grid::begin |
References STATIC_ASSERT.
Referenced by ug::GridWriterUGX::add_attachment(), ug::GridWriterUGX::add_elements_to_node(), ug::GridWriterUGX::add_grid(), ug::AdjustEdgeLength(), ug::AdjustSubsetsForSimulation(), assign_grid(), ug::ISubsetHandler::assign_subset_handler(), ug::AssignGridToSubset(), ug::AssignInnerAndBoundarySubsets(), ug::AssignSidesToSubsets(), ug::AssignSubset_VerticesInCube(), ug::AssignSubset_VerticesInSphere(), ug::AssignTetrahedronAttributesByAspectRatio(), ug::AssignUnassignedElemsToSubset(), ug::CalculateAverageEdgeLength(), ug::CalculateVertexNormals(), ug::CheckForUnconnectedSidesIMPL(), ug::CheckHangingNodeConsistency(), ug::BoolMarker::clear(), ug::GridWriterVTU::collect_cells(), ug::ColorControlVolume(), ug::ColorSubControlVolume(), ug::ColorSubControlVolumeFaces(), ug::ComputeLocalSubsetDimensions(), ug::CopyAttachments(), ug::CopySelectionStatus(), ug::CreateAndDistributeGlobalIDs(), ug::CreateGridOfControlVolumes(), ug::OverlyingSubsetFinder< TDomain >::debug(), ug::DeserializeAttachment(), ug::ISelector::enable_element_support(), ug::ExportGridToSWC(), ug::ExportGridToTETGEN(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::GenerateIcosphere(), ug::GetGridObjectIndex(), ug::GetSelectedElementIndices(), ug::GridReaderUGX::grid(), ug::GridWriterUGX::init_grid_attachments(), ug::InvertSelection(), ug::LoadGridFromOBJ(), ug::LoadMarkerPointsFromFile(), mark(), ug::MarkAllElemsForAssemblyButHSlaves(), ug::MarkForAdaption_VerticesInCube(), ug::MarkForAdaption_VerticesInSphereMaxLvl(), ug::MarkForRefinement_AllAnisotropic(), ug::MarkForRefinement_AnisotropicElements(), ug::MarkForRefinement_ElementsInSphere(), ug::MarkForRefinement_SubsetInterfaceElements(), ug::MergeGrids(), ug::GridWriterVTU::new_piece(), ug::OverlyingSubsetFinder< TDomain >::OverlyingSubsetFinder(), ug::PartitionGrid_MetisKway(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ProjectToLayer(), ug::QualityGridGeneration(), ug::GlobalAttachments::read_attachment_from_stream(), ug::ReplaceByQuadrilaterals_FaceBased(), ug::ReplaceByQuadrilaterals_FaceBasedNoSort(), ug::ReplaceLowValenceVertices(), ug::ResetSubsetIndices(), ug::ResolveTriangleIntersections(), ug::DelaunayDebugSaver::save(), ug::SaveGridTo2DF(), ug::SaveGridToART(), ug::SaveGridToELE(), ug::SaveGridToSTL(), ug::SaveGridToTXT(), ug::SelectDomainElements(), ug::SelectElementsByIndex(), ug::SelectRegion(), ug::SelectShortPolychains(), ug::SeparateRegions(), ug::SeparateSubsetsByLowerDimSeparators(), ug::SerializeAttachment(), ug::SimplifySmoothedPolylines(), ug::SnapMarkerPointToGridVertex(), ug::Triangulate(), unmark(), ug::PeriodicBoundaryManager::validity_check(), ug::GlobalAttachments::write_attachment_to_stream(), ug::GridWriterVTU::write_vector_data(), ug::WriteDebugValuesToFile(), and ug::ZRayTracer< TDomain >::ZRayTracer().
geometry_traits< TGeomObj >::const_iterator ug::Grid::begin |
void ug::Grid::begin_marking | ( | ) |
begin marking.
Call this method whenever you want to start a marking sequence. On a call to this method all old marks are deleted. When called for the first time, some preparations have to be taken, which may consume some time. Successive calls however are very fast.
References init_marks(), m_bMarking, m_currentMark, and reset_marks().
Referenced by ug::AssignFixedVertices(), ug::CalculateCenter(), ug::CalculateCreaseNormal(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), clear_marks(), ug::CollectAssociatedSides(), ug::CollectNeighborhood(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVerticesTouchingSelection(), ug::ConvertToTetrahedra(), ug::VTKOutput< TDim >::count_piece_sizes(), ug::GridPointsOrdering< TDomain, TAlgebra >::create_vtkoutput_ordering(), ug::CreateHexahedronFromPrisms(), ug::CreatePolyChain(), ug::CreatePyramid(), ug::CreateTetrahedron(), ug::DistributedGridManager::end_element_deletion(), ug::ExportGridToSWC(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), ug::ExtrudeLayers(), ug::FixEdgeOrientation(), ug::FixFaceOrientation(), ug::GetFirstRegularVertex(), ug::GetNeighborhood(), ug::GetNeighbours(), ug::PeriodicBoundaryManager::handle_creation(), ug::IntersectCloseEdges(), ug::MarkFixedCreaseVertices(), ug::NumAssociatedFaces(), ug::NumSharedVertices(), ug::ObtainSimpleGrid(), ug::ObtainSimpleGrid_CollapseEdge(), ug::PartitionElements_RegularGrid(), ug::QualityGridGeneration(), ug::SmoothProjector::refinement_ends(), ug::RemoveDuplicates(), ug::HangingNodeRefiner_MultiGrid::restrict_selection_to_coarsen_families(), ug::SelectAreaBoundary(), ug::SelectInnerSelectionEdges(), ug::SelectInnerSelectionFaces(), ug::SelectInnerSelectionVertices(), ug::SelectShortPolychains(), ug::SerializeMultiGridElements(), ug::SimplifyPolylines(), ug::SplitIrregularManifoldSubset(), ug::SplitIrregularPolyChain(), ug::SwapEdge(), ug::TangentialSmooth(), ug::TangentialSmoothSimple(), ug::TranslateSelection(), ug::TriangleFill_SweepLine(), ug::VisitAreaBoundary(), ug::VTKOutput< TDim >::write_nodal_data(), ug::VTKOutput< TDim >::write_nodal_values(), ug::VTKOutput< TDim >::write_points(), and ug::WriteLGM().
|
protected |
References ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, and OPTIONS_CONTAIN_OPTION.
Referenced by change_options().
|
protected |
References ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, and OPTIONS_CONTAIN_OPTION.
Referenced by change_options().
|
protected |
References change_edge_options(), change_face_options(), change_vertex_options(), change_volume_options(), and m_options.
Referenced by disable_options(), enable_options(), Grid(), and set_options().
|
protected |
References OPTIONS_CONTAIN_OPTION, ug::VRTOPT_STORE_ASSOCIATED_EDGES, ug::VRTOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by change_options().
|
protected |
void ug::Grid::clear | ( | ) |
clears the grids geometry and attachments
References clear_attachments(), and clear_geometry().
Referenced by ug::CreateSCV(), ug::CreateSCVF(), and ug::GetSelectedElementIndices().
void ug::Grid::clear |
References erase().
void ug::Grid::clear_attachments | ( | ) |
clears the grids attachments. The geometry remains.
Referenced by clear().
|
protected |
void ug::Grid::clear_geometry | ( | ) |
clears the grids geometry. Registered attachments remain.
References get_options(), ug::GRIDOPT_NONE, and set_options().
Referenced by ug::AllGatherGrid(), ug::BroadcastGrid(), clear(), ug::DistributeGrid(), ug::GatherGrid(), ug::LoadGridFromLGB(), operator=(), ug::ResolveTriangleIntersections(), and ~Grid().
void ug::Grid::clear_marks | ( | ) |
clears all marks
Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
References begin_marking(), end_marking(), and m_bMarking.
Referenced by ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), and ug::ExtrudeLayers().
|
protected |
helps in copying attachment pipes during assign_grid
Note that this method only copies attachments with m_userData==1.
References ug::IAttachmentDataContainer::copy_to_container(), ug::AttachmentEntry::m_pAttachment, ug::AttachmentEntry::m_pContainer, ug::AttachmentEntry::m_userData, and ug::IAttachmentDataContainer::size().
Referenced by assign_grid().
geometry_traits< TGeomObj >::iterator ug::Grid::create | ( | const typename geometry_traits< TGeomObj >::Descriptor & | descriptor, |
GridObject * | pParent = NULL |
||
) |
create a custom element from a descriptor.
TGeomObj has to be a geometric object type as described in grid_base_objects.h. You may optionally specify a GridObject pParent. pParent may be used by observers to initialize the created object in a specific way.
References get_iterator(), register_element(), and STATIC_ASSERT.
geometry_traits< TGeomObj >::iterator ug::Grid::create | ( | GridObject * | pParent = NULL | ) |
create a custom element.
TGeomObj has to be a geometric object type as described in grid_base_objects.h. You may optionally specify a GridObject pParent. pParent may be used by observers to initialize the created object in a specific way.
References get_iterator(), register_element(), and STATIC_ASSERT.
Referenced by ug::computeDiamondPointXCrossType(), ug::ConvertToTetrahedra(), ug::GridReaderUGX::create_constrained_edges(), ug::GridReaderUGX::create_constrained_quadrilaterals(), ug::GridReaderUGX::create_constrained_triangles(), ug::GridReaderUGX::create_constrained_vertices(), ug::GridReaderUGX::create_constraining_edges(), ug::GridReaderUGX::create_constraining_quadrilaterals(), ug::GridReaderUGX::create_constraining_triangles(), ug::GridReaderUGX::create_edges(), ug::FileReaderSWC::create_grid(), ug::GridReaderUGX::create_hexahedrons(), ug::GridReaderUGX::create_octahedrons(), ug::GridReaderUGX::create_prisms(), ug::GridReaderUGX::create_pyramids(), ug::GridReaderUGX::create_quadrilaterals(), ug::GridReaderUGX::create_tetrahedrons(), ug::GridReaderUGX::create_triangles(), ug::GridReaderUGX::create_vertices(), ug::GridReaderVTU::create_vertices(), ug::createDiamondFacesXCrossType(), ug::CreateEdge(), ug::CreateEdgeSplitGeometry(), ug::CreateFace(), ug::CreateGridFromField(), ug::CreateGridFromFieldBoundary(), ug::CreateHexahedronFromPrisms(), ug::ArteExpandFracs3D::createNewElements(), ug::createNewFacesForExtXCrossFracs(), ug::CreatePlane(), ug::CreatePrism(), ug::CreatePyramid(), ug::CreateSCV(), ug::CreateSCVF(), ug::CreateTetrahedron(), ug::CreateTKDVertices(), ug::CreateVertex(), ug::CreateVolume(), ug::CreateVolumesFromElementIndexList(), ug::DeserializeGridElements(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::expandSingleFractureAtGivenSide(), ug::expandSingleFractureAtGivenSide< VecVertexOfFaceInfo >(), ug::Extrude(), ug::ExtrudeLayersMixed(), ug::GenerateIcosahedron(), ug::ImportGridFromLGM(), ug::ImportGridFromNG(), ug::ImportGridFromTETGEN(), ug::InsertCenterVertex(), ug::LoadGridFrom2DF(), ug::LoadGridFromART(), ug::LoadGridFromGRDECL(), ug::LoadGridFromMSH(), ug::LoadGridFromOBJ(), ug::LoadGridFromSMESH(), ug::LoadGridFromSTL(), ug::LoadGridFromTXT(), ug::MultiEdgeSplit(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::QualityGridGeneration(), ug::ReadTetrahedrons(), ug::ReadTriangles(), ug::Refine(), ug::HangingNodeRefinerBase< TSelector >::refine_edge_with_hanging_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_edge_with_normal_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_hanging_vertex(), ug::ReplaceLowValenceVertices(), ug::ReplaceValence3Vertices(), ug::ResolveEdgeFaceIntersection(), ug::ResolveTriangleIntersections(), ug::ResolveVertexFaceIntersection(), ug::SimplifyPolylines(), ug::SplitEdge(), ug::SplitOctahedronToTetrahedrons(), ug::SwapEdge(), ug::TriangleFill(), ug::TriangleFill_SweepLine(), and ug::Triangulate().
geometry_traits< TGeomObj >::iterator ug::Grid::create_and_replace | ( | typename geometry_traits< TGeomObj >::grid_base_object * | pReplaceMe | ) |
create a custom element and replaces an old one.
Be sure, that TGeomObj has the same reference-element as pReplaceMe. Similar to create. With pReplaceMe you may specify an element of the same base-type as TGeomObj, which shall be replaced. The replaced element will be deleted from grid. pReplaceMe will be treated as pParent for GridObservers.
Calls pass_on_values.
Notes for GridObservers: create_and_replace will call in the given order (replace elem with the appropriate name).
References get_iterator(), LOG, register_and_replace_element(), and STATIC_ASSERT.
Referenced by ug::HangingNodeRefiner_MultiGrid::perform_coarsening(), ug::HangingNodeRefinerBase< TSelector >::process_constrained_edge(), ug::HangingNodeRefinerBase< TSelector >::process_constrained_face(), ug::HangingNodeRefinerBase< TSelector >::process_constrained_vertex(), ug::HangingNodeRefiner_MultiGrid::process_constraining_edge(), ug::HangingNodeRefinerBase< TSelector >::process_constraining_face(), ug::HangingNodeRefinerBase< TSelector >::refine_edge_with_hanging_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_hanging_vertex(), ug::ReplaceByConstrained(), ug::ReplaceByConstraining(), and ug::ReplaceByNormal().
EdgeIterator ug::Grid::create_by_cloning | ( | Edge * | pCloneMe, |
const IVertexGroup & | ev, | ||
GridObject * | pParent = NULL |
||
) |
this method creates a new edge, which has the same type as pCloneMe.
References ug::GridObject::create_empty_instance(), get_iterator(), register_edge(), ug::Edge::set_vertex(), and ug::IVertexGroup::vertex().
FaceIterator ug::Grid::create_by_cloning | ( | Face * | pCloneMe, |
const IVertexGroup & | fv, | ||
GridObject * | pParent = NULL |
||
) |
this method creates a new face, which has the same type as pCloneMe.
References ug::GridObject::create_empty_instance(), get_iterator(), ug::IVertexGroup::num_vertices(), register_face(), ug::Face::set_vertex(), and ug::IVertexGroup::vertices().
VertexIterator ug::Grid::create_by_cloning | ( | Vertex * | pCloneMe, |
GridObject * | pParent = NULL |
||
) |
this method creates a new vertex, which has the same type as pCloneMe.
References ug::GridObject::create_empty_instance(), get_iterator(), and register_vertex().
Referenced by assign_grid(), ug::CopyGrid(), ug::CopyGridElements(), ug::CopyGridLevel(), ug::CopyGridLevelElements(), ug::CopySelectedElements(), ug::CopySelection(), ug::MultiGrid::create_by_cloning(), ug::CreateEdgeSplitGeometry(), ug::ArteExpandFracs3D::createNewElements(), ug::Duplicate(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::Extrude(), ug::MergeGrids(), ug::MergeVertices(), ug::HangingNodeRefinerBase< TSelector >::refine_edge_with_normal_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_normal_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_volume_with_normal_vertex(), and ug::SwapEdge().
VolumeIterator ug::Grid::create_by_cloning | ( | Volume * | pCloneMe, |
const IVertexGroup & | vv, | ||
GridObject * | pParent = NULL |
||
) |
this method creates a new volume, which has the same type as pCloneMe.
References ug::GridObject::create_empty_instance(), get_iterator(), ug::IVertexGroup::num_vertices(), register_volume(), ug::Volume::set_vertex(), and ug::IVertexGroup::vertices().
void ug::Grid::detach_from | ( | IAttachment & | attachment | ) |
References STATIC_ASSERT.
Referenced by ug::AdjustEdgeLength(), ug::CheckDistributedObjectConstraintTypes(), ug::ConstructDualGraph(), ug::ConstructDualGraphMG(), ug::ConstructDualGraphMGLevel(), ug::ConstructParallelDualGraphMGLevel(), ug::GetSelectedElementIndices(), ug::MarkForRefinement_SubsetInterfaceElements(), ug::Partitioner_DynamicBisection< TElem, dim >::partition(), ug::ClusterElementStacks< elem_t, vector_t >::partitioning_done(), ug::SmoothPartitionBounds< elem_t >::partitioning_done(), ug::PartitionMultiGridLevel_MetisKway(), and ug::SmoothPartitionBounds< elem_t >::~SmoothPartitionBounds().
|
inline |
|
inline |
Referenced by ug::AdaptSurfaceGridToCylinder(), ug::ApplySmoothManifoldPosToTopLevelButterflyScheme(), ug::ApplySmoothManifoldPosToTopLevelLoopScheme(), ug::CheckValences(), ug::GridSubsetHandler::detach_data(), ug::MultiGridSubsetHandler::detach_data(), ug::ArteExpandFracs3D::detachMarkers(), ug::ISelector::disable_element_support(), ug::MGSelector::disable_element_support(), ug::ISubsetHandler::disable_element_support(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::ExportGridToUG_2D(), ug::DistributedGridManager::free_grid_data(), ug::GenerateIcosphere(), ug::MinimizeEdgeLength_SwapsOnly(), ug::Refine(), remove_marks(), ug::SaveGridToART(), ug::PeriodicBoundaryManager::set_grid(), ug::HangingNodeRefiner_Grid::set_grid(), and ug::DistributedGridManager::~DistributedGridManager().
|
inline |
Referenced by ug::GridSubsetHandler::detach_data(), ug::MultiGridSubsetHandler::detach_data(), ug::ArteExpandFracs3D::detachMarkers(), ug::ISelector::disable_element_support(), ug::MGSelector::disable_element_support(), ug::ISubsetHandler::disable_element_support(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::DistributedGridManager::free_grid_data(), ug::Refine(), remove_marks(), ug::ResolveTriangleIntersections(), ug::SaveGridToART(), ug::SaveGridToELE(), ug::PeriodicBoundaryManager::set_grid(), ug::HangingNodeRefiner_Grid::set_grid(), and ug::DistributedGridManager::~DistributedGridManager().
|
inline |
Referenced by ug::ApplySmoothManifoldPosToTopLevelAveragingScheme(), ug::ApplySmoothManifoldPosToTopLevelButterflyScheme(), ug::ApplySmoothManifoldPosToTopLevelLoopScheme(), ug::ApplySmoothVolumePosToTopLevel(), ug::CheckValences(), ug::CopyGrid(), ug::CopyGridLevel(), ug::CopySelected(), ug::CopySelection(), ug::CreateOctree(), ug::GridSubsetHandler::detach_data(), ug::MultiGridSubsetHandler::detach_data(), ug::ArteExpandFracs3D::detachMarkers(), ug::ISelector::disable_element_support(), ug::MGSelector::disable_element_support(), ug::ISubsetHandler::disable_element_support(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::ExportGridToSMESH(), ug::ExportGridToUG_2D(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::DistributedGridManager::free_grid_data(), ug::LoadGrid3d(), ug::MergeGrids(), ug::GridWriterVTU::new_piece(), ug::PPP_ReplaceCoordinate< dim >::partitioning_done(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::VTKOutput< TDim >::print(), ug::VTKOutput< TDim >::print_subset(), ug::VTKOutput< TDim >::print_subsets(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::RasterLayersProjector::remove_attachments(), remove_marks(), ug::RemoveDoubles(), ug::SaveGrid3d(), ug::SaveGridHierarchyTransformed(), ug::SaveGridTo2DF(), ug::SaveGridToART(), ug::SaveGridToNCDF(), ug::SaveGridToOBJ(), ug::SaveGridToTXT(), ug::SaveParallelGridLayout(), ug::SaveSurfaceViewTransformed(), ug::SerializeGridElements(), ug::PeriodicBoundaryManager::set_grid(), ug::SimplifySmoothedPolylines(), ug::TangentialSmooth(), and ug::DistributedGridManager::~DistributedGridManager().
|
inline |
Referenced by ug::GridSubsetHandler::detach_data(), ug::MultiGridSubsetHandler::detach_data(), ug::ArteExpandFracs3D::detachMarkers(), ug::ISelector::disable_element_support(), ug::MGSelector::disable_element_support(), ug::ISubsetHandler::disable_element_support(), ug::ExpandFractures3d(), ug::DistributedGridManager::free_grid_data(), remove_marks(), ug::SaveGridToELE(), ug::HangingNodeRefiner_Grid::set_grid(), and ug::DistributedGridManager::~DistributedGridManager().
void ug::Grid::disable_options | ( | uint | options | ) |
see set_options for a description of valid parameters.
References change_options(), and m_options.
|
inline |
returns a pointer to the associated distributed grid manager.
The method returns NULL, if no distributed grid manager for the given grid exists. This should be the case for serial environments or for serial grids in parallel environments. Use ug::Grid::set_parallel() to enable or disable parallelism in a grid. You have to include "lib_grid/parallelization/distributed_grid.h" to access methods of a distributed grid manager.
References m_distGridMgr.
Referenced by ug::ApplySmoothManifoldPosToTopLevelAveragingScheme(), ug::ApplySmoothManifoldPosToTopLevelButterflyScheme(), ug::ApplySmoothManifoldPosToTopLevelLoopScheme(), ug::ApplySmoothVolumePosToTopLevel(), ug::AssignSubsetsByInterfaceType(), ug::AssignVerticalMasterAndSlaveStates(), ug::AttachmentAllReduce(), ug::ISelector::broadcast_selection_states(), ug::CalculateConstrainedSmoothVolumePosInTopLevel(), ug::CalculateNumElemsVertexAttachmentInTopLevel(), ug::CalculateNumManifoldEdgesVertexAttachmentInParentLevel(), ug::CalculateNumManifoldFacesVertexAttachmentInTopLevel(), ug::CalculateSmoothCreaseManifoldPosInParentLevelLoopScheme(), ug::CalculateSmoothManifoldPosInParentLevelButterflyScheme(), ug::CalculateSmoothManifoldPosInParentLevelLoopScheme(), ug::CalculateSmoothManifoldPosInTopLevelAveragingScheme(), ug::CalculateSmoothVolumePosInTopLevel(), ug::CheckDistributedObjectConstraintTypes(), ug::CheckMultiGridConsistencyImpl(), ug::ConstructParallelDualGraphMGLevel(), ug::Partitioner_DynamicBisection< TElem, dim >::copy_partitions_to_children(), ug::DistributedGridManager::create_missing_constrained_h_interfaces(), ug::DistributeGrid(), ug::LoadBalancer::estimate_distribution_quality_impl(), ug::Partitioner_DynamicBisection< TElem, dim >::gather_weights_from_level(), ug::ParallelDualGraph< TGeomBaseObj, TIndexType, TConnectingObj >::generate_graph(), ug::GridFunction< TDomain, TAlgebra >::grid_changed_callback(), ug::GridFunction< TDomain, TAlgebra >::grid_distribution_callback(), ug::MarkAllElemsForAssemblyButHSlaves(), ug::PartitionMultiGridLevel_ParmetisKway(), ug::Partitioner_DynamicBisection< TElem, dim >::perform_bisection(), ug::PrintElementEdgeRatios(), ug::ProjectHierarchyToSubdivisionLimit(), ug::ParallelHNodeAdjuster::ref_marks_changed(), ug::SelectChildrenOfSelectedShadowRimEdges(), ug::SelectChildrenOfSelectedShadowRimFaces(), ug::SelectChildrenOfSelectedShadowVertices(), ug::SelectElementsForTargetPartition(), ug::SelectSelectedRootElementsAsVSlaves(), ug::SelectUnselectedRootElementsAsVMasters(), ug::SideAndElemErrEstData< TDomain >::summarize_err_est_data(), ug::SynchronizeDistInfos(), ug::TetrahedralizeHybridTetOctGrid(), and ug::ZRayTracer< TDomain >::ZRayTracer().
|
inline |
returns a pointer to the associated distributed grid manager.
The method returns NULL, if no distributed grid manager for the given grid exists. This should be the case for serial environments or for serial grids in parallel environments. Use ug::Grid::set_parallel() to enable or disable parallelism in a grid. You have to include "lib_grid/parallelization/distributed_grid.h" to access methods of a distributed grid manager.
References m_distGridMgr.
size_t ug::Grid::edge_fragmentation | ( | ) |
returns the number of unused edge-data-entries.
References ug::ElementStorage< TElem >::m_attachmentPipe, m_edgeElementStorage, ug::AttachmentPipe< TElem, TElemHandler >::num_data_entries(), and ug::AttachmentPipe< TElem, TElemHandler >::num_elements().
|
protected |
References ug::EDGEOPT_STORE_ASSOCIATED_FACES, LOG, ug::Face::num_edges(), and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
Referenced by associated_faces_begin(), and associated_faces_end().
|
protected |
References ug::Volume::edge_desc(), ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, LOG, ug::Volume::num_edges(), and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by associated_volumes_begin(), and associated_volumes_end().
|
inline |
Referenced by ug::GlobalFracturedMediaRefiner::adjust_marks(), ug::AdjustSubsetsForLgmNg(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), ug::CollectLines(), ug::ExportGridToUG_2D(), ug::MarkForRefinement_All(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ResolveTriangleIntersections(), ug::HangingNodeRefinerBase< TSelector >::save_marks_to_file(), ug::SaveCoarsenMarksToFile(), and ug::SaveGridToOBJ().
|
inline |
Referenced by ug::GlobalFracturedMediaRefiner::adjust_marks(), ug::AdjustSubsetsForLgmNg(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), ug::CollectLines(), ug::ExportGridToUG_2D(), ug::MarkForRefinement_All(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ResolveTriangleIntersections(), ug::HangingNodeRefinerBase< TSelector >::save_marks_to_file(), ug::SaveCoarsenMarksToFile(), and ug::SaveGridToOBJ().
|
inlineprotected |
returns the element storage for a given element type
|
inlineprotected |
returns the const element storage for a given element type
void ug::Grid::enable_options | ( | uint | options | ) |
see set_options for a description of valid parameters.
References change_options(), and m_options.
Referenced by ug::AdjustEdgeLength(), assign_grid(), autoenable_option(), ug::CalculateAngles(), ug::CalculateCreaseNormal(), ug::CalculateMaxAngle(), ug::CalculateMaxDihedral(), ug::CalculateMinAngle(), ug::CalculateMinDihedral(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), ug::DelaunayInfo< TAAPos >::DelaunayInfo(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::ExportGridToUG(), ug::ArteExpandFracs3D::generateVertexInfos(), ug::GetNeighbours(), ug::GetNextSectionOfPolyChain(), ug::ArteExpandFracs3D::initialize(), ug::IsBoundaryEdge3D(), ug::IsBoundaryVertex1D(), ug::IsBoundaryVertex2D(), ug::IsBoundaryVertex3D(), ug::MergeVertices(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::HangingNodeRefinerBase< TSelector >::perform_refinement(), ug::Refine(), ug::SaveGridToART(), ug::SelectSmoothEdgePath(), ug::SplitIrregularManifoldSubset(), and ug::SplitIrregularPolyChain().
geometry_traits< TGeomObj >::iterator ug::Grid::end |
References STATIC_ASSERT.
Referenced by ug::GridWriterUGX::add_attachment(), ug::GridWriterUGX::add_elements_to_node(), ug::GridWriterUGX::add_grid(), ug::AdjustEdgeLength(), ug::AdjustSubsetsForSimulation(), assign_grid(), ug::ISubsetHandler::assign_subset_handler(), ug::AssignGridToSubset(), ug::AssignInnerAndBoundarySubsets(), ug::AssignSidesToSubsets(), ug::AssignSubset_VerticesInCube(), ug::AssignSubset_VerticesInSphere(), ug::AssignTetrahedronAttributesByAspectRatio(), ug::AssignUnassignedElemsToSubset(), ug::CalculateAverageEdgeLength(), ug::CalculateVertexNormals(), ug::CheckForUnconnectedSidesIMPL(), ug::CheckHangingNodeConsistency(), ug::BoolMarker::clear(), ug::GridWriterVTU::collect_cells(), ug::ColorControlVolume(), ug::ColorSubControlVolume(), ug::ColorSubControlVolumeFaces(), ug::ComputeLocalSubsetDimensions(), ug::CopyAttachments(), ug::CopySelectionStatus(), ug::CreateAndDistributeGlobalIDs(), ug::CreateGridOfControlVolumes(), ug::OverlyingSubsetFinder< TDomain >::debug(), ug::DeserializeAttachment(), ug::ISelector::enable_element_support(), ug::ExportGridToSWC(), ug::ExportGridToTETGEN(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::GenerateIcosphere(), ug::GetGridObjectIndex(), ug::GetSelectedElementIndices(), ug::GridWriterUGX::init_grid_attachments(), ug::InvertSelection(), ug::LoadGridFromOBJ(), ug::LoadMarkerPointsFromFile(), mark(), ug::MarkAllElemsForAssemblyButHSlaves(), ug::MarkForAdaption_VerticesInCube(), ug::MarkForAdaption_VerticesInSphereMaxLvl(), ug::MarkForRefinement_AllAnisotropic(), ug::MarkForRefinement_AnisotropicElements(), ug::MarkForRefinement_ElementsInSphere(), ug::MarkForRefinement_SubsetInterfaceElements(), ug::MergeGrids(), ug::GridWriterVTU::new_piece(), ug::OverlyingSubsetFinder< TDomain >::OverlyingSubsetFinder(), ug::PartitionGrid_MetisKway(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ProjectToLayer(), ug::GlobalAttachments::read_attachment_from_stream(), ug::ResetSubsetIndices(), ug::ResolveTriangleIntersections(), ug::DelaunayDebugSaver::save(), ug::SaveGridTo2DF(), ug::SaveGridToART(), ug::SaveGridToELE(), ug::SaveGridToSTL(), ug::SaveGridToTXT(), ug::SelectDomainElements(), ug::SelectElementsByIndex(), ug::SelectRegion(), ug::SelectShortPolychains(), ug::SeparateRegions(), ug::SeparateSubsetsByLowerDimSeparators(), ug::SerializeAttachment(), ug::SimplifySmoothedPolylines(), ug::SnapMarkerPointToGridVertex(), ug::Triangulate(), unmark(), ug::PeriodicBoundaryManager::validity_check(), ug::GlobalAttachments::write_attachment_to_stream(), ug::GridWriterVTU::write_vector_data(), ug::WriteDebugValuesToFile(), and ug::ZRayTracer< TDomain >::ZRayTracer().
geometry_traits< TGeomObj >::const_iterator ug::Grid::end |
References STATIC_ASSERT.
void ug::Grid::end_marking | ( | ) |
ends a marking sequence. Call this method when you're done with marking.
References m_bMarking.
Referenced by ug::AssignFixedVertices(), ug::CalculateCenter(), ug::CalculateCreaseNormal(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), clear_marks(), ug::CollectAssociatedSides(), ug::CollectNeighborhood(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVerticesTouchingSelection(), ug::ConvertToTetrahedra(), ug::VTKOutput< TDim >::count_piece_sizes(), ug::GridPointsOrdering< TDomain, TAlgebra >::create_vtkoutput_ordering(), ug::CreateHexahedronFromPrisms(), ug::CreatePolyChain(), ug::CreatePyramid(), ug::CreateTetrahedron(), ug::DistributedGridManager::end_element_deletion(), ug::ExportGridToSWC(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), ug::ExtrudeLayers(), ug::FixEdgeOrientation(), ug::FixFaceOrientation(), ug::GetFirstRegularVertex(), ug::GetNeighborhood(), ug::GetNeighbours(), ug::PeriodicBoundaryManager::handle_creation(), ug::IntersectCloseEdges(), ug::MarkFixedCreaseVertices(), ug::NumAssociatedFaces(), ug::NumSharedVertices(), ug::ObtainSimpleGrid(), ug::ObtainSimpleGrid_CollapseEdge(), ug::PartitionElements_RegularGrid(), ug::QualityGridGeneration(), ug::SmoothProjector::refinement_ends(), ug::RemoveDuplicates(), ug::HangingNodeRefiner_MultiGrid::restrict_selection_to_coarsen_families(), ug::SelectAreaBoundary(), ug::SelectInnerSelectionEdges(), ug::SelectInnerSelectionFaces(), ug::SelectInnerSelectionVertices(), ug::SelectShortPolychains(), ug::SerializeMultiGridElements(), ug::SimplifyPolylines(), ug::SplitIrregularManifoldSubset(), ug::SplitIrregularPolyChain(), ug::SwapEdge(), ug::TangentialSmooth(), ug::TangentialSmoothSimple(), ug::TranslateSelection(), ug::TriangleFill_SweepLine(), ug::VTKOutput< TDim >::write_nodal_data(), ug::VTKOutput< TDim >::write_nodal_values(), ug::VTKOutput< TDim >::write_points(), and ug::WriteLGM().
void ug::Grid::erase | ( | const GeomObjIter & | iterBegin, |
const GeomObjIter & | iterEnd | ||
) |
void ug::Grid::erase | ( | Edge * | edge | ) |
References ug::Edge::container_section(), and unregister_edge().
void ug::Grid::erase | ( | Face * | face | ) |
References ug::Face::container_section(), and unregister_face().
void ug::Grid::erase | ( | GridObject * | geomObj | ) |
References ug::GridObject::base_object_id(), ug::GridObject::container_section(), ug::EDGE, ug::FACE, ug::VERTEX, and ug::VOLUME.
Referenced by clear(), ug::CollapseEdge(), ug::ConvertToTetrahedra(), ug::ArteExpandFracs3D::createNewElements(), erase(), ug::EraseConnectingElements(), ug::EraseElements(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::InsertCenterVertex(), ug::MergeVertices(), ug::MultiEdgeSplit(), ug::HangingNodeRefiner_MultiGrid::perform_coarsening(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::HangingNodeRefiner_Grid::post_refine(), ug::HangingNodeRefiner_Grid::process_constraining_edge(), ug::HangingNodeRefiner_Grid::process_constraining_face(), ug::QualityGridGeneration(), ug::Refine(), ug::HangingNodeRefiner_Grid::refine_edge_with_normal_vertex(), ug::HangingNodeRefiner_Grid::refine_face_with_normal_vertex(), ug::HangingNodeRefiner_Grid::refine_volume_with_normal_vertex(), ug::RemoveDuplicates(), ug::ReplaceByQuadrilateral(), ug::ReplaceLowValenceVertices(), ug::ReplaceValence3Vertices(), ug::ResolveEdgeFaceIntersection(), ug::ResolveTriangleIntersections(), ug::ResolveVertexFaceIntersection(), ug::SimplifyPolylines(), ug::SplitEdge(), ug::SwapEdge(), ug::TetrahedralizeHybridTetOctGrid(), and ug::Triangulate().
void ug::Grid::erase | ( | Vertex * | vrt | ) |
References ug::Vertex::container_section(), and unregister_vertex().
void ug::Grid::erase | ( | Volume * | vol | ) |
References ug::Volume::container_section(), and unregister_volume().
|
protected |
size_t ug::Grid::face_fragmentation | ( | ) |
returns the number of unused face-data-entries.
References ug::ElementStorage< TElem >::m_attachmentPipe, m_faceElementStorage, ug::AttachmentPipe< TElem, TElemHandler >::num_data_entries(), and ug::AttachmentPipe< TElem, TElemHandler >::num_elements().
|
protected |
References ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, and ug::Face::num_edges().
Referenced by associated_edges_begin(), and associated_edges_end().
|
protected |
References ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, ug::Volume::num_faces(), and ug::VOLOPT_STORE_ASSOCIATED_FACES.
Referenced by associated_volumes_begin(), and associated_volumes_end().
|
inline |
Referenced by ug::AdjustSubsetsForLgmNg(), ug::CollectSurfaceVertices(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExportGridToUG_2D(), ug::LoadGrid3d_IMPL(), ug::MarkForRefinement_All(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::HangingNodeRefinerBase< TSelector >::save_marks_to_file(), ug::SaveCoarsenMarksToFile(), and ug::SaveGridToOBJ().
|
inline |
Referenced by ug::AdjustSubsetsForLgmNg(), ug::CollectSurfaceVertices(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExportGridToUG_2D(), ug::LoadGrid3d_IMPL(), ug::MarkForRefinement_All(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::HangingNodeRefinerBase< TSelector >::save_marks_to_file(), ug::SaveCoarsenMarksToFile(), and ug::SaveGridToOBJ().
|
protected |
References associated_edges_begin(), associated_edges_end(), and GRID_PROFILE_FUNC.
Referenced by flip_orientation(), and get_edge().
|
protected |
References associated_faces_begin(), associated_faces_end(), ug::CompareVertices(), GRID_PROFILE_FUNC, and ug::hash_key().
Referenced by flip_orientation(), and get_face().
|
protected |
References associated_volumes_begin(), associated_volumes_end(), ug::CompareVertices(), GRID_PROFILE_FUNC, and ug::hash_key().
Referenced by get_volume().
void ug::Grid::flip_orientation | ( | Edge * | e | ) |
flips the orientation of an edge.
References ug::EdgeVertices::m_vertices.
Referenced by ug::AdjustEdgeOrientationToFaceOrientation(), ug::FixEdgeOrientation(), ug::FixFaceOrientation(), ug::FixOrientation(), and ug::InvertOrientation().
void ug::Grid::flip_orientation | ( | Face * | f | ) |
flips the orientation of a face.
References ug::Face::edge_desc(), ug::FACEOPT_STORE_ASSOCIATED_EDGES, find_edge_in_associated_edges(), m_aaEdgeContainerFACE, ug::Face::num_edges(), ug::FaceVertices::num_vertices(), option_is_enabled(), ug::Face::set_vertex(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().
void ug::Grid::flip_orientation | ( | Volume * | vol | ) |
flips the orientation of a volume.
References ug::Volume::edge_desc(), ug::Volume::face_desc(), find_edge_in_associated_edges(), find_face_in_associated_faces(), ug::Volume::get_flipped_orientation(), m_aaEdgeContainerVOLUME, m_aaFaceContainerVOLUME, ug::Volume::num_edges(), ug::Volume::num_faces(), ug::VolumeVertices::num_vertices(), option_is_enabled(), ug::Volume::set_vertex(), ug::EdgeVertices::vertex(), ug::FaceDescriptor::vertex(), ug::VolumeDescriptor::vertex(), ug::VOLOPT_STORE_ASSOCIATED_EDGES, and ug::VOLOPT_STORE_ASSOCIATED_FACES.
TGeomObj * ug::Grid::front |
returns the first element of the given type.
Make sure that elements of the given type exist! Behaviour is undefined, if not.
References STATIC_ASSERT.
Referenced by ug::PartitionMultiGrid_MetisKway(), ug::PartitionMultiGridLevel_MetisKway(), and ug::SelectionFill().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
References ug::EdgeVertices::num_vertices(), ug::PointerConstArray< TPtr >::set_external_array(), and ug::EdgeVertices::vertices().
Referenced by associated_elements(), and get_associated().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, get_associated(), ug::VERTEX, and ug::VOLUME.
|
protected |
|
protected |
|
protected |
|
protected |
References ug::PointerConstArray< TPtr >::clear(), ug::FACEOPT_AUTOGENERATE_EDGES, ug::Volume::num_edges(), ug::PointerConstArray< TPtr >::push_back(), ug::PointerConstArray< TPtr >::set_external_array(), ug::VOLOPT_AUTOGENERATE_EDGES, ug::VOLOPT_AUTOGENERATE_FACES, and ug::VOLOPT_STORE_ASSOCIATED_EDGES.
|
protected |
|
protected |
|
protected |
|
protected |
References ug::EdgeVertices::num_vertices(), ug::PointerConstArray< TPtr >::set_external_array(), and ug::EdgeVertices::vertices().
Referenced by associated_elements_sorted().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
this method does not use possibly attached containers and can thus be used, when such containers are to be built.
References ug::PointerConstArray< TPtr >::clear(), LOG, ug::PointerConstArray< TPtr >::push_back(), ug::FaceVertices::vertex(), ug::VolumeContains(), and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
TAttachment::ContainerType * ug::Grid::get_attachment_data_container | ( | TAttachment & | attachment | ) |
uint ug::Grid::get_attachment_data_index | ( | TGeomObj * | pObj | ) | const |
Referenced by assign_grid(), ug::Extrude(), pass_on_values(), and ug::ResolveTriangleIntersections().
Grid::traits< TGeomObj >::AttachmentPipe & ug::Grid::get_attachment_pipe |
returns the attachment-pipe in which data associated with the given objects-types are stored.
This method is seldomly used, can however be useful. Use with care. If in doubt please use the methods featured by Grid instead of directly operating on the attachment pipe.
References STATIC_ASSERT.
Referenced by ug::Grid::AttachmentAccessor< TElem, TAttachment >::access(), ug::MGSelector::add_level(), ug::GridSubsetHandler::add_required_subset_lists(), ug::Selector::enable_element_support(), ug::MGSelector::enable_element_support(), ug::MultiGridSubsetHandler::new_subset(), and ug::PrintAttachmentInfo().
Edge * ug::Grid::get_edge | ( | const EdgeVertices & | ev | ) |
returns the edge that is described by ev.
Note that you may pass an EdgeDescriptor to this method.
References find_edge_in_associated_edges(), and ug::EdgeVertices::vertex().
If it exists, this method returns the i-th edge of the given Face. If not NULL is returned.
To make sure that associated edges always exist, enable the grid-option FACEOPT_AUTOGENERATE_EDGES. For maximal performance, the option FACEOPT_STORE_ASSOCIATED_EDGES should be enabled.
References ug::Face::edge_desc(), ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, find_edge_in_associated_edges(), m_aaEdgeContainerFACE, option_is_enabled(), and ug::EdgeVertices::vertex().
returns the edge between v1 and v2, if it exists. Returns NULL if not.
References find_edge_in_associated_edges().
Referenced by ug::assignFaceSubsetToClosedFace(), ug::CalculateAngles(), ug::CalculateBoundaryVertexNormal2D(), ug::CalculateMaxDihedral(), ug::CalculateMinDihedral(), ug::CalculateSmoothManifoldPosInParentLevelButterflyScheme(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::CollapseEdge(), ug::CollectEdges(), ug::CollectEdgesSorted(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::CreateEdge(), ug::CreateEdgeSplitGeometry(), ug::ArteExpandFracs3D::createNewElements(), ug::CreatePrism(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::ExportGridToUG_2D(), ug::IRefiner::get_local_face_mark(), get_opposing_object(), get_side(), ug::GetConnectedEdge(), ug::GetNeighbours(), ug::MergeVertices(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::QualityGridGeneration(), ug::LocalMarkAdjuster::ref_marks_changed(), ug::Refine(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_hanging_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_normal_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_volume_with_normal_vertex(), ug::ReplaceLowValenceVertices(), ug::ResolveVertexFaceIntersection(), ug::SimplifyPolylines(), and ug::SwapEdge().
If it exists, this method returns the i-th edge of the given Volume. If not NULL is returned.
To make sure that associated edges always exist, enable the grid-option VOLOPT_AUTOGENERATE_EDGES. For maximal performance, the option VOLOPT_STORE_ASSOCIATED_EDGES should be enabled.
References ug::Volume::edge_desc(), ug::FACEOPT_AUTOGENERATE_EDGES, find_edge_in_associated_edges(), m_aaEdgeContainerVOLUME, option_is_enabled(), ug::EdgeVertices::vertex(), ug::VOLOPT_AUTOGENERATE_EDGES, ug::VOLOPT_AUTOGENERATE_FACES, and ug::VOLOPT_STORE_ASSOCIATED_EDGES.
|
inline |
returns the element for the given vertices.
Note that you can either pass an element type (Edge, Face, Volume) or a descriptor (EdgeDescriptor, FaceDescriptor, VolumeDescriptor). The method returns NULL, if the specified element does not exist. A special overload exists for Vertex*, which simply returns the specified vertex. Useful for template programming...
Referenced by ug::GlobalFracturedMediaRefiner::assign_elem_and_side_marks(), ug::CalculatePyramidAspectRatio(), ug::MultiEdgeSplit(), ug::ResolveTriangleIntersections(), and ug::ResolveVertexFaceIntersection().
|
inline |
returns the element for the given vertices.
Note that you can either pass an element type (Edge, Face, Volume) or a descriptor (EdgeDescriptor, FaceDescriptor, VolumeDescriptor). The method returns NULL, if the specified element does not exist. A special overload exists for Vertex*, which simply returns the specified vertex. Useful for template programming...
|
inline |
This overload is only useful to avoid compile issues in templated code.
References ug::VertexDescriptor::vertex().
|
inline |
returns the element for the given vertices.
Note that you can either pass an element type (Edge, Face, Volume) or a descriptor (EdgeDescriptor, FaceDescriptor, VolumeDescriptor). The method returns NULL, if the specified element does not exist. A special overload exists for Vertex*, which simply returns the specified vertex. Useful for template programming...
Face * ug::Grid::get_face | ( | const FaceVertices & | fv | ) |
returns the face that is described by fv.
Note that you may pass a FaceDescriptor to this method.
References find_face_in_associated_faces(), and ug::FaceVertices::vertex().
Referenced by ug::AssignRegionToSubset(), ug::CalculateBoundaryVertexNormal3D(), ug::CollapseEdge(), ug::CollectFaces(), ug::CollectFacesSorted(), ug::ArteExpandFracs3D::countAndSelectFracBaseNums(), ug::CreateFace(), ug::CreateHexahedronFromPrisms(), ug::ArteExpandFracs3D::createNewElements(), ug::ExpandFractures3d(), ug::support::AttachedFullDimElemInfo< FULLDIM_ELEM, MANIFELM, LOWDIMELM, INDEX_TXP >::fullDimElmContainsManif(), get_opposing_object(), get_side(), ug::GetNeighbours(), ug::MergeVertices(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::Refine(), ug::HangingNodeRefinerBase< TSelector >::refine_volume_with_normal_vertex(), ug::ReplaceLowValenceVertices(), and ug::ResolveVertexFaceIntersection().
If it exists, this method returns the i-th face of the given Volume. If not NULL is returned.
To make sure that associated faces always exist, enable the grid-option VOLOPT_AUTOGENERATE_FACES. For maximal performance, the option VOLOPT_STORE_ASSOCIATED_FACES should be enabled.
References ug::Volume::face_desc(), find_face_in_associated_faces(), m_aaFaceContainerVOLUME, option_is_enabled(), ug::FaceDescriptor::vertex(), ug::VOLOPT_AUTOGENERATE_FACES, and ug::VOLOPT_STORE_ASSOCIATED_FACES.
|
virtual |
returns the the GridObjectCollection of the grid:
Reimplemented in ug::MultiGrid, and ug::MultiGrid.
References m_edgeElementStorage, m_faceElementStorage, ug::ElementStorage< TElem >::m_sectionContainer, m_vertexElementStorage, and m_volumeElementStorage.
Referenced by ug::AssignSubsetsByElementType(), ug::BroadcastGrid(), ug::ConstructDualGraph(), ug::CopyGrid(), ug::CopyGridElements(), ug::CopySubsetIndicesToSides(), ug::DeserializeSelector(), ug::DeserializeSubsetHandler(), ug::PrintGridElementNumbers(), ug::ResolveTriangleIntersections(), ug::SerializeGridElements(), ug::SerializeSelector(), ug::SerializeSubsetHandler(), and ug::WriteDebugValuesToFile().
|
inlineprotected |
returns the iterator at which the given element lies in the section container
This method may only be called if the element has already been registered at the grid.
|
inlineprotected |
returns the iterator at which the given element lies in the section container
This method may only be called if the element has already been registered at the grid.
|
inlineprotected |
returns the iterator at which the given element lies in the section container
This method may only be called if the element has already been registered at the grid.
Referenced by create(), create_and_replace(), and create_by_cloning().
|
inlineprotected |
returns the iterator at which the given element lies in the section container
This method may only be called if the element has already been registered at the grid.
GridObject * ug::Grid::get_opposing_object | ( | Vertex * | vrt, |
Face * | elem | ||
) |
returns the geometric object on the opposing side of the given vertex regarding the given element.
References ug::EDGE, get_edge(), ug::Face::get_opposing_object(), UG_THROW, ug::VERTEX, and ug::FaceVertices::vertex().
Referenced by ug::LaplacianSmooth().
GridObject * ug::Grid::get_opposing_object | ( | Vertex * | vrt, |
Volume * | elem | ||
) |
returns the geometric object on the opposing side of the given vertex regarding the given element.
References ug::EDGE, ug::FACE, get_edge(), get_face(), ug::Volume::get_opposing_object(), UG_THROW, ug::VERTEX, and ug::VolumeVertices::vertex().
uint ug::Grid::get_options | ( | ) | const |
References m_options.
Referenced by assign_grid(), clear_geometry(), ug::GridReaderUGX::grid(), ug::GridReaderVTU::grid(), and ug::LoadGridFromLGB().
Edge::side * ug::Grid::get_side | ( | Edge * | obj, |
size_t | side | ||
) |
References GRID_PROFILE_FUNC, and ug::EdgeVertices::vertex().
Face::side * ug::Grid::get_side | ( | Face * | obj, |
size_t | side | ||
) |
References get_edge(), GRID_PROFILE_FUNC, and num_edges().
Vertex::side * ug::Grid::get_side | ( | Vertex * | obj, |
size_t | side | ||
) |
This method returns the i-th side of an Edge, Face or Volume.
If obj has dimension d, then all associated elements of dimension d-1 are regarded as sides. (Face -> Edge). Only derivates of Volume, Face or Edge may be queried for their sides. If you call this method with Vertex*, an assertion is triggered, since vertices do not have sides.
It is not in all cases guaranteed that an object has sides. If i.e. the FACEOPT_AUTOGENERATE_EDGES is not enabled in the grids options, then it is not guaranteed that all side-edges of each face exist (in most cases they wont exist). The method returns NULL in this case. If however FACEOPT_AUTOGENERATE_EDGES is enabled then this method always will return an edge if queried for the side of a face. For volumes the appropriate option is called VOLOPT_AUTOGENERATE_FACES.
The method will be faster if elements store associated lower dimensional elements. Options VOLOPT_STORE_ASSOCIATED_FACES and FACEOPT_STORE_ASSOCIATED_EDGES have to be enabled for this.
References GRID_PROFILE_FUNC.
Referenced by ug::CalculateCreaseNormal(), ug::close_sides_of_anisotropic_elem(), ug::ArteExpandFracs3D::createNewElements(), ug::ExpandFractures3d(), ug::ArteExpandFracs3D::generateVertexInfos(), ug::DegeneratedLayerManager< dim >::get_layer_sides(), ug::IsSubSurfaceElement(), and ug::SeparateSubsetsByLowerDimSeparators().
Volume::side * ug::Grid::get_side | ( | Volume * | obj, |
size_t | side | ||
) |
References get_face(), GRID_PROFILE_FUNC, and num_faces().
Volume * ug::Grid::get_volume | ( | const VolumeVertices & | vv | ) |
returns the volume that is described by ev.
Note that you may pass an VolumeDescriptor to this method.
References find_volume_in_associated_volumes(), and ug::VolumeVertices::vertex().
Referenced by ug::CreateVolume().
|
inline |
Referenced by ug::GridWriterUGX::add_attachment(), ug::RasterLayersProjector::add_attachments(), ug::Grid::AttachmentAccessor< TElem, TAttachment >::AttachmentAccessor(), ug::CalculateVertexNormals(), ug::GlobalAttachments::cast_and_attach(), ug::CompareByAttachment< TElem, TAttachment >::CompareByAttachment(), ug::ConstructDualGraph(), ug::ConstructDualGraphMG(), ug::ConstructDualGraphMGLevel(), ug::ConstructParallelDualGraphMGLevel(), ug::ConvertMathVectorAttachmentValues(), ug::CopyAttachments(), ug::CreateAndDistributeGlobalIDs(), ug::DeserializeAttachment(), ug::GlobalAttachments::is_attached(), ug::GlobalAttachments::read_attachment_from_stream(), ug::SerializeAttachment(), ug::GlobalAttachments::write_attachment_to_stream(), and ug::SmoothPartitionBounds< elem_t >::~SmoothPartitionBounds().
|
inline |
Referenced by ug::Refine().
|
inline |
Referenced by ug::CalculateFaceNormals(), ug::LoadGridFromSTL(), ug::Refine(), and ug::SeparateFaceSubsetsByNormal().
bool ug::Grid::has_periodic_boundaries | ( | ) | const |
returns true, if grid has the possibility to handle periodic boundaries.
References m_periodicBndMgr.
Referenced by ug::mark_if_periodic(), ug::bridge::periodicBoundary::print_all_identifications(), and ug::StdHNodeAdjuster::ref_marks_changed().
|
inline |
Referenced by ug::AdaptSurfaceGridToCylinder(), ug::GridWriterUGX::add_grid(), ug::AdjustEdgeLength(), ug::NeuriteProjector::attach_surf_params(), ug::SomaProjector::attach_surf_params(), ug::CalculateFaceNormals(), ug::CopySelected(), ug::FileReaderSWC::create_grid(), ug::CreateEdgeSplitGeometry(), ug::CreateOctree(), ug::bridge::CreateSmoothHierarchy(), ug::CutEdgesWithPlane(), ug::Duplicate(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), ug::ExportGridToSMESH(), ug::ExportGridToSWC(), ug::ExportGridToTETGEN(), ug::Extrude(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::GenerateIcosahedron(), ug::Geometry< dim, attachmentDim >::Geometry(), ug::GetGridObjectCenter(), ug::GridReaderUGX::grid(), ug::GridReaderVTU::grid(), ug::ImportGridFromLGM(), ug::ImportGridFromNG(), ug::ImportGridFromTETGEN(), ug::ArteExpandFracs3D::initialize(), ug::LoadGridFrom2DF(), ug::LoadGridFromART(), ug::LoadGridFromASC(), ug::LoadGridFromDUMP(), ug::LoadGridFromGRDECL(), ug::LoadGridFromLGB(), ug::LoadGridFromMSH(), ug::LoadGridFromOBJ(), ug::LoadGridFromSMESH(), ug::LoadGridFromSTL(), ug::LoadGridFromTXT(), ug::LoadGridFromUGX(), ug::LoadGridFromVTU(), ug::LoadMarkerPointsFromFile(), ug::MarkCorners(), ug::MarkCreaseEdges(), ug::NTreeGridData< world_dim >::NTreeGridData(), ug::PPP_ReplaceCoordinate< dim >::partitioning_done(), ug::PPP_ReplaceCoordinate< dim >::partitioning_starts(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ClusterElementStacks< elem_t, vector_t >::post_process(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::IRefiner::refine(), ug::Refine(), ug::RasterLayersProjector::remove_attachments(), ug::RemoveDoubles(), ug::SaveGridHierarchyTransformed(), ug::SaveGridLevelToFile(), ug::SaveGridTo2DF(), ug::SaveGridToART(), ug::SaveGridToFile(), ug::SaveGridToLGB(), ug::SaveGridToNCDF(), ug::SaveGridToOBJ(), ug::SaveGridToSTL(), ug::SaveGridToTXT(), ug::SaveGridToUGX(), ug::SaveParallelGridLayout(), ug::SaveSurfaceViewTransformed(), ug::SelectCreaseEdges(), ug::SelectLinkedFlatAndDegeneratedFaces(), ug::SelectLinkedFlatFaces(), ug::SelectSmoothEdgePath(), ug::SeparateFaceSubsetsByNormal(), ug::SeparateRegions(), ug::SerializeGridElements(), ug::TestGridLayoutMap(), ug::ToElementPosition< TElem, TAVrtPos >::ToElementPosition(), ug::TriangleFill(), and ug::TriangleFill_SweepLine().
|
inline |
Referenced by ug::AttachAct(), ug::AttachProperty(), and ug::PerformRetetrahedralization().
|
protected |
References attach_to_edges_dv(), attach_to_faces_dv(), attach_to_vertices_dv(), attach_to_volumes_dv(), m_aaMarkEDGE, m_aaMarkFACE, m_aaMarkVOL, m_aaMarkVRT, m_aMark, m_bMarking, and m_currentMark.
Referenced by begin_marking().
|
inline |
returns true if the object is marked, false if not.
Only pass objects that are contained by the grid.
References m_aaMarkEDGE, and m_currentMark.
|
inline |
returns true if the object is marked, false if not.
Only pass objects that are contained by the grid.
References m_aaMarkFACE, and m_currentMark.
|
inline |
returns true if the object is marked, false if not.
Only pass objects that are contained by the grid.
References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, ug::VERTEX, and ug::VOLUME.
Referenced by ug::AssignFixedVertices(), ug::CalculateCenter(), ug::CalculateCreaseNormal(), ug::IsMarked::callback(), ug::IsNotMarked::callback(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), ug::CollectAssociatedSides(), ug::CollectNeighborhood(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVerticesTouchingSelection(), ug::ConvertToTetrahedra(), ug::GridPointsOrdering< TDomain, TAlgebra >::count_sizes(), ug::VTKOutput< TDim >::count_sizes(), ug::CreateHexahedronFromPrisms(), ug::CreatePolyChain(), ug::CreatePyramid(), ug::CreateTetrahedron(), ug::DistributedGridManager::end_element_deletion(), ug::ExportGridToSWC(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), ug::ExtrudeLayers(), ug::FixEdgeOrientation(), ug::FixFaceOrientation(), ug::GetFirstRegularVertex(), ug::GetNeighborhood(), ug::GetNeighbours(), ug::PeriodicBoundaryManager::handle_creation(), ug::IntersectCloseEdges(), ug::MarkFixedCreaseVertices(), ug::NumAssociatedFaces(), ug::GridPointsOrdering< TDomain, TAlgebra >::number_points_elementwise(), ug::NumSharedVertices(), ug::ObtainSimpleGrid(), ug::ObtainSimpleGrid_CollapseEdge(), ug::PartitionElements_RegularGrid(), ug::QualityGridGeneration(), ug::SmoothProjector::refinement_ends(), ug::RemoveDuplicates(), ug::HangingNodeRefiner_MultiGrid::restrict_selection_to_coarsen_families(), ug::SelectAreaBoundary(), ug::SelectInnerSelectionEdges(), ug::SelectInnerSelectionFaces(), ug::SelectInnerSelectionVertices(), ug::SelectShortPolychains(), ug::SerializeMultiGridElements(), ug::SimplifyPolylines(), ug::SplitIrregularManifoldSubset(), ug::SplitIrregularPolyChain(), ug::SwapEdge(), ug::TangentialSmooth(), ug::TangentialSmoothSimple(), ug::TranslateSelection(), ug::TriangleFill_SweepLine(), ug::VisitAreaBoundary(), ug::VTKOutput< TDim >::write_nodal_data_elementwise(), ug::VTKOutput< TDim >::write_nodal_values_elementwise(), ug::VTKOutput< TDim >::write_points_elementwise(), ug::WriteLGM(), and ug::WriteParent().
|
inline |
returns true if the object is marked, false if not.
Only pass objects that are contained by the grid.
References m_aaMarkVRT, and m_currentMark.
|
inline |
returns true if the object is marked, false if not.
Only pass objects that are contained by the grid.
References m_aaMarkVOL, and m_currentMark.
|
inline |
returns true if the grid is prepared for parallel computations.
If the method returns true, it is also clear, that a distributed grid manager exists in the grid. The manager can be queried through ug::Grid::distributed_grid_manager.
References m_distGridMgr.
Referenced by ug::Partitioner_DynamicBisection< TElem, dim >::copy_partitions_to_children(), ug::DistributeGrid(), ug::PartitionMultiGridLevel_ParmetisKway(), ug::ParallelHNodeAdjuster::ref_marks_changed(), ug::StdHNodeAdjuster::ref_marks_changed(), and set_parallel().
|
inline |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkEDGE, m_bMarking, and m_currentMark.
|
inline |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkFACE, m_bMarking, and m_currentMark.
|
inline |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, ug::VERTEX, and ug::VOLUME.
Referenced by ug::AssignFixedVertices(), ug::CalculateCenter(), ug::CalculateCreaseNormal(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), ug::CollectAssociatedSides(), ug::CollectNeighborhood(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVerticesTouchingSelection(), ug::ConvertToTetrahedra(), ug::GridPointsOrdering< TDomain, TAlgebra >::count_sizes(), ug::VTKOutput< TDim >::count_sizes(), ug::CreateHexahedronFromPrisms(), ug::CreatePolyChain(), ug::CreatePyramid(), ug::CreateTetrahedron(), ug::DistributedGridManager::end_element_deletion(), ug::ExportGridToSWC(), ug::ExtendSelection(), ug::ExtendSelectionInDirection(), ug::ExtrudeLayers(), ug::FixEdgeOrientation(), ug::FixFaceOrientation(), ug::GetFirstRegularVertex(), ug::GetNeighborhood(), ug::GetNeighbours(), ug::PeriodicBoundaryManager::handle_creation(), ug::IntersectCloseEdges(), mark(), ug::MarkFixedCreaseVertices(), ug::NumAssociatedFaces(), ug::GridPointsOrdering< TDomain, TAlgebra >::number_points_elementwise(), ug::NumSharedVertices(), ug::ObtainSimpleGrid(), ug::ObtainSimpleGrid_CollapseEdge(), ug::PartitionElements_RegularGrid(), ug::QualityGridGeneration(), ug::SmoothProjector::refinement_ends(), ug::RemoveDuplicates(), ug::HangingNodeRefiner_MultiGrid::restrict_selection_to_coarsen_families(), ug::SelectAreaBoundary(), ug::SelectInnerSelectionEdges(), ug::SelectInnerSelectionFaces(), ug::SelectInnerSelectionVertices(), ug::SelectShortPolychains(), ug::SerializeMultiGridElements(), ug::SimplifyPolylines(), ug::SplitIrregularManifoldSubset(), ug::SplitIrregularPolyChain(), ug::SwapEdge(), ug::TangentialSmooth(), ug::TangentialSmoothSimple(), ug::TranslateSelection(), ug::TriangleFill_SweepLine(), ug::VisitAreaBoundary(), ug::VTKOutput< TDim >::write_nodal_data_elementwise(), ug::VTKOutput< TDim >::write_nodal_values_elementwise(), ug::VTKOutput< TDim >::write_points_elementwise(), and ug::WriteLGM().
void ug::Grid::mark | ( | TIterator | begin, |
TIterator | end | ||
) |
|
inline |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkVRT, m_bMarking, and m_currentMark.
|
inline |
marks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkVOL, m_bMarking, and m_currentMark.
|
inline |
gives access to the grid's message-hub
Referenced by ug::MultiGridSubsetHandler::assign_grid(), ug::MGSelector::assign_grid(), ug::GlobalFracturedMediaRefiner::assign_grid(), ug::GlobalMultiGridRefiner::assign_grid(), ug::DegeneratedLayerManager< dim >::assign_middle_subset(), ug::MultiGrid::create_levels(), ug::DegeneratedLayerManager< dim >::DegeneratedLayerManager(), ug::DistributeGrid(), and ug::LoadGrid().
|
protected |
unregisters all observers. Call this method in destructors of derived classes.
If the derived class is an observer itself and if you don't want it to be notified on grid-destruction, e.g., because you call this method in the destructor of your derived class, then pass a pointer to your class through the initiator parameter to this function.
initiator | The initiator won't be notified about grid destruction |
References m_edgeObservers, m_faceObservers, m_gridObservers, m_vertexObservers, m_volumeObservers, and unregister_observer().
Referenced by ~Grid().
size_t ug::Grid::num |
References STATIC_ASSERT.
Referenced by ug::GridWriterUGX::add_elements_to_node(), ug::GridWriterUGX::add_grid(), ug::AdjustEdgeLength(), assign_grid(), ug::HangingNodeRefinerBase< TSelector >::assign_hnode_marks(), ug::AssignInnerAndBoundarySubsets(), ug::CheckForUnconnectedSides(), ug::CollectEdges(), ug::CollectEdgesSorted(), ug::CollectFaces(), ug::CollectFacesSorted(), ug::CollectVolumes(), ug::CreateEdgeSplitGeometry(), ug::OverlyingSubsetFinder< TDomain >::debug(), ug::ExportGridToTETGEN(), ug::ExtrudeLayersMixed(), ug::GenerateIcosphere(), ug::GridWriterUGX::init_grid_attachments(), ug::LaplacianSmooth(), ug::LiesOnBoundary(), ug::LoadGridFromMSH(), ug::LoadGridFromSTL(), ug::GridWriterVTU::new_piece(), ug::IRefiner::num_marked_elements(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ProjectToLimitPLoop(), ug::Refine(), reserve(), ug::SaveGridTo2DF(), ug::SaveGridToART(), ug::SaveGridToELE(), ug::SaveGridToNCDF(), ug::SaveGridToSTL(), ug::SaveGridToTXT(), ug::SelectElementsByIndex(), and ug::WriteDebugValuesToFile().
|
inline |
|
inline |
Referenced by ug::AdjustSubsetsForSimulation(), ug::CollapseEdge(), ug::EraseConnectingElements(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), get_side(), ug::MergeVertices(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::PerformTetrahedralization(), ug::HangingNodeRefiner_Grid::post_refine(), ug::HangingNodeRefiner_Grid::process_constraining_edge(), ug::HorizontalAnisotropyAdjuster< TAPos >::ref_marks_changed(), ug::StdHNodeAdjuster::ref_marks_changed(), ug::Refine(), ug::HangingNodeRefiner_Grid::refine_edge_with_normal_vertex(), and ug::vtk_export_ho().
|
inline |
Referenced by ug::KDTreeStatic< TPositionAttachment, numDimensions, TVector >::create_from_grid(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::RemoveDoubles(), ug::ResolveTriangleIntersections(), ug::SaveGridTo2DF(), ug::SaveGridToNCDF(), ug::SaveGridToTXT(), and ug::vtk_export_ho().
|
inline |
Referenced by ug::AdjustSubsetsForLgmNg(), ug::AdjustSubsetsForSimulation(), ug::CollapseEdge(), ug::CollectSurfaceNeighborsSorted(), ug::EraseConnectingElements(), ug::HangingNodeRefinerBase< TSelector >::mark_neighborhood(), ug::MergeVertices(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::HangingNodeRefiner_Grid::post_refine(), ug::HangingNodeRefiner_Grid::process_constraining_face(), ug::HorizontalAnisotropyAdjuster< TAPos >::ref_marks_changed(), ug::StdHNodeAdjuster::ref_marks_changed(), ug::Refine(), ug::HangingNodeRefiner_Grid::refine_face_with_normal_vertex(), ug::SaveGridToNCDF(), and ug::vtk_export_ho().
notifies the grid that two objects will be merged.
The grid forwards this notification to its GridObservers. The notification is not relevant for the grid itself.
References m_edgeObservers, and boost::target().
notifies the grid that two objects will be merged.
The grid forwards this notification to its GridObservers. The notification is not relevant for the grid itself.
References m_faceObservers, and boost::target().
notifies the grid that two objects will be merged.
The grid forwards this notification to its GridObservers. The notification is not relevant for the grid itself.
References m_vertexObservers, and boost::target().
Referenced by ug::CollapseEdge(), ug::MergeVertices(), and ug::RemoveDuplicates().
notifies the grid that two objects will be merged.
The grid forwards this notification to its GridObservers. The notification is not relevant for the grid itself.
References m_volumeObservers, and boost::target().
copies all elements and some attachments from the passed grid to this grid.
While all elements and the options are copied completely from the source-grid, the attachments are only copied if their pass-on behaviour is set to true. Attachments that were already attached to this grid are removed prior to copying if their pass-on behaviour was set to true. They will be kept otherwise. This is relevant to ensure that observers like GridSubsetHandler will work after the assignment.
References assign_grid(), clear_geometry(), ug::GRIDOPT_NONE, and set_options().
bool ug::Grid::option_is_enabled | ( | uint | option | ) | const |
see set_options for a description of valid parameters.
References m_options.
Referenced by ug::AdjustEdgeLength(), associated_edges_begin(), associated_edges_end(), associated_faces_begin(), associated_faces_end(), associated_volumes_begin(), associated_volumes_end(), autoenable_option(), ug::CalculateAngles(), ug::CalculateCreaseNormal(), ug::CalculateMaxAngle(), ug::CalculateMaxDihedral(), ug::CalculateMinAngle(), ug::CalculateMinDihedral(), ug::grid_unit_tests::CheckAssociatedEdgesOfVolumes(), ug::grid_unit_tests::CheckAssociatedVolumesOfEdges(), ug::CollectEdges(), ug::CollectEdgesSorted(), ug::CollectFaces(), ug::CollectFacesSorted(), ug::CollectNeighbors(), ug::CollectSurfaceNeighborsSorted(), ug::CollectVolumes(), ug::CreateSurfaceView(), ug::DelaunayInfo< TAAPos >::DelaunayInfo(), ug::ExpandFractures2d(), ug::ExpandFractures2dArte(), ug::ExpandFractures3d(), flip_orientation(), ug::ArteExpandFracs3D::generateVertexInfos(), get_edge(), get_face(), ug::GetAssociatedFaces(), ug::GetNeighbours(), ug::GetNextSectionOfPolyChain(), ug::ArteExpandFracs3D::initialize(), ug::IsBoundaryEdge(), ug::IsBoundaryEdge3D(), ug::IsBoundaryVertex1D(), ug::IsBoundaryVertex2D(), ug::IsBoundaryVertex3D(), ug::MergeVertices(), ug::NumAssociatedFaces(), ug::NumAssociatedVolumes(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::HangingNodeRefinerBase< TSelector >::perform_refinement(), ug::Refine(), ug::SaveGridToART(), ug::SelectAssociatedGridObjects(), ug::SelectSmoothEdgePath(), ug::SplitEdge(), ug::SplitIrregularManifoldSubset(), and ug::SplitIrregularPolyChain().
|
protected |
References get_attachment_data_index().
References ug::ElementStorage< TElem >::m_attachmentPipe, and m_vertexElementStorage.
Referenced by ug::CreateEdgeSplitGeometry(), and pass_on_values().
PeriodicBoundaryManager * ug::Grid::periodic_boundary_manager | ( | ) |
returns a pointer to the associated periodic boundary manager.
The method returns NULL, if no periodic boundary get_attachment_accessor for the given grid exists. Use ug::Grid::set_periodic_boundaries() to enable or disable periodic boundaries in a grid. You have to include "lib_grid/tools/periodic_boundary_manager.h" to access methods of the peridodic boundary manager.
References m_periodicBndMgr.
Referenced by ug::PeriodicAttachmentAccessor< TElem, TAttachment >::access(), ug::ElementDebugInfo_IMPL(), ug::mark_if_periodic(), and ug::bridge::periodicBoundary::print_all_identifications().
const PeriodicBoundaryManager * ug::Grid::periodic_boundary_manager | ( | ) | const |
returns a pointer to the associated periodic boundary manager.
The method returns NULL, if no periodic boundary get_attachment_accessor for the given grid exists. Use ug::Grid::set_periodic_boundaries() to enable or disable periodic boundaries in a grid. You have to include "lib_grid/tools/periodic_boundary_manager.h" to access methods of the peridodic boundary manager.
References m_periodicBndMgr.
registers the given element and replaces the old one. Calls pass_on_values.
References ug::CollectFaces(), ug::CollectVolumes(), ug::Edge::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, NOTIFY_OBSERVERS, NOTIFY_OBSERVERS_REVERSE, ug::Edge::set_vertex(), ug::EdgeVertices::vertex(), ug::VOLOPT_STORE_ASSOCIATED_EDGES, and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
registers the given element and replaces the old one. Calls pass_on_values.
References ug::CollectEdges(), ug::CollectVolumes(), ug::Face::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, LOG, NOTIFY_OBSERVERS, NOTIFY_OBSERVERS_REVERSE, ug::FaceVertices::num_vertices(), ug::Face::set_vertex(), ug::FaceVertices::vertices(), ug::VOLOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_FACES.
registers the given element and replaces the old one. Calls pass_on_values.
References ug::Vertex::container_section(), LOG, NOTIFY_OBSERVERS, NOTIFY_OBSERVERS_REVERSE, ug::FaceVertices::num_vertices(), ug::VolumeVertices::num_vertices(), ug::Edge::set_vertex(), ug::Face::set_vertex(), ug::Volume::set_vertex(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertices(), ug::VolumeVertices::vertices(), ug::VRTOPT_STORE_ASSOCIATED_EDGES, ug::VRTOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by create_and_replace().
registers the given element and replaces the old one. Calls pass_on_values.
References ug::CollectEdges(), ug::CollectFaces(), ug::Volume::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, LOG, NOTIFY_OBSERVERS, NOTIFY_OBSERVERS_REVERSE, ug::VolumeVertices::num_vertices(), ug::Volume::set_vertex(), ug::VolumeVertices::vertices(), ug::VOLOPT_STORE_ASSOCIATED_EDGES, ug::VOLOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
|
protected |
pDF specifies the element from which v derives its values
creates and removes connectivity data, as specified in optsNew.
References ug::CompareVertices(), ug::Edge::container_section(), ug::Face::edge_desc(), ug::Volume::edge_desc(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, GCM_PROFILE, GCM_PROFILE_END, GCM_PROFILE_FUNC, NOTIFY_OBSERVERS, ug::Face::num_edges(), ug::Volume::num_edges(), ug::EdgeVertices::vertex(), ug::VOLOPT_AUTOGENERATE_EDGES, ug::VOLOPT_AUTOGENERATE_FACES, ug::VOLOPT_STORE_ASSOCIATED_EDGES, and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
Referenced by create_by_cloning().
|
inline |
|
inline |
|
inline |
Referenced by ug::CollapseEdge(), create(), ug::AdaptiveRegularRefiner_MultiGrid::create_closure_elements_2d(), ug::AdaptiveRegularRefiner_MultiGrid::create_closure_elements_3d(), ug::CreateEdgeSplitGeometry(), ug::CreateQuadrilateral(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), ug::Refine(), ug::HangingNodeRefinerBase< TSelector >::refine_edge_with_normal_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_hanging_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_face_with_normal_vertex(), ug::HangingNodeRefinerBase< TSelector >::refine_volume_with_normal_vertex(), ug::ReplaceByQuadrilateral(), ug::ResolveEdgeFaceIntersection(), and ug::ResolveVertexFaceIntersection().
|
inline |
|
protected |
pDF specifies the element from which v derives its values
creates and removes connectivity data, as specified in optsNew.
References ug::CollectVolumes(), ug::Face::container_section(), ug::Face::create_edge(), ug::Face::edge_desc(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, GCM_PROFILE, GCM_PROFILE_END, GCM_PROFILE_FUNC, NOTIFY_OBSERVERS, ug::Face::num_edges(), ug::FaceVertices::num_vertices(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertices(), ug::VOLOPT_AUTOGENERATE_FACES, ug::VOLOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_FACES.
Referenced by create_by_cloning().
void ug::Grid::register_observer | ( | GridObserver * | observer, |
uint | observerType = OT_FULL_OBSERVER |
||
) |
observerType may be any or-combination of constants enumerated in ObserverType.
References ug::find(), m_edgeObservers, m_faceObservers, m_gridObservers, m_vertexObservers, m_volumeObservers, ug::OT_EDGE_OBSERVER, ug::OT_FACE_OBSERVER, ug::OT_GRID_OBSERVER, ug::OT_VERTEX_OBSERVER, and ug::OT_VOLUME_OBSERVER.
Referenced by ug::BoolMarker::assign_grid(), ug::GlobalFracturedMediaRefiner::assign_grid(), ug::GlobalMultiGridRefiner::assign_grid(), ug::DelaunayInfo< TAAPos >::DelaunayInfo(), ug::MultiGrid::init(), ug::ISelector::ISelector(), ug::ISubsetHandler::ISubsetHandler(), ug::PeriodicBoundaryManager::set_grid(), ug::DistributedGridManager::set_grid(), ug::ISelector::set_grid(), and ug::ISubsetHandler::set_grid().
|
protected |
pDF specifies the element from which v derives its values
creates and removes connectivity data, as specified in optsNew.
References ug::Vertex::container_section(), GCM_PROFILE, GCM_PROFILE_END, GCM_PROFILE_FUNC, and NOTIFY_OBSERVERS.
Referenced by create_by_cloning().
|
protected |
pDF specifies the element from which v derives its values
creates and removes connectivity data, as specified in optsNew.
References ug::Volume::container_section(), ug::Volume::create_edge(), ug::Volume::create_face(), ug::Volume::edge_desc(), ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::Volume::face_desc(), ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, GCM_PROFILE, GCM_PROFILE_END, GCM_PROFILE_FUNC, NOTIFY_OBSERVERS, ug::Volume::num_edges(), ug::Volume::num_faces(), ug::VolumeVertices::num_vertices(), ug::EdgeVertices::vertex(), ug::FaceDescriptor::vertex(), ug::VolumeVertices::vertices(), ug::VOLOPT_AUTOGENERATE_EDGES, ug::VOLOPT_AUTOGENERATE_FACES, ug::VOLOPT_STORE_ASSOCIATED_EDGES, ug::VOLOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by create_by_cloning().
|
protected |
References detach_from_edges(), detach_from_faces(), detach_from_vertices(), detach_from_volumes(), m_aMark, and m_currentMark.
Referenced by ~Grid().
Replace vrtOld with vrtNew.
WARNING: USE THIS METHOD WITH CARE! vrtOld and vrtNew have both to be registered vertices of this grid. vrtOld will be erased during this method. Make sure that no geometric object in the grid references both vrtOld and vrtNew. This method iterates through all geometric objects that are connected with vrtOld and replaces vrtOld by vrtNew in each. Connectivity information will be updated on the fly. Elements that reference both vrtOld and vrtNew will reference vrtNew two times after the completion of replace_vertex. This leads to degenerate elements and most likely to bad runtime behavior.
requires options in GRIDOPT_VERTEXCENTRIC_INTERCONNECTION.
References ug::CollectEdges(), ug::CollectFaces(), ug::CollectVolumes(), ug::Vertex::container_section(), ug::Edge::container_section(), ug::Face::container_section(), ug::Volume::container_section(), ug::Face::edge_desc(), ug::Volume::edge_desc(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::Volume::face_desc(), ug::FACEOPT_STORE_ASSOCIATED_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, ug::find(), NOTIFY_OBSERVERS_REVERSE, ug::Face::num_edges(), ug::Volume::num_edges(), ug::Volume::num_faces(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::VolumeVertices::num_vertices(), ug::FaceDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_num_vertices(), ug::Edge::set_vertex(), ug::Face::set_vertex(), ug::Volume::set_vertex(), ug::FaceDescriptor::set_vertex(), ug::VolumeDescriptor::set_vertex(), ug::EdgeDescriptor::set_vertices(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertices(), ug::FaceDescriptor::vertices(), ug::VolumeVertices::vertices(), ug::VOLOPT_STORE_ASSOCIATED_EDGES, ug::VOLOPT_STORE_ASSOCIATED_FACES, ug::VRTOPT_STORE_ASSOCIATED_EDGES, ug::VRTOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by ug::CollapseEdge().
checks if replace_vertex would be a valid operation
Checks if a call of replace_vertex with vertices vrtOld and vrtNew would lead to degenerate elements. If so false is returned. If not true is returned.
requires options in GRIDOPT_VERTEXCENTRIC_INTERCONNECTION.
References ug::FaceContains(), ug::VolumeContains(), ug::VRTOPT_STORE_ASSOCIATED_EDGES, ug::VRTOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
void ug::Grid::reserve | ( | size_t | num | ) |
Reserves memory for the creation of the given object type.
Calls to this method are optional, but can improve runtime. Specify the total number of objects which the grid should be capable to hold (if more are required, the grid will automatically adjust sizes)
References num(), and STATIC_ASSERT.
Referenced by ug::ExtrudeLayers(), ug::ExtrudeLayersMixed(), ug::ImportGridFromTETGEN(), ug::LoadGridFromSTL(), ug::GlobalFracturedMediaRefiner::perform_refinement(), ug::GlobalMultiGridRefiner::perform_refinement(), and ug::HangingNodeRefiner_MultiGrid::pre_refine().
|
protected |
References ug::AttachmentDataContainer< T >::get_elem(), m_aMark, m_currentMark, and ug::AttachmentDataContainer< T >::size().
Referenced by begin_marking().
void ug::Grid::set_options | ( | uint | options | ) |
you can pass any option enumerated in GridOptions or specify a custom option using an or-combination of the constants enumerated in VertexOptions, EdgeOptions, FaceOptions and VolumeOptions. See GridOptions for possible combinations.
References change_options().
Referenced by clear_geometry(), ug::GridReaderUGX::grid(), ug::GridReaderVTU::grid(), ug::LoadGridFromLGB(), and operator=().
void ug::Grid::set_parallel | ( | bool | parallel | ) |
tell the grid whether it will be used in a serial or in a parallel environment.
If parallelism is enabled, the grid will internally create a distributed grid manager, which will handle horizontal and vertical process interfaces. The manager can be queried through the method ug::Grid::distributed_grid_manager. If false is passed and a distributed grid manager already existed, it will be destroyed. parallelism is disabled by default.
References ug::DistributedGridManager::assign(), is_parallel(), m_distGridMgr, and UG_THROW.
Referenced by ug::MultiGrid::create_by_cloning().
void ug::Grid::set_periodic_boundaries | ( | bool | is_periodic | ) |
tell the grid whether it may contain periodic boundaries.
If the grid may contain periodic boundaries, it instantiate a PeriodicBoundaryManager.
References m_periodicBndMgr, and ug::PeriodicBoundaryManager::set_grid().
void ug::Grid::test_attached_linked_lists | ( | ) |
a temporary testing method
References UG_LOG.
|
inline |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkEDGE, and m_bMarking.
|
inline |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkFACE, and m_bMarking.
|
inline |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, ug::VERTEX, and ug::VOLUME.
Referenced by ug::FixEdgeOrientation(), ug::FixFaceOrientation(), ug::SimplifyPolylines(), and unmark().
void ug::Grid::unmark | ( | TIterator | begin, |
TIterator | end | ||
) |
|
inline |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkVRT, and m_bMarking.
|
inline |
unmarks the object. Calls are only valid between calls to Grid::begin_marking and Grid::end_marking.
Only pass objects that are contained by the grid.
References m_aaMarkVOL, and m_bMarking.
|
protected |
References ug::CollectFaces(), ug::CollectVolumes(), ug::Edge::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, ug::find(), NOTIFY_OBSERVERS_REVERSE, ug::EdgeVertices::vertex(), ug::VOLOPT_AUTOGENERATE_EDGES, ug::VOLOPT_AUTOGENERATE_FACES, ug::VOLOPT_STORE_ASSOCIATED_EDGES, and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
Referenced by erase().
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
References ug::CollectVolumes(), ug::Face::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, ug::find(), NOTIFY_OBSERVERS_REVERSE, ug::Face::num_edges(), ug::FaceVertices::num_vertices(), ug::FaceVertices::vertices(), ug::VOLOPT_AUTOGENERATE_FACES, ug::VOLOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_FACES.
Referenced by erase().
void ug::Grid::unregister_observer | ( | GridObserver * | observer | ) |
References ug::find(), m_edgeObservers, m_faceObservers, m_gridObservers, m_vertexObservers, and m_volumeObservers.
Referenced by ug::BoolMarker::assign_grid(), ug::GlobalFracturedMediaRefiner::assign_grid(), ug::GlobalMultiGridRefiner::assign_grid(), notify_and_clear_observers_on_grid_destruction(), ug::PeriodicBoundaryManager::set_grid(), ug::DistributedGridManager::set_grid(), ug::ISelector::set_grid(), ug::ISubsetHandler::set_grid(), ug::DistributedGridManager::~DistributedGridManager(), ug::GlobalFracturedMediaRefiner::~GlobalFracturedMediaRefiner(), ug::GlobalMultiGridRefiner::~GlobalMultiGridRefiner(), ug::ISelector::~ISelector(), and ug::ISubsetHandler::~ISubsetHandler().
|
protected |
References ug::Vertex::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_FACES, ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::FACEOPT_AUTOGENERATE_EDGES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, LOG, NOTIFY_OBSERVERS_REVERSE, ug::VOLOPT_AUTOGENERATE_EDGES, ug::VOLOPT_AUTOGENERATE_FACES, ug::VRTOPT_STORE_ASSOCIATED_EDGES, ug::VRTOPT_STORE_ASSOCIATED_FACES, and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by erase().
|
protected |
References ug::CollectFaces(), ug::Volume::container_section(), ug::EDGEOPT_STORE_ASSOCIATED_VOLUMES, ug::FACEOPT_STORE_ASSOCIATED_VOLUMES, ug::find(), NOTIFY_OBSERVERS_REVERSE, ug::Volume::num_edges(), ug::Volume::num_faces(), ug::VolumeVertices::num_vertices(), ug::VolumeVertices::vertices(), and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by erase().
size_t ug::Grid::vertex_fragmentation | ( | ) |
returns the number of unused vertex-data-entries.
References ug::ElementStorage< TElem >::m_attachmentPipe, m_vertexElementStorage, ug::AttachmentPipe< TElem, TElemHandler >::num_data_entries(), and ug::AttachmentPipe< TElem, TElemHandler >::num_elements().
|
protected |
References ug::EdgeVertices::vertex(), and ug::VRTOPT_STORE_ASSOCIATED_EDGES.
Referenced by associated_edges_begin(), and associated_edges_end().
|
protected |
References ug::FaceVertices::num_vertices(), ug::FaceVertices::vertices(), and ug::VRTOPT_STORE_ASSOCIATED_FACES.
Referenced by associated_faces_begin(), and associated_faces_end().
|
protected |
References ug::VolumeVertices::num_vertices(), ug::VolumeVertices::vertices(), and ug::VRTOPT_STORE_ASSOCIATED_VOLUMES.
Referenced by associated_volumes_begin(), and associated_volumes_end().
|
inline |
Referenced by ug::GlobalFracturedMediaRefiner::adjust_marks(), ug::AdjustEdgeLength(), ug::CollectInnerVertices(), ug::grid_intersection_impl::DebugSave2d(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExportGridToUG_2D(), ug::LoadGridFromGRDECL(), ug::LoadGridFromTXT(), ug::MarkForRefinement_All(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ProjectToLimitLoop(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::ResolveTriangleIntersections(), ug::HangingNodeRefinerBase< TSelector >::save_marks_to_file(), ug::SaveCoarsenMarksToFile(), ug::SaveGridTo2DF(), ug::SaveGridToNCDF(), ug::SaveGridToOBJ(), ug::SaveGridToTXT(), and ug::SnapToHorizontalRaster().
|
inline |
Referenced by ug::GlobalFracturedMediaRefiner::adjust_marks(), ug::AdjustEdgeLength(), ug::CollectInnerVertices(), ug::grid_intersection_impl::DebugSave2d(), ug::ExportGridToSMESH(), ug::ExportGridToTETGEN(), ug::ExportGridToUG_2D(), ug::LoadGridFromGRDECL(), ug::LoadGridFromTXT(), ug::MarkForRefinement_All(), ug::PerformRetetrahedralization(), ug::PerformTetrahedralization(), ug::ProjectToLimitLoop(), ug::ProjectToLimitPLoop(), ug::ProjectToLimitSubdivBoundary(), ug::ResolveTriangleIntersections(), ug::HangingNodeRefinerBase< TSelector >::save_marks_to_file(), ug::SaveCoarsenMarksToFile(), ug::SaveGridTo2DF(), ug::SaveGridToNCDF(), ug::SaveGridToOBJ(), ug::SaveGridToTXT(), and ug::SnapToHorizontalRaster().
|
protected |
|
protected |
size_t ug::Grid::volume_fragmentation | ( | ) |
returns the number of unused volume-data-entries.
References ug::ElementStorage< TElem >::m_attachmentPipe, m_volumeElementStorage, ug::AttachmentPipe< TElem, TElemHandler >::num_data_entries(), and ug::AttachmentPipe< TElem, TElemHandler >::num_elements().
|
protected |
|
protected |
|
protected |
|
inline |
|
inline |
|
protected |
|
protected |
Referenced by associated_edges_begin(), associated_edges_end(), flip_orientation(), and get_edge().
|
protected |
Referenced by associated_edges_begin(), and associated_edges_end().
|
protected |
Referenced by associated_edges_begin(), associated_edges_end(), flip_orientation(), and get_edge().
|
protected |
Referenced by associated_faces_begin(), and associated_faces_end().
|
protected |
|
protected |
Referenced by associated_faces_begin(), and associated_faces_end().
|
protected |
Referenced by associated_faces_begin(), associated_faces_end(), flip_orientation(), and get_face().
|
protected |
Referenced by init_marks(), is_marked(), mark(), and unmark().
|
protected |
Referenced by init_marks(), is_marked(), mark(), and unmark().
|
protected |
Referenced by init_marks(), is_marked(), mark(), and unmark().
|
protected |
Referenced by init_marks(), is_marked(), mark(), and unmark().
|
protected |
Referenced by associated_volumes_begin(), and associated_volumes_end().
|
protected |
Referenced by associated_volumes_begin(), and associated_volumes_end().
|
protected |
Referenced by associated_volumes_begin(), and associated_volumes_end().
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by init_marks(), remove_marks(), and reset_marks().
|
protected |
|
protected |
|
protected |
Referenced by begin_marking(), clear_marks(), end_marking(), init_marks(), mark(), and unmark().
|
protected |
Referenced by begin_marking(), Grid(), init_marks(), is_marked(), mark(), remove_marks(), and reset_marks().
|
protected |
Referenced by distributed_grid_manager(), is_parallel(), set_parallel(), and ~Grid().
|
protected |
Referenced by edge_fragmentation(), get_grid_objects(), and pass_on_values().
|
protected |
|
protected |
Referenced by face_fragmentation(), get_grid_objects(), and pass_on_values().
|
protected |
|
protected |
Referenced by notify_and_clear_observers_on_grid_destruction(), register_observer(), and unregister_observer().
|
protected |
Referenced by Grid().
|
protected |
Referenced by change_options(), disable_options(), enable_options(), get_options(), Grid(), and option_is_enabled().
|
protected |
Referenced by has_periodic_boundaries(), periodic_boundary_manager(), set_periodic_boundaries(), and ~Grid().
|
protected |
Referenced by assign_grid(), get_grid_objects(), pass_on_values(), and vertex_fragmentation().
|
protected |
|
protected |
Referenced by get_grid_objects(), pass_on_values(), and volume_fragmentation().
|
protected |