33 #ifndef __H__UG__parallel_hanging_node_refiner_multi_grid__
34 #define __H__UG__parallel_hanging_node_refiner_multi_grid__
38 #include "../distributed_grid.h"
108 template <
class TElem,
class TIntfcCom>
114 template <
class TElem,
class TIntfcCom>
129 bool allowDeselection =
false);
132 bool faces,
bool volumes,
133 bool allowDeselection =
false);
136 bool faces,
bool volumes);
139 bool faces,
bool volumes);
Performs communication between interfaces on different processes.
Definition: pcl_interface_communicator.h:68
Definition: pcl_process_communicator.h:70
manages the layouts and interfaces which are associated with a distributed grid.
Definition: distributed_grid.h:88
Base-class for edges.
Definition: grid_base_objects.h:397
Faces are 2-dimensional objects.
Definition: grid_base_objects.h:510
Specialization of ug::HangingNodeRefiner for ug::MultiGrid.
Definition: hanging_node_refiner_multi_grid.h:68
virtual void copy_marks_to_vmasters(bool vertices, bool edges, bool faces, bool volumes)
Definition: hanging_node_refiner_multi_grid.h:327
virtual void copy_marks_to_vslaves(bool vertices, bool edges, bool faces, bool volumes)
Definition: hanging_node_refiner_multi_grid.h:330
virtual bool mark(Vertex *v, RefinementMark refMark=RM_REFINE)
Marks an element for refinement. Default implementation is empty.
Definition: refiner_interface.h:103
SPRefinementProjector projector()
Definition: refiner_interface.h:78
Definition: multi_grid.h:72
Definition: parallel_hanging_node_refiner_multi_grid.h:52
virtual void post_refine()
Definition: parallel_hanging_node_refiner_multi_grid.cpp:433
ParallelHangingNodeRefiner_MultiGrid(SPRefinementProjector projector=SPNULL)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:52
pcl::InterfaceCommunicator< FaceLayout > m_intfComFACE
Definition: parallel_hanging_node_refiner_multi_grid.h:149
MultiGrid * m_pMG
Definition: parallel_hanging_node_refiner_multi_grid.h:145
virtual void assign_hnode_marks()
distributes hnode marks
Definition: parallel_hanging_node_refiner_multi_grid.cpp:307
virtual void pre_coarsen()
Definition: parallel_hanging_node_refiner_multi_grid.cpp:450
virtual void copy_marks_to_vmasters(bool vertices, bool edges, bool faces, bool volumes)
Definition: hanging_node_refiner_multi_grid.h:327
virtual void broadcast_marks_vertically(bool vertices, bool edges, bool faces, bool volumes, bool allowDeselection=false)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:645
pcl::ProcessCommunicator m_procCom
Definition: parallel_hanging_node_refiner_multi_grid.h:146
virtual void broadcast_marks_horizontally(bool vertices, bool edges, bool faces, bool allowDeselection=false)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:618
virtual ~ParallelHangingNodeRefiner_MultiGrid()
Definition: parallel_hanging_node_refiner_multi_grid.cpp:73
void set_distributed_grid_manager(DistributedGridManager &distGridMgr)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:80
pcl::InterfaceCommunicator< VertexLayout > m_intfComVRT
Definition: parallel_hanging_node_refiner_multi_grid.h:147
void set_involved_processes(pcl::ProcessCommunicator com)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:484
virtual bool continue_collect_objects_for_refine(bool continueRequired)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:87
virtual bool one_proc_true(bool localProcTrue)
Definition: parallel_hanging_node_refiner_multi_grid.cpp:675
DistributedGridManager * m_pDistGridMgr
Definition: parallel_hanging_node_refiner_multi_grid.h:144
HangingNodeRefiner_MultiGrid BaseClass
Definition: parallel_hanging_node_refiner_multi_grid.h:54
pcl::InterfaceCommunicator< VolumeLayout > m_intfComVOL
Definition: parallel_hanging_node_refiner_multi_grid.h:150
virtual void pre_refine()
creates required vertices in higher levels.
Definition: parallel_hanging_node_refiner_multi_grid.cpp:416
virtual bool contains_faces()
allows to check whether a distributed grid contains faces
Definition: parallel_hanging_node_refiner_multi_grid.cpp:690
virtual void copy_marks_to_vslaves(bool vertices, bool edges, bool faces, bool volumes)
Definition: hanging_node_refiner_multi_grid.h:330
virtual bool contains_volumes()
allows to check whether a distributed grid contains volumes
Definition: parallel_hanging_node_refiner_multi_grid.cpp:698
virtual bool contains_edges()
allows to check whether a distributed grid contains edges
Definition: parallel_hanging_node_refiner_multi_grid.cpp:682
virtual bool refinement_is_allowed(Vertex *elem)
a callback that allows to deny refinement of special vertices
Definition: parallel_hanging_node_refiner_multi_grid.cpp:384
pcl::InterfaceCommunicator< EdgeLayout > m_intfComEDGE
Definition: parallel_hanging_node_refiner_multi_grid.h:148
virtual void post_coarsen()
Definition: parallel_hanging_node_refiner_multi_grid.cpp:467
Base-class for all vertex-types.
Definition: grid_base_objects.h:231
Volumes are 3-dimensional objects.
Definition: grid_base_objects.h:754
const NullSmartPtr SPNULL
The equivalent to NULL for smart pointers.
Definition: smart_pointer.h:90
std::pair< counting_iterator< size_t >, counting_iterator< size_t > > vertices(ug::BidirectionalMatrix< T > const &M)
Definition: bidirectional_boost.h:60