On Fri, Jul 7, 2017 at 11:01 AM, Roy Stogner <royst...@ices.utexas.edu>
wrote:

>
>
> On Fri, 7 Jul 2017, David Knezevic wrote:
>
>       It would be reasonable to (optionally) forgo this pre-expansion, but
>>       a bit of other code would have to be added to handle the unexpanded
>>       case.  Dependency constraint equations would have to be communicated
>>       properly on DistributedMesh while leaving the dependent constraints
>>       unmodified, the send_list construction would have to be able to
>> handle
>>       indirect dependencies, and enforce_constraints_exactly() would have
>> to
>>       either walk through dependency trees or iterate up to the maximum
>> tree
>>       depth, just off the top of my head.
>>
>> Just wondering: Don't we already have code for the "unexpanded
>> case", i.e. the "called_recursively" codepath in
>> DofMap::build_constraint_matrix_and_vector?
>>
>
> We do, and I don't know of any reasons it wouldn't work correctly on
> ReplicatedMesh still.  (except for bit rot over the years since we
> used it, but that would be straightforward to debug)
>
> But IIRC we've never used that codepath in DistributedMesh, and it
> wouldn't work with the current DistributedMesh, which only stores the
> (expanded) constraints corresponding to (either local or semilocal,
> IIRC the latter) DoFs.  If a DistributedMesh processor knows that A
> depends on B and C, and C is a constrained remote DoF that this
> processor only receives via the send_list, then DistributedMesh won't
> currently store the constraint equation for C, so the constrain_foo
> code paths won't see a constraint there, so they'll get the result
> wrong.  We'd need to modify the distributed case code in DoFMap to
> make sure that all processors with constrained DoFs have direct
> permanent storage of all dependency constraints, not just the
> temporary knowledge that they currently use while expanding the
> dependent constraints.
>
> Though my understanding is that the "called_recursively" code
>> doesn't get used at the moment because of the constraint
>> pre-expansion that you mentioned, is that right?
>>
>
> I believe so.
>

OK, thanks for the explanation, that's what I thought.

David
------------------------------------------------------------------------------
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
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to