Roy, before we spend a lot of time going doing the debugging path, I can
point you right to the general problem. She mentioned that this is for a
"contact" problem. In MOOSE that means two disjoint meshes are going to be
pushed together and our contact system handles that by taking a list of
boundary IDs to ghost from the one surface to the other. Contact always
occurs on pairs of boundaries. However, It was never designed for
distributed mesh so yeah, we use the information from boundary_info like
crazy to snag extra elements all the time so we can calculate normals and
do projections to enforce node on face constraints. We *do* handle the
solution ghosting properly in MOOSE but we just assume we can grab elements
to our heart's content.

There's a fair amount of work to getting this right based on my
understanding of how the distributed mesh functors work. You mentioned in a
previous conversation that the functors have to be setup prior to preparing
the mesh so we don't throw too much information away. For Contact that
would mean doing the contact problem setup much earlier than we do today.
When I said hack in my response, I was thinking short term we could do
something rather nasty like take the contact surfaces ahead of time and
just ghost all of the elements (at least on one side) to all of the
partitions touching the other contact surface. "This ought to be
conservative enough for anyone". This kind of thing probably could be
implemented in the short term. I'm not suggesting that you take this on,
just exploring the feasibility of such an approach.

Cody

On Thu, Mar 9, 2017 at 8:36 AM Roy Stogner <[email protected]> wrote:

>
> On Thu, 9 Mar 2017, Maria Giuseppina Chiara Nestola wrote:
>
> > Assertion `_elements[i]' failed.
> >
> > Do you know what is due to?
>
> The low level error here is a common one: someone is trying to ask
> DistributedMesh for an element which does not exist on the semilocal
> (local plus ghosted) part of the mesh.
>
> The high level error here could be anything from anywhere; there's no
> way to tell without a stack trace, preferably with enough debugging
> options turned on to give us line numbers too.  I'd very much
> appreciate a stack trace; some times these errors are easy to fix as
> soon as you know where in the code they're coming from.
>
> If the fix isn't obvious, but you can boil it down to something small
> enough to add to the MOOSE test suite, I'd appreciate that too.  I've
> been bug hunting based on test suite failures with --distributed-mesh
> on various numbers of processors; MOOSE is just too big for me to
> audit the entire code so I've been relying heavily on test coverage.
>
> If you're using DistributedMesh then you definitely want to stay up to
> date with the newest MOOSE devel/HEAD; I've put a ton of fixes in
> there over the past month.  Let me know your GitHub account name and I
> can ping you when I'm adding new PRs; the DistributedMesh
> compatibility bugs are getting fewer in number rapidly but they're not
> all sorted out yet.
>
> You probably want to be using the libMesh master/HEAD too, unless
> you're using curved elements, for which there seems to be a recent
> regression that I haven't yet fixed; some of the DistributedMesh
> bugs that MOOSE picked up were really bugs at the libMesh level which
> I simply had never managed to trigger with the libMesh or GRINS test
> suites.
> ---
> Roy
>
>
> ------------------------------------------------------------------------------
> Announcing the Oxford Dictionaries API! The API offers world-renowned
> dictionary content that is easy and intuitive to access. Sign up for an
> account today to start using our lexical data to power your apps and
> projects. Get started today and enter our developer competition.
> http://sdm.link/oxford
> _______________________________________________
> Libmesh-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>
------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to