|
| | THangingNodeRefiner (MultiGrid &mg, SPRefinementProjector projector=SPNULL) |
| |
| | THangingNodeRefiner (SPRefinementProjector projector=SPNULL) |
| |
| virtual bool | adaptivity_supported () const |
| | returns whether the refiner is able to perform adaptive refinement
|
| |
| virtual void | assign_grid (MultiGrid &mg) |
| |
| virtual bool | coarsening_supported () const |
| | returns true, if the refiner supports coarsening.
|
| |
| virtual Grid * | get_associated_grid () |
| | DEPRECIATED! Use grid(). Has to return the associated grid. Pure virtual.
|
| |
| virtual Grid * | grid () |
| | Returns the grid associated with the refiner.
|
| |
| virtual void | grid_to_be_destroyed (Grid *grid) |
| |
| | HangingNodeRefiner_MultiGrid (MultiGrid &mg, SPRefinementProjector projector=SPNULL) |
| |
| | HangingNodeRefiner_MultiGrid (SPRefinementProjector projector=SPNULL) |
| |
| virtual MultiGrid * | multi_grid () |
| |
| virtual | ~HangingNodeRefiner_MultiGrid () |
| |
| void | add_ref_mark_adjuster (SPIRefMarkAdjuster adjuster) |
| | Add a refmark adjuster, which will be called while marks are adjusted during refinement / coarsening.
|
| |
| virtual void | clear_marks () |
| | clears all marks. Default implementation is empty
|
| |
| | HangingNodeRefinerBase (SPRefinementProjector projector=SPNULL) |
| |
| void | mark (const TIterator &iterBegin, const TIterator &iterEnd, RefinementMark refMark=RM_REFINE) |
| | marks all elements between iterBegin and iterEnd.
|
| |
| virtual bool | mark (Edge *e, RefinementMark refMark=RM_REFINE) |
| | Marks an element for refinement. Default implementation is empty.
|
| |
| virtual bool | mark (Face *f, RefinementMark refMark=RM_REFINE) |
| | Marks an element for refinement. Default implementation is empty.
|
| |
| virtual bool | mark (GridObject *o, RefinementMark refMark=RM_REFINE) |
| | marks the specified geometric object
|
| |
| virtual bool | mark (Vertex *v, RefinementMark refMark=RM_REFINE) |
| | Marks an element for refinement. Default implementation is empty.
|
| |
| virtual bool | mark (Volume *v, RefinementMark refMark=RM_REFINE) |
| | Marks an element for refinement. Default implementation is empty.
|
| |
| virtual void | mark_neighborhood (size_t numIterations, RefinementMark refMark, bool sideNbrsOnly) |
| | Marks the neighborhood of the current selection.
|
| |
| bool | marked_adaptive (TElem *elem) const |
| |
| bool | marked_coarsen (TElem *elem) const |
| |
| bool | marked_refine (Edge *elem) const |
| |
| bool | marked_refine (TElem *elem) const |
| |
| bool | marked_regular (TElem *elem) const |
| |
| virtual bool | save_marks_to_file (const char *filename) |
| | Writes the associated grid and marks to a file. Pure virtual.
|
| |
| virtual | ~HangingNodeRefinerBase () |
| |
| void | enable_node_dependency_order_1 (bool bEnable) |
| | enables or disables node-dependency-order-1.
|
| |
| bool | node_dependency_order_1_enabled () |
| | enables or disables node-dependency-order-1.
|
| |
| virtual bool | mark (Vertex *v, RefinementMark refMark=RM_REFINE) |
| | Marks a element for refinement.
|
| |
| virtual bool | mark (Edge *e, RefinementMark refMark=RM_REFINE) |
| | Marks a element for refinement.
|
| |
| virtual bool | mark (Face *f, RefinementMark refMark=RM_REFINE) |
| | Marks a element for refinement.
|
| |
| virtual bool | mark (Volume *v, RefinementMark refMark=RM_REFINE) |
| | Marks a element for refinement.
|
| |
| virtual RefinementMark | get_mark (Vertex *v) const |
| | Returns the mark of a given element.
|
| |
| virtual RefinementMark | get_mark (Edge *e) const |
| | Returns the mark of a given element.
|
| |
| virtual RefinementMark | get_mark (Face *f) const |
| | Returns the mark of a given element.
|
| |
| virtual RefinementMark | get_mark (Volume *v) const |
| | Returns the mark of a given element.
|
| |
| bool | coarsen () |
| | Performs coarsening on the elements marked RM_COARSEN.
|
| |
| bool | debugging_enabled () const |
| |
| void | enable_debugging (bool enable) |
| |
| int | get_local_edge_mark (Face *f, Edge *e) const |
| | returns the local mark of the specified edge of the given face
|
| |
| int | get_local_edge_mark (Volume *vol, Edge *e) const |
| | returns the local mark of the specified edge of the given volume
|
| |
| int | get_local_face_mark (Volume *vol, Face *f) const |
| | returns the local mark of the specified face of the given volume
|
| |
| virtual RefinementMark | get_mark (GridObject *o) const |
| | returns the mark of the specified geometric object
|
| |
| | IRefiner (SPRefinementProjector projector=SPNULL) |
| |
| virtual bool | local_marks_supported () const |
| | returns true, if the refiner supports local marks.
|
| |
| template<class TIterator > |
| void | mark (const TIterator &iterBegin, const TIterator &iterEnd, RefinementMark refMark=RM_REFINE) |
| | marks all elements between iterBegin and iterEnd.
|
| |
| void | mark_neighborhood (size_t numIterations) |
| | marks the neighborhood of currently marked elements.
|
| |
| template<class TElem > |
| bool | marked_closure (TElem *elem) const |
| |
| template<class TElem > |
| bool | marked_full (TElem *elem) const |
| |
| template<class TElem > |
| bool | marked_local (TElem *elem) const |
| |
| size_t | num_marked_edges () |
| | returns the number of (globally) marked edges on all levels of the hierarchy
|
| |
| size_t | num_marked_edges (std::vector< int > &numMarkedEdgesOut) |
| | returns the number of (globally) marked edges on all levels of the hierarchy
|
| |
| size_t | num_marked_elements () |
| | returns the number of (globally) marked grid-objects of highest dimension
|
| |
| size_t | num_marked_elements (std::vector< int > &numMarkedElemsOut) |
| | returns the number of (globally) marked grid-objects of highest dimension
|
| |
| size_t | num_marked_faces () |
| | returns the number of (globally) marked faces on all levels of the hierarchy
|
| |
| size_t | num_marked_faces (std::vector< int > &numMarkedFacesOut) |
| | returns the number of (globally) marked faces on all levels of the hierarchy
|
| |
| size_t | num_marked_volumes () |
| | returns the number of (globally) marked volumes on all levels of the hierarchy
|
| |
| size_t | num_marked_volumes (std::vector< int > &numMarkedVolsOut) |
| | returns the number of (globally) marked volumes on all levels of the hierarchy
|
| |
| SPRefinementProjector | projector () |
| |
| void | refine () |
| | Performs refinement on the marked elements.
|
| |
| void | set_adjusted_marks_debug_filename (const char *filename) |
| | sets a filename to which adjusted marks are saved during refinement / coarsening
|
| |
| void | set_projector (SPRefinementProjector projector) |
| |
| virtual | ~IRefiner () |
| |
| virtual void | mark_local (Face *e, int mark) |
| | Marks a face or volume for local refinement.
|
| |
| virtual void | mark_local (Volume *e, int mark) |
| | Marks a face or volume for local refinement.
|
| |
| virtual int | get_local_mark (Face *e) const |
| | returns the local mark of the specified face or volume.
|
| |
| virtual int | get_local_mark (Volume *e) const |
| | returns the local mark of the specified face or volume.
|
| |
| void | adaption_begins () |
| | notifies all listeners of the associated message-hub, that adaption begins / ends.
|
| |
| void | adaption_ends () |
| | notifies all listeners of the associated message-hub, that adaption begins / ends.
|
| |
| virtual void | elements_to_be_cleared (Grid *grid) |
| |
| virtual | ~GridObserver () |
| |
| virtual void | vertex_created (Grid *grid, Vertex *vrt, GridObject *pParent=NULL, bool replacesParent=false) |
| | Notified whenever a new element of the given type is created in the given grid.
|
| |
| virtual void | edge_created (Grid *grid, Edge *e, GridObject *pParent=NULL, bool replacesParent=false) |
| | Notified whenever a new element of the given type is created in the given grid.
|
| |
| virtual void | face_created (Grid *grid, Face *f, GridObject *pParent=NULL, bool replacesParent=false) |
| | Notified whenever a new element of the given type is created in the given grid.
|
| |
| virtual void | volume_created (Grid *grid, Volume *vol, GridObject *pParent=NULL, bool replacesParent=false) |
| | Notified whenever a new element of the given type is created in the given grid.
|
| |
| virtual void | vertex_to_be_erased (Grid *grid, Vertex *vrt, Vertex *replacedBy=NULL) |
| | Notified whenever an element of the given type is erased from the given grid.
|
| |
| virtual void | edge_to_be_erased (Grid *grid, Edge *e, Edge *replacedBy=NULL) |
| | Notified whenever an element of the given type is erased from the given grid.
|
| |
| virtual void | face_to_be_erased (Grid *grid, Face *f, Face *replacedBy=NULL) |
| | Notified whenever an element of the given type is erased from the given grid.
|
| |
| virtual void | volume_to_be_erased (Grid *grid, Volume *vol, Volume *replacedBy=NULL) |
| | Notified whenever an element of the given type is erased from the given grid.
|
| |
| virtual void | vertices_to_be_merged (Grid *grid, Vertex *target, Vertex *elem1, Vertex *elem2) |
| | Notified when two elements of the same type are going to be merged.
|
| |
| virtual void | edges_to_be_merged (Grid *grid, Edge *target, Edge *elem1, Edge *elem2) |
| | Notified when two elements of the same type are going to be merged.
|
| |
| virtual void | faces_to_be_merged (Grid *grid, Face *target, Face *elem1, Face *elem2) |
| | Notified when two elements of the same type are going to be merged.
|
| |
| virtual void | volumes_to_be_merged (Grid *grid, Volume *target, Volume *elem1, Volume *elem2) |
| | Notified when two elements of the same type are going to be merged.
|
| |
|
| typedef HangingNodeRefinerBase< MGSelector > | BaseClass |
| |
| enum | HNodeCoarsenMarks {
HNCM_FIRST = HNRM_MAX + 1
, HNCM_NO_NBRS
, HNCM_NONE
, HNCM_PARTIAL
,
HNCM_REPLACE
, HNCM_ALL
, HNCM_INVALID
, HNCM_UNKNOWN
} |
| |
| enum | HNodeRefMarks |
| |
| typedef MGSelector | selector_t |
| |
| typedef TSelector::template traits< Edge >::iterator | sel_edge_iter |
| |
| typedef TSelector::template traits< Face >::iterator | sel_face_iter |
| |
| typedef TSelector::template traits< Volume >::iterator | sel_vol_iter |
| |
| typedef TSelector::template traits< Vertex >::iterator | sel_vrt_iter |
| |
| virtual void | assign_hnode_marks () |
| |
| virtual void | broadcast_marks_horizontally (bool vertices, bool edges, bool faces, bool allowDeselection=false) |
| |
| virtual void | broadcast_marks_vertically (bool vertices, bool edges, bool faces, bool volumes, bool allowDeselection=false) |
| |
| virtual bool | contains_edges () |
| | called to check, whether another iteration of collect_objects_for_coarsen has to be performed.
|
| |
| virtual bool | contains_faces () |
| | allows to check whether a distributed grid contains faces
|
| |
| virtual bool | contains_volumes () |
| | allows to check whether a distributed grid contains volumes
|
| |
| virtual void | copy_marks_to_vmasters (bool vertices, bool edges, bool faces, bool volumes) |
| |
| virtual void | copy_marks_to_vslaves (bool vertices, bool edges, bool faces, bool volumes) |
| |
| void | debug_save (ISelector &sel, const char *filename) |
| | temporary method, which will be removed when debugging is done.
|
| |
| virtual void | num_marked_edges_local (std::vector< int > &numMarkedEdgesOut) |
| | returns the number of (globally) marked edges on this level of the hierarchy
|
| |
| template<class TElem > |
| void | num_marked_elems (std::vector< int > &numMarkedElemsOut) |
| |
| virtual void | num_marked_faces_local (std::vector< int > &numMarkedFacesOut) |
| | returns the number of (globally) marked faces on this level of the hierarchy
|
| |
| virtual void | num_marked_volumes_local (std::vector< int > &numMarkedVolsOut) |
| | returns the number of (globally) marked volumes on this level of the hierarchy
|
| |
| virtual bool | one_proc_true (bool localProcTrue) |
| |
| virtual bool | perform_coarsening () |
| | performs coarsening on the elements marked with RM_COARSEN.
|
| |
| virtual void | post_coarsen () |
| | called after elements have been removed in coarsening
|
| |
| virtual void | pre_coarsen () |
| | called before elements are removed in coarsening
|
| |
| virtual void | pre_refine () |
| | creates required vertices in higher levels.
|
| |
| virtual bool | refinement_is_allowed (Edge *elem) |
| | a callback that allows to deny refinement of special edges
|
| |
| virtual bool | refinement_is_allowed (Face *elem) |
| | a callback that allows to deny refinement of special faces
|
| |
| virtual bool | refinement_is_allowed (Vertex *elem) |
| | a callback that allows to deny refinement of special vertices
|
| |
| virtual bool | refinement_is_allowed (Volume *elem) |
| | a callback that allows to deny refinement of special volumes
|
| |
| void | save_coarsen_marks_to_file (ISelector &sel, const char *filename) |
| |
| void | set_grid (MultiGrid *mg) |
| | performs registration and deregistration at a grid.
|
| |
| virtual void | process_constraining_edge (ConstrainingEdge *cge) |
| | calls base implementation and replaces cge with a normal edge.
|
| |
| virtual void | refine_edge_with_normal_vertex (Edge *e, Vertex **newCornerVrts=NULL) |
| | calls base implementation and replaces cge with a normal edge.
|
| |
| virtual void | refine_edge_with_hanging_vertex (Edge *e, Vertex **newCornerVrts=NULL) |
| | calls base implementation and replaces cge with a normal edge.
|
| |
| virtual void | refine_face_with_normal_vertex (Face *f, Vertex **newCornerVrts=NULL) |
| | calls base implementation and replaces cge with a normal edge.
|
| |
| virtual void | refine_face_with_hanging_vertex (Face *f, Vertex **newCornerVrts=NULL) |
| | calls base implementation and replaces cge with a normal edge.
|
| |
| virtual void | refine_volume_with_normal_vertex (Volume *v, Vertex **newVolumeVrts=NULL) |
| | calls base implementation and replaces cge with a normal edge.
|
| |
| virtual Vertex * | get_center_vertex (Edge *e) |
| | Returns the vertex associated with the edge.
|
| |
| virtual void | set_center_vertex (Edge *e, Vertex *v) |
| | Associates a vertex with the edge.
|
| |
| virtual Vertex * | get_center_vertex (Face *f) |
| | Returns the vertex associated with the face.
|
| |
| virtual void | set_center_vertex (Face *f, Vertex *v) |
| | Associates a vertex with the face.
|
| |
| template<class TElem > |
| void | collect_child_corners (std::vector< Vertex * > &cornersOut, TElem *elem) |
| | collects corner vertices and fills them into the associated vector
|
| |
| virtual void | restrict_selection_to_surface_coarsen_elements () |
| | Makes sure that only surface elements are marked and that only coarsen marks are used.
|
| |
| virtual void | restrict_selection_to_coarsen_families () |
| | Deselects all elements which have an unselected sibling.
|
| |
| template<class TElem > |
| void | restrict_selection_to_surface_coarsen_elements () |
| | Deselects all non-surface elements and all elements not marked with RM_COARSEN.
|
| |
| template<class TElem > |
| void | restrict_selection_to_coarsen_families () |
| | Only complete families (all siblings are selected) may be coarsened.
|
| |
| virtual void | collect_objects_for_coarsen (bool scheduleCoarseningBeginsMessage=false) |
| | adjusts the selection marks to those specified in HNodeCoarsenMarks.
|
| |
| void | add_hmark (TElem *elem, HNodeRefMarks mark) |
| |
| bool | adjusting_ref_marks () const |
| |
| virtual void | collect_objects_for_refine () |
| | marks unmarked elements that have to be refined due to marked neighbors.
|
| |
| virtual bool | continue_collect_objects_for_refine (bool continueRequired) |
| |
| MGSelector & | get_refmark_selector () |
| | returns the selector which is internally used to mark elements.
|
| |
| bool | is_marked (Edge *e) |
| |
| bool | is_marked (Face *f) |
| |
| bool | is_marked (Vertex *v) |
| |
| bool | is_marked (Volume *v) |
| |
| bool | marked_to_constrained (TElem *elem) const |
| |
| bool | marked_to_constraining (TElem *elem) const |
| |
| bool | marked_to_normal (TElem *elem) const |
| |
| void | perform_refinement () |
| | performs refinement on the marked elements.
|
| |
| virtual void | post_refine () |
| |
| bool | remove_coarsen_marks () |
| | removes coarsen marks from the selection
|
| |
| void | remove_hmark (TElem *elem, uint mark) |
| |
| void | set_grid (typename TSelector::grid_type *grid) |
| | performs registration and deregistration at a grid.
|
| |
| virtual void | process_constrained_vertex (ConstrainedVertex *cdv) |
| | called to refine the specified element.
|
| |
| virtual void | process_constrained_edge (ConstrainedEdge *cde) |
| | called to refine the specified element.
|
| |
| virtual void | process_constrained_face (ConstrainedFace *cdf) |
| | called to refine the specified element.
|
| |
| virtual void | process_constraining_face (ConstrainingFace *cgf) |
| | called to refine the specified element.
|
| |
| void | set_message_hub (SPMessageHub msgHub) |
| | sets the message hub.
|
| |
| std::vector< SPIRefMarkAdjuster > | m_refMarkAdjusters |
| |
| MGSelector | m_selMarkedElements |
| |
| bool | m_adaptionIsActive |
| |
| std::string | m_adjustedMarksDebugFilename |
| |
| bool | m_debuggingEnabled |
| |
| SPMessageHub | m_messageHub |
| |
| int | m_msgIdAdaption |
| |
| SPRefinementProjector | m_projector |
| |