ug4
ug::HangingNodeRefiner_Grid Class Reference

Specialization of ug::HangingNodeRefiner for ug::Grid. More...

#include <hanging_node_refiner_grid.h>

+ Inheritance diagram for ug::HangingNodeRefiner_Grid:

Public Types

typedef HangingNodeRefinerBase< SelectorBaseClass
 
- Public Types inherited from ug::HangingNodeRefinerBase< Selector >
enum  HNodeRefMarks
 
typedef Selector selector_t
 

Public Member Functions

virtual bool adaptivity_supported () const
 returns whether the refiner is able to perform adaptive refinement More...
 
virtual void assign_grid (Grid &grid)
 
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 int get_local_mark (Face *f) const
 returns the local mark of the specified face or volume. More...
 
virtual int get_local_mark (Volume *f) const
 returns the local mark of the specified face or volume. More...
 
virtual Gridgrid ()
 Returns the grid associated with the refiner. More...
 
virtual void grid_to_be_destroyed (Grid *grid)
 
 HangingNodeRefiner_Grid (Grid &grid, SPRefinementProjector projector=SPNULL)
 
 HangingNodeRefiner_Grid (SPRefinementProjector projector=SPNULL)
 
virtual bool local_marks_supported () const
 returns true, if the refiner supports local marks. More...
 
virtual bool mark (Edge *e, RefinementMark refMark=RM_REFINE)
 Marks an edge for refinement (ignores RM_COARSEN). More...
 
virtual bool mark (Face *f, RefinementMark refMark=RM_REFINE)
 Marks a face for refinement (ignores RM_COARSEN). More...
 
virtual bool mark (Vertex *v, RefinementMark refMark=RM_REFINE)
 Marks a vertex for refinement (ignores RM_COARSEN). More...
 
virtual bool mark (Volume *v, RefinementMark refMark=RM_REFINE)
 Marks a volume for refinement (ignores RM_COARSEN). More...
 
virtual void mark_local (Face *f, int localMark)
 Marks a face or volume for local refinement. More...
 
virtual void mark_local (Volume *f, int localMark)
 Marks a face or volume for local refinement. More...
 
virtual ~HangingNodeRefiner_Grid ()
 
- Public Member Functions inherited from ug::HangingNodeRefinerBase< Selector >
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 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)
 
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 ()
 
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...
 

Protected Member Functions

void attach_local_marks ()
 
virtual void collect_objects_for_refine ()
 marks unmarked elements that have to be refined due to marked neighbors. More...
 
virtual Vertexget_center_vertex (Edge *e)
 Returns the vertex associated with the edge. More...
 
virtual Vertexget_center_vertex (Face *f)
 Returns the vertex associated with the face. 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 void post_refine ()
 erases unused refined elements More...
 
virtual void process_constraining_edge (ConstrainingEdge *cge)
 called to refine the specified element. More...
 
virtual void process_constraining_face (ConstrainingFace *cgf)
 called to refine the specified element. More...
 
virtual void refine_edge_with_normal_vertex (Edge *e, Vertex **newCornerVrts=NULL)
 called to refine the specified element. More...
 
virtual void refine_face_with_normal_vertex (Face *f, Vertex **newCornerVrts=NULL)
 called to refine the specified element. More...
 
virtual void refine_volume_with_normal_vertex (Volume *v, Vertex **newVolumeVrts=NULL)
 called to refine the specified element. More...
 
virtual void set_center_vertex (Edge *e, Vertex *v)
 Associates a vertex with the edge. More...
 
virtual void set_center_vertex (Face *f, Vertex *v)
 Associates a vertex with the face. More...
 
void set_grid (Grid *grid)
 performs registration and deregistration at a grid. More...
 
- Protected Member Functions inherited from ug::HangingNodeRefinerBase< Selector >
void add_hmark (TElem *elem, HNodeRefMarks mark)
 
bool adjusting_ref_marks () const
 
