FormSum.coefficients()
should be ordered deterministically
#47
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Form.coefficients()
andFormSum.coefficients()
both useset
to produce a unique collection of the coefficients. However,set
does not have deterministic ordering.Form._analyze_form_arguments()
usessorted
to make sure that the ordering is deterministic across MPI ranks and across multiple programme executions, butFormSum._analyze_form_arguments()
doesn't.This means that the ordering is sometimes different between different MPI ranks, which causes parallel hangs in MG code when a
Function
is sent toinject
on one rank and aCofunction
is sent torestrict
on another rank.This PR just adds orders
FormSum.coefficients()
in the same way asForm.coefficients()