From: Alexander L. <ale...@gm...> - 2019-03-20 23:45:14
|
In MOOSE we often have two meshes, a reference (un-displaced) and a displaced mesh. We want to be able to sync ghosting between the two meshes. Currently I am running into issues when I am running a displaced problem with AMR. I first call the reference EquationSystems::reinit which coarsens, constricts the mesh, and then refines. Now when I call the displaced EquationSystems::reinit, during coarsening we call DofMap::distribute_dofs which calls through to our ghosting functors. We set up a proxy ghosting functor which essentially loops over the ghosting functors and elements of the reference mesh, determining what elements were ghosted on the reference mesh **and then** ghosts the corresponding element IDs on the displaced mesh. This works great except when we have AMR. The problem is that the mesh constriction of the reference mesh has deleted its inactive elements and then renumbered. We are calling distribute dofs on the displaced mesh **before** we've done the same constriction, so we have an out-of-sync correspondence between the reference and displaced element numbering. Does anyone have a suggestion for a good solution here? What's the best way to sync_ghosting()? |