On Thu, 25 Jan 2018, David Knezevic wrote:

Hi all (though Roy I think you're the expert on this one ;) ),

Well, I was the least-amateur when I refactored the code, but an
*expert* would have also properly documented it, so apparently none of
those were available.

I know that in DofMap::process_constraints libMesh handles communicating
the constraint rows to the processes that need to know about them, but I
just want to make sure that I satisfy any requirements that we have on how
user-defined constraint rows should be set up in parallel initially.

Good question!

IIRC: on ReplicatedMesh we try to avoid communication as much as
possible, so you have to add user constraints identically on every
processor.  There might be ways to get around that (add local
constraints only, then re-add after any repartitioning?) but I
definitely wouldn't suggest trying to depend on them.

In particular: are we required to set up the constraint row only on
the process that owns the constrained dof index, or can the
constraint row be on any process (or all processes)?

On DistributedMesh we set up library-added constraint rows on the
process that owns the constrained index, and I *think* we have the
same restriction on user constraints (to avoid the need for an initial
usually-redundant communication sweep sending out ghost dof
constraints).
---
Roy

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to