ug4
ug::THangingNodeRefiner< MultiGrid > Class Reference

#include <hanging_node_refiner_t.h>

+ Inheritance diagram for ug::THangingNodeRefiner< MultiGrid >:

Public Member Functions

 THangingNodeRefiner (MultiGrid &mg, SPRefinementProjector projector=SPNULL)
 
 THangingNodeRefiner (SPRefinementProjector projector=SPNULL)
 
- Public Member Functions inherited from ug::HangingNodeRefiner_MultiGrid
virtual bool adaptivity_supported () const
 returns whether the refiner is able to perform adaptive refinement More...
 
virtual void assign_grid (MultiGrid &mg)
 
virtual bool coarsening_supported () const
 returns true, if the refiner supports coarsening. More...
 
virtual Gridget_associated_grid ()
 DEPRECIATED! Use grid(). Has to return the associated grid. Pure virtual. More...
 
virtual Gridgrid ()
 Returns the grid associated with the refiner. More...
 
virtual void grid_to_be_destroyed (Grid *grid)
 
 HangingNodeRefiner_MultiGrid (MultiGrid &mg, SPRefinementProjector projector=SPNULL)
 
 HangingNodeRefiner_MultiGrid (SPRefinementProjector projector=SPNULL)
 
virtual MultiGridmulti_grid ()
 
virtual ~HangingNodeRefiner_MultiGrid ()
 
- Public Member Functions inherited from ug::HangingNodeRefinerBase< MGSelector >
void add_ref_mark_adjuster (SPIRefMarkAdjuster adjuster)
 Add a refmark adjuster, which will be called while marks are adjusted during refinement / coarsening. More...
 
virtual void clear_marks ()
 clears all marks. Default implementation is empty More...
 
 HangingNodeRefinerBase (SPRefinementProjector projector=SPNULL)
 
void mark (const TIterator &iterBegin, const TIterator &iterEnd, RefinementMark refMark=RM_REFINE)
 marks all elements between iterBegin and iterEnd. More...
 
virtual bool mark (Edge *e, RefinementMark refMark=RM_REFINE)
 
virtual bool mark (Face *f, RefinementMark refMark=RM_REFINE)
 
virtual bool mark (GridObject *o, RefinementMark refMark=RM_REFINE)
 marks the specified geometric object More...
 
virtual bool mark (Vertex *v, RefinementMark refMark=RM_REFINE)
 Marks an element for refinement. Default implementation is empty. More...
 
virtual bool mark (Volume *v, RefinementMark refMark=RM_REFINE)
 
virtual void mark_neighborhood (size_t numIterations, RefinementMark refMark, bool sideNbrsOnly)
 Marks the neighborhood of the current selection. More...
 
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. More...
 
virtual ~HangingNodeRefinerBase ()
 
void enable_node_dependency_order_1 (bool bEnable)
 enables or disables node-dependency-order-1. More...
 
bool node_dependency_order_1_enabled ()
 enables or disables node-dependency-order-1. More...
 
virtual bool mark (Vertex *v, RefinementMark refMark=RM_REFINE)
 Marks a element for refinement. More...
 
virtual bool mark (Edge *e, RefinementMark refMark=RM_REFINE)
 Marks a element for refinement. More...
 
virtual bool mark (Face *f, RefinementMark refMark=RM_REFINE)
 Marks a element for refinement. More...
 
virtual bool mark (Volume *v, RefinementMark refMark=RM_REFINE)
 Marks a element for refinement. More...
 
virtual RefinementMark get_mark (Vertex *v) const
 Returns the mark of a given element. More...
 
virtual RefinementMark get_mark (Edge *e) const
 Returns the mark of a given element. More...
 
virtual RefinementMark get_mark (Face *f) const
 Returns the mark of a given element. More...
 
virtual RefinementMark get_mark (Volume *v) const
 Returns the mark of a given element. More...
 
- Public Member Functions inherited from ug::IRefiner
bool coarsen ()
 Performs coarsening on the elements marked RM_COARSEN. More...
 
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 More...
 
int get_local_edge_mark (Volume *vol, Edge *e) const
 returns the local mark of the specified edge of the given volume More...
 
int get_local_face_mark (Volume *vol, Face *f) const
 returns the local mark of the specified face of the given volume More...
 
virtual RefinementMark get_mark (GridObject *o) const
 returns the mark of the specified geometric object More...
 
 IRefiner (SPRefinementProjector projector=SPNULL)
 
virtual bool local_marks_supported () const
 returns true, if the refiner supports local marks. More...
 
