#include <patch.h>
Public Types | |
typedef void(Patch::* | PMF) () |
Public Member Functions | |
Patch (const processor_id_type my_procid=static_cast< processor_id_type >(-1)) | |
~Patch () | |
void | add_face_neighbors () |
void | add_local_face_neighbors () |
void | add_semilocal_face_neighbors () |
void | add_point_neighbors () |
void | add_local_point_neighbors () |
void | add_semilocal_point_neighbors () |
void | build_around_element (const Elem *elem, const unsigned int target_patch_size=10, PMF patchtype=&Patch::add_local_face_neighbors) |
Protected Member Functions | |
void | find_face_neighbors (std::set< const Elem *> &neighbor_set) |
void | find_point_neighbors (std::set< const Elem *> &neighbor_set) |
Protected Attributes | |
const processor_id_type | _my_procid |
This class implements useful utility functions for a patch of elements
typedef void(Patch::* libMesh::Patch::PMF) () |
|
inline |
void libMesh::Patch::add_face_neighbors | ( | ) |
This function finds all elements which touch the current patch at a face, and adds them to the patch.
Definition at line 64 of file patch.C.
References find_face_neighbors().
void libMesh::Patch::add_local_face_neighbors | ( | ) |
This function finds all elements on the current processor which touch the current patch at a face, and adds them to the patch.
Definition at line 75 of file patch.C.
References _my_procid, and find_face_neighbors().
Referenced by build_around_element().
void libMesh::Patch::add_local_point_neighbors | ( | ) |
This function finds all elements on the current processor which touch the current patch at any point, and adds them to the patch.
Definition at line 129 of file patch.C.
References _my_procid, and find_point_neighbors().
Referenced by build_around_element().
void libMesh::Patch::add_point_neighbors | ( | ) |
This function finds all elements which touch the current patch at any point, and adds them to the patch.
Definition at line 118 of file patch.C.
References find_point_neighbors().
void libMesh::Patch::add_semilocal_face_neighbors | ( | ) |
This function finds all elements which touch the current patch at a face and which touch one of our processor's elements at any point, and it adds them to the patch.
Definition at line 89 of file patch.C.
References _my_procid, and find_face_neighbors().
void libMesh::Patch::add_semilocal_point_neighbors | ( | ) |
This function finds all elements which touch the current patch at any point and which touch one of our processor's elements at any point, and it adds them to the patch.
Definition at line 143 of file patch.C.
References _my_procid, and find_point_neighbors().
void libMesh::Patch::build_around_element | ( | const Elem * | elem, |
const unsigned int | target_patch_size = 10 , |
||
PMF | patchtype = &Patch::add_local_face_neighbors |
||
) |
Erases any elements in the current patch, then builds a new patch containing element elem
by repeated addition of neighbors on the current processor. This procedure is repeated until the number of elements meets or exceeds target_patch_size
, or until the patch has no more local neighbors.
Definition at line 156 of file patch.C.
References _my_procid, libMesh::Elem::active(), add_local_face_neighbors(), add_local_point_neighbors(), libMesh::err, and libMesh::DofObject::processor_id().
Referenced by libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), and libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()().
|
protected |
This function finds all elements which touch the current patch at a face
Definition at line 37 of file patch.C.
Referenced by add_face_neighbors(), add_local_face_neighbors(), and add_semilocal_face_neighbors().
|
protected |
This function finds all elements which touch the current patch at any point
Definition at line 102 of file patch.C.
Referenced by add_local_point_neighbors(), add_point_neighbors(), and add_semilocal_point_neighbors().
|
protected |
Definition at line 131 of file patch.h.
Referenced by add_local_face_neighbors(), add_local_point_neighbors(), add_semilocal_face_neighbors(), add_semilocal_point_neighbors(), and build_around_element().