libMesh
|
Namespaces | |
Utils | |
Classes | |
class | BinSorter |
Perform a parallel sort using a bin-sort method. More... | |
class | Histogram |
Defines a histogram to be used in parallel in conjunction with a BinSorter . More... | |
class | Packing< const Elem * > |
class | Packing< const Node * > |
class | Packing< Elem * > |
class | Packing< Node * > |
class | Packing< std::basic_string< T > > |
class | Sort |
The parallel sorting method is templated on the type of data which is to be sorted. More... | |
struct | SyncEverything |
Typedefs | |
typedef std::pair< Hilbert::HilbertIndices, unique_id_type > | DofObjectKey |
Functions | |
template<typename Iterator , typename DofObjType , typename SyncFunctor > | |
void | sync_dofobject_data_by_xyz (const Communicator &comm, const Iterator &range_begin, const Iterator &range_end, LocationMap< DofObjType > *location_map, SyncFunctor &sync) |
Request data about a range of ghost nodes uniquely identified by their xyz location or a range of active ghost elements uniquely identified by their centroids' xyz location. More... | |
template<typename Iterator , typename SyncFunctor > | |
void | sync_dofobject_data_by_id (const Communicator &comm, const Iterator &range_begin, const Iterator &range_end, SyncFunctor &sync) |
Request data about a range of ghost dofobjects uniquely identified by their id. More... | |
template<typename Iterator , typename DofObjectCheckFunctor , typename SyncFunctor > | |
void | sync_dofobject_data_by_id (const Communicator &comm, const Iterator &range_begin, const Iterator &range_end, const DofObjectCheckFunctor &dofobj_check, SyncFunctor &sync) |
Request data about a range of ghost dofobjects uniquely identified by their id. More... | |
template<typename Iterator , typename SyncFunctor > | |
void | sync_element_data_by_parent_id (MeshBase &mesh, const Iterator &range_begin, const Iterator &range_end, SyncFunctor &sync) |
Request data about a range of ghost elements uniquely identified by their parent id and which child they are. More... | |
template<typename ElemCheckFunctor , typename NodeCheckFunctor , typename SyncFunctor > | |
bool | sync_node_data_by_element_id_once (MeshBase &mesh, const MeshBase::const_element_iterator &range_begin, const MeshBase::const_element_iterator &range_end, const ElemCheckFunctor &elem_check, const NodeCheckFunctor &node_check, SyncFunctor &sync) |
Synchronize data about a range of ghost nodes uniquely identified by an element id and local node id, assuming a single synchronization pass is necessary. More... | |
template<typename ElemCheckFunctor , typename NodeCheckFunctor , typename SyncFunctor > | |
void | sync_node_data_by_element_id (MeshBase &mesh, const MeshBase::const_element_iterator &range_begin, const MeshBase::const_element_iterator &range_end, const ElemCheckFunctor &elem_check, const NodeCheckFunctor &node_check, SyncFunctor &sync) |
Synchronize data about a range of ghost nodes uniquely identified by an element id and local node id, iterating until data is completely in sync and futher synchronization passes cause no changes. More... | |
template<typename Iterator , typename DofObjType , typename SyncFunctor > | |
void | sync_dofobject_data_by_xyz (const Communicator &comm, const Iterator &range_begin, const Iterator &range_end, LocationMap< DofObjType > &location_map, SyncFunctor &sync) |
typedef Hilbert::HilbertIndices libMesh::Parallel::DofObjectKey |
Definition at line 77 of file parallel_hilbert.h.
void libMesh::Parallel::sync_dofobject_data_by_id | ( | const Communicator & | comm, |
const Iterator & | range_begin, | ||
const Iterator & | range_end, | ||
const DofObjectCheckFunctor & | dofobj_check, | ||
SyncFunctor & | sync | ||
) |
Request data about a range of ghost dofobjects uniquely identified by their id.
Elements within the range can be excluded from the request by returning false from dofobj_check(dof_object)
Definition at line 349 of file parallel_ghost_sync.h.
References data, libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), and libMesh::DofObject::processor_id().
void libMesh::Parallel::sync_dofobject_data_by_id | ( | const Communicator & | comm, |
const Iterator & | range_begin, | ||
const Iterator & | range_end, | ||
SyncFunctor & | sync | ||
) |
Request data about a range of ghost dofobjects uniquely identified by their id.
Fulfill requests with sync.gather_data(const std::vector<dof_id_type> & ids, std::vector<sync::datum> & data), by resizing and setting the values of the data vector. Respond to fulfillment with sync.act_on_data(const std::vector<dof_id_type> & ids, std::vector<sync::datum> & data) The user must define Parallel::StandardType<sync::datum> if sync::datum isn't a built-in type.
Definition at line 338 of file parallel_ghost_sync.h.
Referenced by libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::FEMSystem::mesh_position_set(), libMesh::LaplaceMeshSmoother::smooth(), and libMesh::MeshRefinement::uniformly_coarsen().
void libMesh::Parallel::sync_dofobject_data_by_xyz | ( | const Communicator & | comm, |
const Iterator & | range_begin, | ||
const Iterator & | range_end, | ||
LocationMap< DofObjType > & | location_map, | ||
SyncFunctor & | sync | ||
) |
Definition at line 234 of file parallel_ghost_sync.h.
References data, libMesh::LocationMap< T >::empty(), libMesh::LocationMap< T >::find(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), libMesh::LocationMap< T >::point_of(), and libMesh::TypeVector< T >::size().
void libMesh::Parallel::sync_dofobject_data_by_xyz | ( | const Communicator & | comm, |
const Iterator & | range_begin, | ||
const Iterator & | range_end, | ||
LocationMap< DofObjType > * | location_map, | ||
SyncFunctor & | sync | ||
) |
Request data about a range of ghost nodes uniquely identified by their xyz location or a range of active ghost elements uniquely identified by their centroids' xyz location.
Fulfill requests with sync.gather_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data), by resizing and setting the values of the data vector. Respond to fulfillment with sync.act_on_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data) The user must define Parallel::StandardType<sync::datum> if sync::datum isn't a built-in type. The user-provided location_map will be used and left unchanged if it is provided, or filled and cleared if it is empty.
void libMesh::Parallel::sync_element_data_by_parent_id | ( | MeshBase & | mesh, |
const Iterator & | range_begin, | ||
const Iterator & | range_end, | ||
SyncFunctor & | sync | ||
) |
Request data about a range of ghost elements uniquely identified by their parent id and which child they are.
Fulfill requests with sync.gather_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data), by resizing and setting the values of the data vector. Respond to fulfillment with sync.act_on_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data) The user must define Parallel::StandardType<sync::datum> if sync::datum isn't a built-in type.
Definition at line 431 of file parallel_ghost_sync.h.
References libMesh::Elem::active(), libMesh::Elem::child_ptr(), data, libMesh::Elem::has_children(), libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), mesh, libMesh::Elem::parent(), libMesh::DofObject::processor_id(), and libMesh::Elem::which_child_am_i().
Referenced by libMesh::MeshCommunication::make_elems_parallel_consistent().
void libMesh::Parallel::sync_node_data_by_element_id | ( | MeshBase & | mesh, |
const MeshBase::const_element_iterator & | range_begin, | ||
const MeshBase::const_element_iterator & | range_end, | ||
const ElemCheckFunctor & | elem_check, | ||
const NodeCheckFunctor & | node_check, | ||
SyncFunctor & | sync | ||
) |
Synchronize data about a range of ghost nodes uniquely identified by an element id and local node id, iterating until data is completely in sync and futher synchronization passes cause no changes.
Imagine a vertex surrounded by triangles, each on a different processor, with a ghosting policy that include only face neighbors and not point neighbors. Then the only way for authoritative information to trickle out from that vertex is by being passed along, one neighbor at a time, to processors who mostly don't even see the node's true owner!
Data for all nodes connected to elements in the given range of element iterators will be requested.
Elements can be further excluded from the request by returning false from element_check(elem)
Nodes can be further excluded from the request by returning false from node_check(elem, local_node_num)
Fulfill requests with sync.gather_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data), by resizing and setting the values of the data vector. Respond to fulfillment with bool sync.act_on_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data) and return true iff the response changed any data.
The user must define Parallel::StandardType<sync::datum> if sync::datum isn't a built-in type.
Definition at line 754 of file parallel_ghost_sync.h.
References mesh, and sync_node_data_by_element_id_once().
Referenced by libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), and libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent().
bool libMesh::Parallel::sync_node_data_by_element_id_once | ( | MeshBase & | mesh, |
const MeshBase::const_element_iterator & | range_begin, | ||
const MeshBase::const_element_iterator & | range_end, | ||
const ElemCheckFunctor & | elem_check, | ||
const NodeCheckFunctor & | node_check, | ||
SyncFunctor & | sync | ||
) |
Synchronize data about a range of ghost nodes uniquely identified by an element id and local node id, assuming a single synchronization pass is necessary.
Data for all nodes connected to elements in the given range of element iterators will be requested.
Elements can be further excluded from the request by returning false from element_check(elem)
Nodes can be further excluded from the request by returning false from node_check(elem, local_node_num)
Fulfill requests with sync.gather_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data), by resizing and setting the values of the data vector. Respond to fulfillment with bool sync.act_on_data(const std::vector<unsigned int> & ids, std::vector<sync::datum> & data) and return true iff the response changed any data.
The user must define Parallel::StandardType<sync::datum> if sync::datum isn't a built-in type.
This method returns true iff the sync pass changed any data on any processor.
Definition at line 548 of file parallel_ghost_sync.h.
References libMesh::as_range(), data, libMesh::DofObject::id(), libMesh::DofObject::invalid_id, libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), mesh, libMesh::Elem::n_nodes(), libMesh::Elem::node_ref(), and libMesh::DofObject::processor_id().
Referenced by libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), and sync_node_data_by_element_id().