template<class TIterator >
void mark (const TIterator &iterBegin, const TIterator &iterEnd, RefinementMark refMark=RM_REFINE)
 marks all elements between iterBegin and iterEnd. More...
 
virtual bool mark (GridObject *o, RefinementMark refMark=RM_REFINE)
 marks the specified geometric object More...
 
void mark_neighborhood (size_t numIterations)
 marks the neighborhood of currently marked elements. More...
 
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 More...
 
size_t num_marked_edges (std::vector< int > &numMarkedEdgesOut)
 returns the number of (globally) marked edges on all levels of the hierarchy More...
 
size_t num_marked_elements ()
 returns the number of (globally) marked grid-objects of highest dimension More...
 
size_t num_marked_elements (std::vector< int > &numMarkedElemsOut)
 returns the number of (globally) marked grid-objects of highest dimension More...
 
size_t num_marked_faces ()
 returns the number of (globally) marked faces on all levels of the hierarchy More...
 
size_t num_marked_faces (std::vector< int > &numMarkedFacesOut)
 returns the number of (globally) marked faces on all levels of the hierarchy More...
 
size_t num_marked_volumes ()
 returns the number of (globally) marked volumes on all levels of the hierarchy More...
 
size_t num_marked_volumes (std::vector< int > &numMarkedVolsOut)
 returns the number of (globally) marked volumes on all levels of the hierarchy More...
 
SPRefinementProjector projector ()
 
void refine ()
 Performs refinement on the marked elements. More...
 
void set_adjusted_marks_debug_filename (const char *filename)
 sets a filename to which adjusted marks are saved during refinement / coarsening More...
 
void set_projector (SPRefinementProjector projector)
 
virtual ~IRefiner ()
 
virtual void mark_local (Face *e, int mark)
 Marks a face or volume for local refinement. More...
 
virtual void mark_local (Volume *e, int mark)
 Marks a face or volume for local refinement. More...
 
virtual int get_local_mark (Face *e) const
 returns the local mark of the specified face or volume. More...
 
virtual int get_local_mark (Volume *e) const
 returns the local mark of the specified face or volume. More...
 
void adaption_begins ()
 notifies all listeners of the associated message-hub, that adaption begins / ends. More...
 
void adaption_ends ()
 notifies all listeners of the associated message-hub, that adaption begins / ends. More...
 
- Public Member Functions inherited from ug::GridObserver
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

Additional Inherited Members

- Public Types inherited from ug::HangingNodeRefiner_MultiGrid
typedef HangingNodeRefinerBase< MGSelectorBaseClass
 
enum  HNodeCoarsenMarks {
  HNCM_FIRST = HNRM_MAX + 1 , HNCM_NO_NBRS , HNCM_NONE , HNCM_PARTIAL ,
  HNCM_REPLACE , HNCM_ALL , HNCM_INVALID , HNCM_UNKNOWN
}
 
- Public Types inherited from ug::HangingNodeRefinerBase< MGSelector >
enum  HNodeRefMarks
 
typedef MGSelector selector_t
 
- Protected Types inherited from ug::HangingNodeRefinerBase< MGSelector >
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
 
- Protected Member Functions inherited from ug::HangingNodeRefiner_MultiGrid
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. More...
 
virtual bool contains_faces ()
 allows to check whether a distributed grid contains faces More...
 
virtual bool contains_volumes ()
 allows to check whether a distributed grid contains volumes More...
 
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. More...
 
virtual void num_marked_edges_local (std::vector< int > &numMarkedEdgesOut)
 returns the number of (globally) marked edges on this level of the hierarchy More...
 
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 More...
 
virtual void num_marked_volumes_local (std::vector< int > &numMarkedVolsOut)
 returns the number of (globally) marked volumes on this level of the hierarchy More...
 
virtual bool one_proc_true (bool localProcTrue)
 
virtual bool perform_coarsening ()
 performs coarsening on the elements marked with RM_COARSEN. More...
 
virtual void post_coarsen ()
 called after elements have been removed in coarsening More...
 
virtual void pre_coarsen ()
 called before elements are removed in coarsening More...
 
virtual void pre_refine ()
 creates required vertices in higher levels. More...
 
virtual bool refinement_is_allowed (Edge *elem)
 a callback that allows to deny refinement of special edges More...
 
virtual bool refinement_is_allowed (Face *elem)
 a callback that allows to deny refinement of special faces More...
 