virtual void assign_hnode_marks ()
 
virtual bool continue_collect_objects_for_refine (bool continueRequired)
 
Selectorget_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 pre_refine ()
 
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...
 
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 refine_edge_with_hanging_vertex (Edge *e, Vertex **newCornerVrts=NULL)
 called to refine the specified element. More...
 
virtual void process_constrained_face (ConstrainedFace *cdf)
 called to refine the specified element. More...
 
virtual void refine_face_with_hanging_vertex (Face *f, Vertex **newCornerVrts=NULL)
 called to refine the specified element. More...
 
- Protected Member Functions inherited from ug::IRefiner
virtual bool perform_coarsening ()
 Called by coarsen(). Derived classes sould implement their coarsen algorithm here. More...
 
void set_message_hub (SPMessageHub msgHub)
 sets the message hub. More...
 

Private Attributes

MultiElementAttachmentAccessor< AIntm_aaLocalMark
 
Grid::EdgeAttachmentAccessor< AVertexm_aaVertexEDGE
 
Grid::FaceAttachmentAccessor< AVertexm_aaVertexFACE
 
AInt m_aLocalMark
 
AVertex m_aVertex
 
Gridm_pGrid
 

Additional Inherited Members

- Protected Types inherited from ug::HangingNodeRefinerBase< Selector >
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 Attributes inherited from ug::HangingNodeRefinerBase< Selector >
std::vector< SPIRefMarkAdjusterm_refMarkAdjusters
 
Selector 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
 

Detailed Description

Specialization of ug::HangingNodeRefiner for ug::Grid.

This class should be used, if hanging node refinement shall be applied on a flat grid (ug::Grid).

Marked elements will be replaced by their newly created children.

Take a look at ug::HangingNodeRefinerBase for a more in-depth documentation.

See also
ug::HangingNodeRefinerBase, ug::HangingNodeRefiner_Grid

Member Typedef Documentation

◆ BaseClass

Constructor & Destructor Documentation

◆ HangingNodeRefiner_Grid() [1/2]

ug::HangingNodeRefiner_Grid::HangingNodeRefiner_Grid ( SPRefinementProjector  projector = SPNULL)

◆ HangingNodeRefiner_Grid() [2/2]

ug::HangingNodeRefiner_Grid::HangingNodeRefiner_Grid ( Grid grid,
SPRefinementProjector  projector = SPNULL 
)

References grid(), and set_grid().

◆ ~HangingNodeRefiner_Grid()

ug::HangingNodeRefiner_Grid::~HangingNodeRefiner_Grid ( )
virtual

References set_grid().

Member Function Documentation

◆ adaptivity_supported()

virtual bool ug::HangingNodeRefiner_Grid::adaptivity_supported ( ) const
inlinevirtual

returns whether the refiner is able to perform adaptive refinement

pure virtual!

Implements ug::IRefiner.

◆ assign_grid()

void ug::HangingNodeRefiner_Grid::assign_grid ( Grid grid)
virtual

References grid(), and set_grid().

◆ attach_local_marks()

◆ coarsening_supported()

virtual bool ug::HangingNodeRefiner_Grid::coarsening_supported ( ) const
inlinevirtual

returns true, if the refiner supports coarsening.

pure virtual!

Implements ug::IRefiner.

◆ collect_objects_for_refine()

void ug::HangingNodeRefiner_Grid::collect_objects_for_refine ( )
protectedvirtual

marks unmarked elements that have to be refined due to marked neighbors.

all elements that have to be refined will be written to the passed queues. Note that this will most likely be more elements than just the marked ones.

This method is virtual to allow derivates to mark additional elements as required. Normally a a derived class will first call the method of its this class and the perform its own operations.

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::Selector::begin(), ug::HangingNodeRefinerBase< Selector >::collect_objects_for_refine(), ug::ConstrainingEdge::constrained_vertex(), ug::ConstrainingFace::constrained_vertex(), ug::Selector::end(), ug::HangingNodeRefinerBase< Selector >::get_refmark_selector(), ug::ConstrainingEdge::num_constrained_vertices(), ug::ConstrainingFace::num_constrained_vertices(), and set_center_vertex().

◆ get_associated_grid()

virtual Grid* ug::HangingNodeRefiner_Grid::get_associated_grid ( )
inlinevirtual

DEPRECIATED! Use grid(). Has to return the associated grid. Pure virtual.

Implements ug::IRefiner.

References m_pGrid.

◆ get_center_vertex() [1/2]

Vertex * ug::HangingNodeRefiner_Grid::get_center_vertex ( Edge e)
protectedvirtual

Returns the vertex associated with the edge.

Implements ug::HangingNodeRefinerBase< Selector >.

References m_aaVertexEDGE.

◆ get_center_vertex() [2/2]

Vertex * ug::HangingNodeRefiner_Grid::get_center_vertex ( Face f)
protectedvirtual

Returns the vertex associated with the face.

Implements ug::HangingNodeRefinerBase< Selector >.

References m_aaVertexFACE.

◆ get_local_mark() [1/2]

int ug::HangingNodeRefiner_Grid::get_local_mark ( Face e) const
virtual

returns the local mark of the specified face or volume.

If the i-th edge of the element shall be refined, it holds true: 'get_local_mark(e) & 1<<i != 0'

Reimplemented from ug::IRefiner.

References m_aaLocalMark.

◆ get_local_mark() [2/2]

int ug::HangingNodeRefiner_Grid::get_local_mark ( Volume e) const
virtual

returns the local mark of the specified face or volume.

If the i-th edge of the element shall be refined, it holds true: 'get_local_mark(e) & 1<<i != 0'

Reimplemented from ug::IRefiner.

References m_aaLocalMark.

◆ grid()

virtual Grid* ug::HangingNodeRefiner_Grid::grid ( )
inlinevirtual

Returns the grid associated with the refiner.

Pure virtual. Specify this method in derived classes!

Implements ug::IRefiner.

References m_pGrid.

Referenced by assign_grid(), HangingNodeRefiner_Grid(), post_refine(), and set_grid().

◆ grid_to_be_destroyed()

void ug::HangingNodeRefiner_Grid::grid_to_be_destroyed ( Grid grid)
virtual

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References set_grid().

◆ local_marks_supported()

virtual bool ug::HangingNodeRefiner_Grid::local_marks_supported ( ) const
inlinevirtual

returns true, if the refiner supports local marks.

Reimplemented from ug::IRefiner.

◆ mark() [1/4]

bool ug::HangingNodeRefiner_Grid::mark ( Edge e,
RefinementMark  refMark = RM_REFINE 
)
virtual

Marks an edge for refinement (ignores RM_COARSEN).

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::HangingNodeRefinerBase< Selector >::mark(), and ug::RM_COARSEN.

◆ mark() [2/4]

bool ug::HangingNodeRefiner_Grid::mark ( Face f,
RefinementMark  refMark = RM_REFINE 
)
virtual

Marks a face for refinement (ignores RM_COARSEN).

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::HangingNodeRefinerBase< Selector >::mark(), and ug::RM_COARSEN.

◆ mark() [3/4]

bool ug::HangingNodeRefiner_Grid::mark ( Vertex v,
RefinementMark  refMark = RM_REFINE 
)
virtual

Marks a vertex for refinement (ignores RM_COARSEN).

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::HangingNodeRefinerBase< Selector >::mark(), and ug::RM_COARSEN.

◆ mark() [4/4]

bool ug::HangingNodeRefiner_Grid::mark ( Volume v,
RefinementMark  refMark = RM_REFINE 
)
virtual

Marks a volume for refinement (ignores RM_COARSEN).

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::HangingNodeRefinerBase< Selector >::mark(), and ug::RM_COARSEN.

◆ mark_local() [1/2]

void ug::HangingNodeRefiner_Grid::mark_local ( Face e,
int  mark 
)
virtual

Marks a face or volume for local refinement.

The passed mark is an or combination. If the i-th edge of the element shall be refined, it should hold true: 'mark & 1<<i != 0'. The passed element will also receive the RM_LOCAL flag.

Note
local-marks differ from mark(e, RM_CLOSURE). The former will refine an element according to the marks of associated edges. Elements marked with mark_local, however, will only be refined according to their local mark.

Reimplemented from ug::IRefiner.

References ug::HangingNodeRefinerBase< Selector >::adjusting_ref_marks(), attach_local_marks(), m_aaLocalMark, ug::HangingNodeRefinerBase< Selector >::mark(), ug::IRefiner::marked_local(), ug::RM_LOCAL, and ug::RM_NONE.

◆ mark_local() [2/2]

void ug::HangingNodeRefiner_Grid::mark_local ( Volume e,
int  mark 
)
virtual

Marks a face or volume for local refinement.

The passed mark is an or combination. If the i-th edge of the element shall be refined, it should hold true: 'mark & 1<<i != 0'. The passed element will also receive the RM_LOCAL flag.

Note
local-marks differ from mark(e, RM_CLOSURE). The former will refine an element according to the marks of associated edges. Elements marked with mark_local, however, will only be refined according to their local mark.

Reimplemented from ug::IRefiner.

References ug::HangingNodeRefinerBase< Selector >::adjusting_ref_marks(), attach_local_marks(), m_aaLocalMark, ug::HangingNodeRefinerBase< Selector >::mark(), ug::IRefiner::marked_local(), ug::RM_LOCAL, and ug::RM_NONE.

◆ num_marked_edges_local()

void ug::HangingNodeRefiner_Grid::num_marked_edges_local ( std::vector< int > &  numMarkedEdgesOut)
protectedvirtual

returns the number of (globally) marked edges on this level of the hierarchy

Implements ug::IRefiner.

◆ num_marked_elems()

template<class TElem >
void ug::HangingNodeRefiner_Grid::num_marked_elems ( std::vector< int > &  numMarkedElemsOut)
protected

◆ num_marked_faces_local()

void ug::HangingNodeRefiner_Grid::num_marked_faces_local ( std::vector< int > &  numMarkedFacesOut)
protectedvirtual

returns the number of (globally) marked faces on this level of the hierarchy

Implements ug::IRefiner.

◆ num_marked_volumes_local()

void ug::HangingNodeRefiner_Grid::num_marked_volumes_local ( std::vector< int > &  numMarkedVolsOut)
protectedvirtual

returns the number of (globally) marked volumes on this level of the hierarchy

Implements ug::IRefiner.

◆ post_refine()

◆ process_constraining_edge()

void ug::HangingNodeRefiner_Grid::process_constraining_edge ( ConstrainingEdge cge)
protectedvirtual

called to refine the specified element.

Refines the element. Corner vertices of the newly created element can be specified through newCornerVrts. newCornerVrts = NULL (default) means, that the corner vertices of the original element shall be taken.

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::Grid::erase(), m_pGrid, ug::Grid::num_faces(), and ug::HangingNodeRefinerBase< Selector >::process_constraining_edge().

◆ process_constraining_face()

void ug::HangingNodeRefiner_Grid::process_constraining_face ( ConstrainingFace cgf)
protectedvirtual

called to refine the specified element.

Refines the element. Corner vertices of the newly created element can be specified through newCornerVrts. newCornerVrts = NULL (default) means, that the corner vertices of the original element shall be taken.

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::Grid::erase(), m_pGrid, ug::Grid::num_volumes(), and ug::HangingNodeRefinerBase< Selector >::process_constraining_face().

◆ refine_edge_with_normal_vertex()

