On Tue, 28 Jul 2015, John Peterson wrote: > On Mon, Jul 27, 2015 at 9:49 PM, Junchao Zhang <[email protected]> > wrote: > >> Hello, >> I am new to libmesh and I want to know some of its implementation >> details. After I flag some elements for refinement, and call >> MeshRefinement::refine_elements (), how does libmesh handle elements that >> are not flagged, but some of their neighbors are refined? I guess they >> should be refined too, since new nodes are introduced on their sides. >> Can someone point me to code doing that? >> > > There is an extensive set of algorithms for handling different refinement > patterns/situations. > > See e.g. the diagrams in include/mesh/mesh_refinement.h for more > information.
Just as an aside, flagging elements if some of their neighbors are refined is not a standard smoothing algorithm. On a non-disjoint mesh, that's just "uniformly_refine()". ;-) libMesh handles "non-conforming meshes" (meshes where unrefined elements have refined neighbors) in the solve, with "hanging node constraints" - the refined neighbors have a few degrees of freedom constrained to match the coarse neighbor at its side where they meet. --- Roy ------------------------------------------------------------------------------ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
