ug4
ug::IRefiner Class Referenceabstract

The refiner interface allows to mark elements for refinement and to call refine. More...

#include <refiner_interface.h>

+ Inheritance diagram for ug::IRefiner:

Public Member Functions

virtual bool adaptivity_supported () const =0
 returns whether the refiner is able to perform adaptive refinement More...
 
virtual void clear_marks ()
 clears all marks. Default implementation is empty More...
 
bool coarsen ()
 Performs coarsening on the elements marked RM_COARSEN. More...
 
virtual bool coarsening_supported () const =0
 returns true, if the refiner supports coarsening. More...
 
bool debugging_enabled () const
 
void enable_debugging (bool enable)
 
virtual Gridget_associated_grid ()=0
 DEPRECIATED! Use grid(). Has to return the associated grid. Pure virtual. More...
 
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...
 
virtual Gridgrid ()=0
 Returns the grid associated with the refiner. 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...
 
virtual void mark_neighborhood (size_t numIterations, RefinementMark refMark, bool sideNbrsOnly)
 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...
 
virtual bool save_marks_to_file (const char *filename)=0
 Writes the associated grid and marks to a file. Pure virtual. 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 bool mark (Vertex *v, RefinementMark refMark=RM_REFINE)
 Marks an element for refinement. Default implementation is empty. More...
 
virtual bool mark (Edge *e, RefinementMark refMark=RM_REFINE)
 Marks an element for refinement. Default implementation is empty. More...
 
virtual bool mark (Face *f, RefinementMark refMark=RM_REFINE)
 Marks an element for refinement. Default implementation is empty. More...
 
virtual bool mark (Volume *v, RefinementMark refMark=RM_REFINE)
 Marks an element for refinement. Default implementation is empty. More...
 
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...
 
virtual RefinementMark get_mark (Vertex *v) const
 Returns the mark of a given element. Default returns RM_REFINE. More...
 
virtual RefinementMark get_mark (Edge *e) const
 Returns the mark of a given element. Default returns RM_REFINE. More...
 
virtual RefinementMark get_mark (Face *f) const
 Returns the mark of a given element. Default returns RM_REFINE. More...
 
virtual RefinementMark get_mark (Volume *v) const
 Returns the mark of a given element. Default returns RM_REFINE. 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...
 

Protected Member Functions

virtual void num_marked_edges_local (std::vector< int > &numMarkedEdgesOut)=0
 returns the number of locally marked edges on all levels of the hierarchy More...
 
virtual void num_marked_faces_local (std::vector< int > &numMarkedFacesOut)=0
 returns the number of locally marked faces on all levels of the hierarchy More...
 
virtual void num_marked_volumes_local (std::vector< int > &numMarkedVolsOut)=0
 returns the number of locally marked volumes on all levels of the hierarchy More...
 
virtual bool perform_coarsening ()
 Called by coarsen(). Derived classes sould implement their coarsen algorithm here. More...
 
virtual void perform_refinement ()=0
 called by refine(). Derived classes should implement their refinement algorithm here. More...
 
void set_message_hub (SPMessageHub msgHub)
 sets the message hub. More...
 

Protected Attributes

bool m_adaptionIsActive
 
std::string m_adjustedMarksDebugFilename
 
bool m_debuggingEnabled
 
SPMessageHub m_messageHub
 
int m_msgIdAdaption
 
SPRefinementProjector m_projector
 

Detailed Description

The refiner interface allows to mark elements for refinement and to call refine.

A refiner always operates on a grid. A grid thus has to be assigned before refinement starts. Please take a look at the specializations of IRefiner, for more information.

Constructor & Destructor Documentation

◆ IRefiner()

ug::IRefiner::IRefiner ( SPRefinementProjector  projector = SPNULL)
inline

◆ ~IRefiner()

virtual ug::IRefiner::~IRefiner ( )
inlinevirtual

Member Function Documentation

◆ adaption_begins()

void ug::IRefiner::adaption_begins ( )

notifies all listeners of the associated message-hub, that adaption begins / ends.

While this message is not important to the refiner itself, it may be important to listeners of the associated grid's message-hub.

References adaptivity_supported(), ug::GMAT_GLOBAL_ADAPTION_BEGINS, ug::GMAT_HNODE_ADAPTION_BEGINS, m_adaptionIsActive, m_messageHub, UG_THROW, and SmartPtr< T, FreePolicy >::valid().

Referenced by coarsen().

◆ adaption_ends()

void ug::IRefiner::adaption_ends ( )

notifies all listeners of the associated message-hub, that adaption begins / ends.

While this message is not important to the refiner itself, it may be important to listeners of the associated grid's message-hub.

References adaptivity_supported(), ug::GMAT_HNODE_ADAPTION_ENDS, m_messageHub, UG_THROW, and SmartPtr< T, FreePolicy >::valid().

Referenced by coarsen().

◆ adaptivity_supported()

virtual bool ug::IRefiner::adaptivity_supported ( ) const
pure virtual

returns whether the refiner is able to perform adaptive refinement

pure virtual!

Implemented in ug::HangingNodeRefiner_MultiGrid, ug::HangingNodeRefiner_Grid, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

Referenced by adaption_begins(), and adaption_ends().

◆ clear_marks()

virtual void ug::IRefiner::clear_marks ( )
inlinevirtual

clears all marks. Default implementation is empty

Reimplemented in ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

◆ coarsen()

bool ug::IRefiner::coarsen ( )

Performs coarsening on the elements marked RM_COARSEN.

Note that coarsening is not supported by all refiners. Normally only MultiGrid-Refiner do support coarsening.

coarsen returns false, if no elements have been coarsened, true if at least one has been coarsened.

Internally calls the virtual method 'perform_coarsening'

References adaption_begins(), adaption_ends(), coarsening_supported(), m_adaptionIsActive, m_messageHub, PCL_DEBUG_BARRIER_ALL, perform_coarsening(), PROFILE_BEGIN_GROUP, UG_THROW, and SmartPtr< T, FreePolicy >::valid().

Referenced by ug::MarkForCoarsenening_SurfaceLayer().

◆ coarsening_supported()

virtual bool ug::IRefiner::coarsening_supported ( ) const
pure virtual

returns true, if the refiner supports coarsening.

pure virtual!

Implemented in ug::HangingNodeRefiner_MultiGrid, ug::HangingNodeRefiner_Grid, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

Referenced by coarsen().

◆ debugging_enabled()

◆ enable_debugging()

void ug::IRefiner::enable_debugging ( bool  enable)
inline

References m_debuggingEnabled.

◆ get_associated_grid()

virtual Grid* ug::IRefiner::get_associated_grid ( )
pure virtual

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

Implemented in ug::HangingNodeRefiner_MultiGrid, ug::HangingNodeRefiner_Grid, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

Referenced by ug::MarkAnisotropic_LongEdges().

◆ get_local_edge_mark() [1/2]

int ug::IRefiner::get_local_edge_mark ( Face f,
Edge e 
) const

returns the local mark of the specified edge of the given face

Note that this is not necessarily the mark of the edge itself. Instead the mark of the edge as induced by the local mark of the face is returned. The method also considers marks RM_FULL and RM_CLOSURE.

References get_local_mark(), ug::GetEdgeIndex(), marked_closure(), marked_full(), marked_local(), and UG_COND_THROW.

Referenced by ug::LocalMarkAdjuster::ref_marks_changed().

◆ get_local_edge_mark() [2/2]

int ug::IRefiner::get_local_edge_mark ( Volume vol,
Edge e 
) const

returns the local mark of the specified edge of the given volume

Note that this is not necessarily the mark of the edge itself. Instead the mark of the edge as induced by the local mark of the volume is returned. The method also considers marks RM_FULL and RM_CLOSURE.

References get_local_mark(), ug::GetEdgeIndex(), marked_closure(), marked_full(), marked_local(), and UG_COND_THROW.

◆ get_local_face_mark()

int ug::IRefiner::get_local_face_mark ( Volume vol,
Face f 
) const

returns the local mark of the specified face of the given volume

Note that this is not necessarily the mark of the face itself. Instead the mark of the face as induced by the local mark of the volume is returned. The method also considers marks RM_FULL and RM_CLOSURE.

References ug::Grid::get_edge(), ug::Volume::get_edge_index_from_vertices(), get_local_mark(), ug::GetFaceIndex(), ug::GetVertexIndex(), grid(), marked_closure(), marked_full(), marked_local(), ug::MAX_FACE_VERTICES, ug::Face::num_edges(), ug::FaceVertices::num_vertices(), UG_COND_THROW, and ug::FaceVertices::vertices().

Referenced by ug::LocalMarkAdjuster::ref_marks_changed().

◆ get_local_mark() [1/2]

virtual int ug::IRefiner::get_local_mark ( Face e) const
inlinevirtual

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 in ug::HangingNodeRefiner_Grid.

Referenced by get_local_edge_mark(), get_local_face_mark(), and ug::LocalMarkAdjuster::ref_marks_changed().

◆ get_local_mark() [2/2]

virtual int ug::IRefiner::get_local_mark ( Volume e) const
inlinevirtual

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 in ug::HangingNodeRefiner_Grid.

◆ get_mark() [1/5]

virtual RefinementMark ug::IRefiner::get_mark ( Edge e) const
inlinevirtual

Returns the mark of a given element. Default returns RM_REFINE.

Reimplemented in ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

References ug::RM_REFINE.

◆ get_mark() [2/5]

virtual RefinementMark ug::IRefiner::get_mark ( Face f) const
inlinevirtual

Returns the mark of a given element. Default returns RM_REFINE.

Reimplemented in ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

References ug::RM_REFINE.

◆ get_mark() [3/5]

RefinementMark ug::IRefiner::get_mark ( GridObject o) const
virtual

returns the mark of the specified geometric object

The default implementation casts the object to a more concrete type (Vertex, Edge, Face, Volume) and calls the appropriate get_mark method.

References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, get_mark(), ug::RM_NONE, ug::VERTEX, and ug::VOLUME.

◆ get_mark() [4/5]

◆ get_mark() [5/5]

virtual RefinementMark ug::IRefiner::get_mark ( Volume v) const
inlinevirtual

Returns the mark of a given element. Default returns RM_REFINE.

Reimplemented in ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

References ug::RM_REFINE.

◆ grid()

◆ local_marks_supported()

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

returns true, if the refiner supports local marks.

Reimplemented in ug::HangingNodeRefiner_Grid.

◆ mark() [1/6]

template<class TIterator >
void ug::IRefiner::mark ( const TIterator &  iterBegin,
const TIterator &  iterEnd,
RefinementMark  refMark = RM_REFINE 
)
inline

marks all elements between iterBegin and iterEnd.

the value-type of TIterator has to be a pointer to a type derived from either Edge, Face or Volume.

References mark().

◆ mark() [2/6]

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

Marks an element for refinement. Default implementation is empty.

Reimplemented in ug::HangingNodeRefiner_Grid, ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

◆ mark() [3/6]

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

Marks an element for refinement. Default implementation is empty.

Reimplemented in ug::HangingNodeRefiner_Grid, ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

◆ mark() [4/6]

bool ug::IRefiner::mark ( GridObject o,
RefinementMark  refMark = RM_REFINE 
)
virtual

marks the specified geometric object

The default implementation casts the object to a more concrete type (Vertex, Edge, Face, Volume) and calls the appropriate mark method.

References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, mark(), ug::VERTEX, and ug::VOLUME.

◆ mark() [5/6]

◆ mark() [6/6]

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

Marks an element for refinement. Default implementation is empty.

Reimplemented in ug::HangingNodeRefiner_Grid, ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

◆ mark_local() [1/2]

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

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 in ug::HangingNodeRefiner_Grid.

References UG_THROW.

Referenced by ug::LocalMarkAdjuster::ref_marks_changed().

◆ mark_local() [2/2]

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

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 in ug::HangingNodeRefiner_Grid.

References UG_THROW.

◆ mark_neighborhood() [1/2]

void ug::IRefiner::mark_neighborhood ( size_t  numIterations)
inline

marks the neighborhood of currently marked elements.

In each step direct neighbors of currently marked elements are selected. The number of iterations thus specifies the width of the neighborhood which will be marked. Calls mark_neighborhood(numIterations, RM_NONE, false)

References ug::RM_NONE.

Referenced by ug::MarkNeighborsForAnisotropicRefinement(), and ug::MarkNeighborsForFullRefinement().

◆ mark_neighborhood() [2/2]

virtual void ug::IRefiner::mark_neighborhood ( size_t  numIterations,
RefinementMark  refMark,
bool  sideNbrsOnly 
)
inlinevirtual

marks the neighborhood of currently marked elements.

In each step direct neighbors of currently marked elements are also marked. You may specify the refinement mark that will be applied to newly mared elements

  • elements which already were marked will be ignored. By passing RM_NONE as refMark, the refinement-mark will be derived from neighbored elements. If sideNbrsOnly is set to true, only elements which are connected to sides of marked elements are also marked. Otherwise all elements which are connected to vertices of marked elements are marked.

Reimplemented in ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, and ug::HangingNodeRefinerBase< Selector >.

◆ marked_closure()

template<class TElem >
bool ug::IRefiner::marked_closure ( TElem *  elem) const
inline

◆ marked_full()

template<class TElem >
bool ug::IRefiner::marked_full ( TElem *  elem) const
inline

◆ marked_local()

template<class TElem >
bool ug::IRefiner::marked_local ( TElem *  elem) const
inline

◆ num_marked_edges() [1/2]

size_t ug::IRefiner::num_marked_edges ( )
inline

returns the number of (globally) marked edges on all levels of the hierarchy

References num_marked_edges().

Referenced by num_marked_edges(), and num_marked_elements().

◆ num_marked_edges() [2/2]

size_t ug::IRefiner::num_marked_edges ( std::vector< int > &  numMarkedEdgesOut)

returns the number of (globally) marked edges on all levels of the hierarchy

References pcl::ProcessCommunicator::allreduce(), num_marked_edges_local(), and PCL_RO_SUM.

Referenced by ug::CreateProcessHierarchy().

◆ num_marked_edges_local()

virtual void ug::IRefiner::num_marked_edges_local ( std::vector< int > &  numMarkedEdgesOut)
protectedpure virtual

returns the number of locally marked edges on all levels of the hierarchy

Implemented in ug::HangingNodeRefiner_MultiGrid, ug::HangingNodeRefiner_Grid, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

Referenced by num_marked_edges().

◆ num_marked_elements() [1/2]

size_t ug::IRefiner::num_marked_elements ( )
inline

returns the number of (globally) marked grid-objects of highest dimension

References num_marked_elements().

Referenced by num_marked_elements().

◆ num_marked_elements() [2/2]

size_t ug::IRefiner::num_marked_elements ( std::vector< int > &  numMarkedElemsOut)

returns the number of (globally) marked grid-objects of highest dimension

References pcl::ProcessCommunicator::allreduce(), grid(), ug::Grid::num(), num_marked_edges(), num_marked_faces(), num_marked_volumes(), and PCL_RO_SUM.

◆ num_marked_faces() [1/2]

size_t ug::IRefiner::num_marked_faces ( )
inline

returns the number of (globally) marked faces on all levels of the hierarchy

References num_marked_faces().

Referenced by num_marked_elements(), and num_marked_faces().

◆ num_marked_faces() [2/2]

size_t ug::IRefiner::num_marked_faces ( std::vector< int > &  numMarkedFacesOut)

returns the number of (globally) marked faces on all levels of the hierarchy

References pcl::ProcessCommunicator::allreduce(), num_marked_faces_local(), and PCL_RO_SUM.