virtual bool refinement_is_allowed (Vertex *elem)
 a callback that allows to deny refinement of special vertices More...
 
virtual bool refinement_is_allowed (Volume *elem)
 a callback that allows to deny refinement of special volumes More...
 
void save_coarsen_marks_to_file (ISelector &sel, const char *filename)
 
void set_grid (MultiGrid *mg)
 performs registration and deregistration at a grid. More...
 
virtual void process_constraining_edge (ConstrainingEdge *cge)
 calls base implementation and replaces cge with a normal edge. More...
 
virtual void refine_edge_with_normal_vertex (Edge *e, Vertex **newCornerVrts=NULL)
 calls base implementation and replaces cge with a normal edge. More...
 
virtual void refine_edge_with_hanging_vertex (Edge *e, Vertex **newCornerVrts=NULL)
 calls base implementation and replaces cge with a normal edge. More...
 
virtual void refine_face_with_normal_vertex (Face *f, Vertex **newCornerVrts=NULL)
 calls base implementation and replaces cge with a normal edge. More...
 
virtual void refine_face_with_hanging_vertex (Face *f, Vertex **newCornerVrts=NULL)
 calls base implementation and replaces cge with a normal edge. More...
 
virtual void refine_volume_with_normal_vertex (Volume *v, Vertex **newVolumeVrts=NULL)
 calls base implementation and replaces cge with a normal edge. More...
 
virtual Vertexget_center_vertex (Edge *e)
 Returns the vertex associated with the edge. More...
 
virtual void set_center_vertex (Edge *e, Vertex *v)
 Associates a vertex with the edge. More...
 
virtual Vertexget_center_vertex (Face *f)
 Returns the vertex associated with the face. More...
 
virtual void set_center_vertex (Face *f, Vertex *v)
 Associates a vertex with the face. More...
 
template<class TElem >
void collect_child_corners (std::vector< Vertex * > &cornersOut, TElem *elem)
 collects corner vertices and fills them into the associated vector More...
 
virtual void restrict_selection_to_surface_coarsen_elements ()
 Makes sure that only surface elements are marked and that only coarsen marks are used. More...
 
virtual void restrict_selection_to_coarsen_families ()
 Deselects all elements which have an unselected sibling. More...
 
template<class TElem >
void restrict_selection_to_surface_coarsen_elements ()
 Deselects all non-surface elements and all elements not marked with RM_COARSEN. More...
 
template<class TElem >
void restrict_selection_to_coarsen_families ()
 Only complete families (all siblings are selected) may be coarsened. More...
 
virtual void collect_objects_for_coarsen (bool scheduleCoarseningBeginsMessage=false)
 adjusts the selection marks to those specified in HNodeCoarsenMarks. More...
 
- Protected Member Functions inherited from ug::HangingNodeRefinerBase< MGSelector >
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. More...
 
virtual bool continue_collect_objects_for_refine (bool continueRequired)
 
MGSelectorget_refmark_selector ()
 returns the selector which is internally used to mark elements. More...
 
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. More...
 
virtual void post_refine ()
 
bool remove_coarsen_marks ()
 removes coarsen marks from the selection More...
 
void remove_hmark (TElem *elem, uint mark)
 
void set_grid (typename TSelector::grid_type *grid)
 performs registration and deregistration at a grid. More...
 
virtual void process_constrained_vertex (ConstrainedVertex *cdv)
 called to refine the specified element. More...
 
virtual void process_constrained_edge (ConstrainedEdge *cde)
 called to refine the specified element. More...
 
virtual void process_constrained_face (ConstrainedFace *cdf)
 called to refine the specified element. More...
 
virtual void process_constraining_face (ConstrainingFace *cgf)
 called to refine the specified element. More...
 
- Protected Member Functions inherited from ug::IRefiner
void set_message_hub (SPMessageHub msgHub)
 sets the message hub. More...
 
- Protected Attributes inherited from ug::HangingNodeRefinerBase< MGSelector >
std::vector< SPIRefMarkAdjusterm_refMarkAdjusters
 
MGSelector m_selMarkedElements
 
- Protected Attributes inherited from ug::IRefiner
bool m_adaptionIsActive
 
std::string m_adjustedMarksDebugFilename
 
bool m_debuggingEnabled
 
SPMessageHub m_messageHub
 
int m_msgIdAdaption
 
SPRefinementProjector m_projector
 

Constructor & Destructor Documentation

◆ THangingNodeRefiner() [1/2]

◆ THangingNodeRefiner() [2/2]


The documentation for this class was generated from the following file: