ug4
|
#include <parallel_hanging_node_refiner_multi_grid.h>
Public Types | |
typedef HangingNodeRefiner_MultiGrid | BaseClass |
Public Types inherited from ug::HangingNodeRefiner_MultiGrid | |
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 } |
Public Types inherited from ug::HangingNodeRefinerBase< MGSelector > | |
enum | HNodeRefMarks |
typedef MGSelector | selector_t |
Public Member Functions | |
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) |
ParallelHangingNodeRefiner_MultiGrid (DistributedGridManager &distGridMgr, SPRefinementProjector projector=SPNULL) | |
ParallelHangingNodeRefiner_MultiGrid (SPRefinementProjector projector=SPNULL) | |
void | set_distributed_grid_manager (DistributedGridManager &distGridMgr) |
void | set_involved_processes (pcl::ProcessCommunicator com) |
virtual | ~ParallelHangingNodeRefiner_MultiGrid () |
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 Grid * | get_associated_grid () |
DEPRECIATED! Use grid(). Has to return the associated grid. Pure virtual. More... | |
virtual Grid * | grid () |
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 MultiGrid * | multi_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... | |
Protected Member Functions | |
virtual void | assign_hnode_marks () |
distributes hnode marks More... | |
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 () |
allows to check whether a distributed grid contains edges 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 bool | continue_collect_objects_for_refine (bool continueRequired) |
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) |
virtual bool | one_proc_true (bool localProcTrue) |
virtual void | post_coarsen () |
virtual void | post_refine () |
virtual void | pre_coarsen () |
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... | |
template<class TElem , class TIntfcCom > | |
void | copy_marks_to_vmasters (TIntfcCom &com) |
copies the current marks in the ref-mark-selector from v-slaves to v-masters More... | |
template<class TElem , class TIntfcCom > | |
void | copy_marks_to_vslaves (TIntfcCom &com) |
copies the current marks in the ref-mark-selector from v-slaves to v-masters More... | |
Protected Member Functions inherited from ug::HangingNodeRefiner_MultiGrid | |
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 | perform_coarsening () |
performs coarsening on the elements marked with RM_COARSEN. 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 Vertex * | get_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 Vertex * | get_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... | |
MGSelector & | get_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... | |
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... | |
Additional Inherited Members | |
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 Attributes inherited from ug::HangingNodeRefinerBase< MGSelector > | |
std::vector< SPIRefMarkAdjuster > | m_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 |
This is a template class that allows to use a refiner in a parallel environment. Make sure that you initialize it with a valid DistributedGridManager.
ug::ParallelHangingNodeRefiner_MultiGrid::ParallelHangingNodeRefiner_MultiGrid | ( | SPRefinementProjector | projector = SPNULL | ) |
ug::ParallelHangingNodeRefiner_MultiGrid::ParallelHangingNodeRefiner_MultiGrid | ( | DistributedGridManager & | distGridMgr, |
SPRefinementProjector | projector = SPNULL |
||
) |
|
virtual |
|
protectedvirtual |
distributes hnode marks
Calls the base implementation to assign hnode marks and afterwards distributes them amongst neighbor processes.
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::HangingNodeRefiner_MultiGrid::assign_hnode_marks(), ug::DistributedGridManager::grid_layout_map(), ug::HangingNodeRefinerBase< MGSelector >::HNRM_TO_CONSTRAINED, ug::HangingNodeRefinerBase< MGSelector >::HNRM_TO_CONSTRAINING, ug::HangingNodeRefinerBase< MGSelector >::HNRM_TO_NORMAL, ug::INT_H_MASTER, ug::INT_H_SLAVE, ug::INT_V_MASTER, ug::INT_V_SLAVE, ug::LIB_GRID, m_intfComEDGE, m_intfComFACE, m_intfComVRT, m_pDistGridMgr, ug::HangingNodeRefinerBase< MGSelector >::m_selMarkedElements, and UG_DLOG.
|
protectedvirtual |
This callback is called during execution of the coarsen() method after collect_objects_for_coarsen is done. It is responsible to mark elements for hnode coarsening. That means all elements on which a hanging node or constrained children shall be created have to be marked using mark_for_hnode_refinement during this method. The default implementation performs this marking for all local elements.
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::HangingNodeRefinerBase< MGSelector >::get_refmark_selector(), ug::DistributedGridManager::grid_layout_map(), ug::INT_H_MASTER, ug::INT_H_SLAVE, m_intfComEDGE, m_intfComFACE, m_intfComVRT, m_pDistGridMgr, and boost::vertices().
Referenced by broadcast_marks_vertically().
|
protectedvirtual |
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References broadcast_marks_horizontally(), copy_marks_to_vmasters(), ug::HangingNodeRefinerBase< MGSelector >::get_refmark_selector(), ug::DistributedGridManager::grid_layout_map(), ug::INT_V_MASTER, ug::INT_V_SLAVE, m_intfComEDGE, m_intfComFACE, m_intfComVOL, m_intfComVRT, m_pDistGridMgr, and boost::vertices().
|
protectedvirtual |
allows to check whether a distributed grid contains edges
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References pcl::ProcessCommunicator::allreduce(), m_pMG, m_procCom, ug::MultiGrid::num(), and PCL_RO_LOR.
|
protectedvirtual |
allows to check whether a distributed grid contains faces
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References pcl::ProcessCommunicator::allreduce(), m_pMG, m_procCom, ug::MultiGrid::num(), and PCL_RO_LOR.
|
protectedvirtual |
allows to check whether a distributed grid contains volumes
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References pcl::ProcessCommunicator::allreduce(), m_pMG, m_procCom, ug::MultiGrid::num(), and PCL_RO_LOR.
|
protectedvirtual |
after each iteration in collet_objects_for_refine, this method determines whether the iteration shall be continued. Important for parallel refiners. The default implementation simply returns the specified value. This is fine for serial environments.
Reimplemented from ug::HangingNodeRefinerBase< MGSelector >.
References pcl::OneProcTrue().
|
inline |
Referenced by broadcast_marks_vertically().
|
protectedvirtual |
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References m_intfComEDGE, m_intfComFACE, m_intfComVOL, m_intfComVRT, and boost::vertices().
|
protected |
copies the current marks in the ref-mark-selector from v-slaves to v-masters
References ug::HangingNodeRefinerBase< MGSelector >::get_refmark_selector(), ug::DistributedGridManager::grid_layout_map(), ug::INT_V_MASTER, ug::INT_V_SLAVE, and m_pDistGridMgr.
|
inline |
|
protectedvirtual |
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References m_intfComEDGE, m_intfComFACE, m_intfComVOL, m_intfComVRT, and boost::vertices().
|
protected |
copies the current marks in the ref-mark-selector from v-slaves to v-masters
References ug::HangingNodeRefinerBase< MGSelector >::get_refmark_selector(), ug::DistributedGridManager::grid_layout_map(), ug::INT_V_MASTER, ug::INT_V_SLAVE, and m_pDistGridMgr.
|
protectedvirtual |
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References pcl::OneProcTrue().
|
protectedvirtual |
Notifies the associated distGridMgr that elements have been erased.
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::end_element_deletion(), m_pDistGridMgr, m_pMG, ug::HangingNodeRefiner_MultiGrid::post_coarsen(), pcl::ProcRank(), ug::SaveParallelGridLayout(), and UG_LOG.
|
protectedvirtual |
Notifies the associated distGridMgr that new elements have been created.
Reimplemented from ug::HangingNodeRefinerBase< MGSelector >.
References ug::DistributedGridManager::end_ordered_element_insertion(), m_pDistGridMgr, m_pMG, ug::HangingNodeRefinerBase< MGSelector >::post_refine(), pcl::ProcRank(), ug::SaveParallelGridLayout(), and UG_LOG.
|
protectedvirtual |
Notifies the associated distGridMgr that elements will be erased
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::begin_element_deletion(), m_pDistGridMgr, m_pMG, ug::HangingNodeRefiner_MultiGrid::pre_coarsen(), pcl::ProcRank(), ug::SaveParallelGridLayout(), and UG_LOG.
|
protectedvirtual |
creates required vertices in higher levels.
Notifies the associated distGridMgr that new elements may now be created.
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::begin_ordered_element_insertion(), m_pDistGridMgr, m_pMG, ug::HangingNodeRefiner_MultiGrid::pre_refine(), pcl::ProcRank(), ug::SaveParallelGridLayout(), and UG_LOG.
|
protectedvirtual |
a callback that allows to deny refinement of special edges
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::is_ghost(), m_pDistGridMgr, and ug::HangingNodeRefiner_MultiGrid::refinement_is_allowed().
|
protectedvirtual |
a callback that allows to deny refinement of special faces
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::is_ghost(), m_pDistGridMgr, and ug::HangingNodeRefiner_MultiGrid::refinement_is_allowed().
|
protectedvirtual |
a callback that allows to deny refinement of special vertices
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::is_ghost(), m_pDistGridMgr, and ug::HangingNodeRefiner_MultiGrid::refinement_is_allowed().
|
protectedvirtual |
a callback that allows to deny refinement of special volumes
Reimplemented from ug::HangingNodeRefiner_MultiGrid.
References ug::DistributedGridManager::is_ghost(), m_pDistGridMgr, and ug::HangingNodeRefiner_MultiGrid::refinement_is_allowed().
void ug::ParallelHangingNodeRefiner_MultiGrid::set_distributed_grid_manager | ( | DistributedGridManager & | distGridMgr | ) |
References ug::DistributedGridManager::get_assigned_grid(), m_pDistGridMgr, and m_pMG.
void ug::ParallelHangingNodeRefiner_MultiGrid::set_involved_processes | ( | pcl::ProcessCommunicator | com | ) |
If not all processes are involved in refinement, one can set the involved processes here. By default all processes are involved.
References m_procCom.
|
private |
|
private |
|
private |
Referenced by broadcast_marks_vertically(), copy_marks_to_vmasters(), and copy_marks_to_vslaves().
|
private |
|
private |
|
private |
Referenced by contains_edges(), contains_faces(), contains_volumes(), post_coarsen(), post_refine(), pre_coarsen(), pre_refine(), and set_distributed_grid_manager().
|
private |
Referenced by contains_edges(), contains_faces(), contains_volumes(), and set_involved_processes().