Referenced by ug::CreateProcessHierarchy().

◆ num_marked_faces_local()

virtual void ug::IRefiner::num_marked_faces_local ( std::vector< int > &  numMarkedFacesOut)
protectedpure virtual

returns the number of locally marked faces on all levels of the hierarchy

Implemented in ug::HangingNodeRefiner_MultiGrid, ug::HangingNodeRefiner_Grid, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

Referenced by num_marked_faces().

◆ num_marked_volumes() [1/2]

size_t ug::IRefiner::num_marked_volumes ( )
inline

returns the number of (globally) marked volumes on all levels of the hierarchy

References num_marked_volumes().

Referenced by num_marked_elements(), and num_marked_volumes().

◆ num_marked_volumes() [2/2]

size_t ug::IRefiner::num_marked_volumes ( std::vector< int > &  numMarkedVolsOut)

returns the number of (globally) marked volumes on all levels of the hierarchy

References pcl::ProcessCommunicator::allreduce(), num_marked_volumes_local(), and PCL_RO_SUM.

Referenced by ug::CreateProcessHierarchy().

◆ num_marked_volumes_local()

virtual void ug::IRefiner::num_marked_volumes_local ( std::vector< int > &  numMarkedVolsOut)
protectedpure virtual

returns the number of locally marked volumes on all levels of the hierarchy

Implemented in ug::HangingNodeRefiner_MultiGrid, ug::HangingNodeRefiner_Grid, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

Referenced by num_marked_volumes().

◆ perform_coarsening()

virtual bool ug::IRefiner::perform_coarsening ( )
inlineprotectedvirtual

Called by coarsen(). Derived classes sould implement their coarsen algorithm here.

Since the default implementation does not perform coarsening, it returns false.

Reimplemented in ug::HangingNodeRefiner_MultiGrid, and ug::AdaptiveRegularRefiner_MultiGrid.

Referenced by coarsen().

◆ perform_refinement()

virtual void ug::IRefiner::perform_refinement ( )
protectedpure virtual

◆ projector()

◆ refine()

void ug::IRefiner::refine ( )

◆ save_marks_to_file()

virtual bool ug::IRefiner::save_marks_to_file ( const char *  filename)
pure virtual

Writes the associated grid and marks to a file. Pure virtual.

Elements should be assigned to subsets depending on their current refinement-mark.

Implemented in ug::HangingNodeRefinerBase< TSelector >, ug::HangingNodeRefinerBase< MGSelector >, ug::HangingNodeRefinerBase< Selector >, ug::GlobalMultiGridRefiner, and ug::GlobalFracturedMediaRefiner.

◆ set_adjusted_marks_debug_filename()

void ug::IRefiner::set_adjusted_marks_debug_filename ( const char *  filename)

sets a filename to which adjusted marks are saved during refinement / coarsening

If no filename is set, then no marks are being saved during refinement / coarsening. If you want to unset the file, either pass a NULL pointer or an empty string.

References m_adjustedMarksDebugFilename.

◆ set_message_hub()

void ug::IRefiner::set_message_hub ( SPMessageHub  msgHub)
protected

sets the message hub.

A message hub is required, since it is used transmit messages regarding adaption, refinement and coarsening.

References m_messageHub.

Referenced by ug::GlobalFracturedMediaRefiner::assign_grid(), and ug::GlobalMultiGridRefiner::assign_grid().

◆ set_projector()

void ug::IRefiner::set_projector ( SPRefinementProjector  projector)
inline

References m_projector, and projector().

Member Data Documentation

◆ m_adaptionIsActive

bool ug::IRefiner::m_adaptionIsActive
protected

Referenced by adaption_begins(), and coarsen().

◆ m_adjustedMarksDebugFilename

◆ m_debuggingEnabled

bool ug::IRefiner::m_debuggingEnabled
protected

◆ m_messageHub

◆ m_msgIdAdaption

int ug::IRefiner::m_msgIdAdaption
protected

◆ m_projector


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