12 #include "libmesh/elem.h" 36 if (elem->p_refinement_flag() == Elem::JUST_REFINED)
38 else if (elem->p_refinement_flag() == Elem::JUST_COARSENED)
49 if (elem->refinement_flag() == Elem::JUST_REFINED)
51 const Elem *
const parent = elem->parent();
52 const unsigned int child_num = parent->which_child_am_i(elem);
54 bool im_the_lowest_local_child =
true;
56 if (parent->child_ptr(c) && parent->child_ptr(c) !=
remote_elem &&
57 parent->child_ptr(c)->processor_id() == elem->processor_id())
58 im_the_lowest_local_child =
false;
60 if (im_the_lowest_local_child)
64 else if (elem->refinement_flag() == Elem::JUST_COARSENED)
66 if (elem->has_children())
72 for (
unsigned int child = 0; child < elem->n_children(); child++)
73 children.push_back(elem->child_ptr(child));
CacheChangedListsThread(MooseMesh &mesh)
void join(const CacheChangedListsThread &y)
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
virtual void onElement(const Elem *elem) override
Assembly of the element (not including surface assembly)
std::map< const Elem *, std::vector< const Elem * > > _coarsened_element_children
Map of Parent elements to children elements for elements that were just coarsened.
std::vector< const Elem * > _refined_elements
The elements that were just refined.
IntRange< T > make_range(T beg, T end)
Base class for assembly-like calculations.
void doingPRefinement(bool doing_p_refinement)
Indicate whether the kind of adaptivity we're doing is p-refinement.
std::vector< const Elem * > _coarsened_elements
The elements that were just coarsened.
virtual ~CacheChangedListsThread()
const RemoteElem * remote_elem