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

Reply via email to