void ug::HangingNodeRefiner_Grid::refine_edge_with_normal_vertex ( Edge e,
Vertex **  newCornerVrts = NULL 
)
protectedvirtual

called to refine the specified element.

Refines the element. Corner vertices of the newly created element can be specified through newCornerVrts. newCornerVrts = NULL (default) means, that the corner vertices of the original element shall be taken.

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::Grid::erase(), m_pGrid, ug::Grid::num_faces(), and ug::HangingNodeRefinerBase< Selector >::refine_edge_with_normal_vertex().

◆ refine_face_with_normal_vertex()

void ug::HangingNodeRefiner_Grid::refine_face_with_normal_vertex ( Face f,
Vertex **  newCornerVrts = NULL 
)
protectedvirtual

called to refine the specified element.

Refines the element. Corner vertices of the newly created element can be specified through newCornerVrts. newCornerVrts = NULL (default) means, that the corner vertices of the original element shall be taken.

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::Grid::erase(), m_pGrid, ug::Grid::num_volumes(), and ug::HangingNodeRefinerBase< Selector >::refine_face_with_normal_vertex().

◆ refine_volume_with_normal_vertex()

void ug::HangingNodeRefiner_Grid::refine_volume_with_normal_vertex ( Volume v,
Vertex **  newVolumeVrts = NULL 
)
protectedvirtual

called to refine the specified element.

Refines the element. Corner vertices of the newly created element can be specified through newCornerVrts. newCornerVrts = NULL (default) means, that the corner vertices of the original element shall be taken.

Reimplemented from ug::HangingNodeRefinerBase< Selector >.

References ug::Grid::erase(), m_pGrid, and ug::HangingNodeRefinerBase< Selector >::refine_volume_with_normal_vertex().

◆ set_center_vertex() [1/2]

void ug::HangingNodeRefiner_Grid::set_center_vertex ( Edge e,
Vertex v 
)
protectedvirtual

Associates a vertex with the edge.

Implements ug::HangingNodeRefinerBase< Selector >.

References m_aaVertexEDGE.

Referenced by collect_objects_for_refine().

◆ set_center_vertex() [2/2]

void ug::HangingNodeRefiner_Grid::set_center_vertex ( Face f,
Vertex v 
)
protectedvirtual

Associates a vertex with the face.

Implements ug::HangingNodeRefinerBase< Selector >.

References m_aaVertexFACE.

◆ set_grid()

void ug::HangingNodeRefiner_Grid::set_grid ( Grid grid)
protected

performs registration and deregistration at a grid.

Initializes all grid related variables. call set_grid(NULL) to unregister the observer from a grid.

Please note that though the base grid features a set_grid method, it is not declared virtual. This is because we want to call it during construction and destruction.

References ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces_dv(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_volumes(), grid(), m_aaLocalMark, m_aaVertexEDGE, m_aaVertexFACE, m_aLocalMark, m_aVertex, m_pGrid, and ug::HangingNodeRefinerBase< Selector >::set_grid().

Referenced by assign_grid(), grid_to_be_destroyed(), HangingNodeRefiner_Grid(), and ~HangingNodeRefiner_Grid().

Member Data Documentation

◆ m_aaLocalMark

MultiElementAttachmentAccessor<AInt> ug::HangingNodeRefiner_Grid::m_aaLocalMark
private

◆ m_aaVertexEDGE

Grid::EdgeAttachmentAccessor<AVertex> ug::HangingNodeRefiner_Grid::m_aaVertexEDGE
private

◆ m_aaVertexFACE

Grid::FaceAttachmentAccessor<AVertex> ug::HangingNodeRefiner_Grid::m_aaVertexFACE
private

◆ m_aLocalMark

AInt ug::HangingNodeRefiner_Grid::m_aLocalMark
private

Referenced by attach_local_marks(), and set_grid().

◆ m_aVertex

AVertex ug::HangingNodeRefiner_Grid::m_aVertex
private

Referenced by set_grid().

◆ m_pGrid


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