-
-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Topology construction and fix MPI/NBX bug #3512
Conversation
I would suggest refactoring the |
I think further changes should come later because they are much more intrusive for the interface, and some points need careful thought. This changes doesn't really affect the API (since users do not generally use the |
What I am suggesting isn't very intrusive to the API as most users do not:
The |
I think there is already enough in this PR. |
* Changes due to introduction of consensus tag introduced in FEniCS/dolfinx#3512 * Bump install action and version number
* Work on Topology constructor * Fix compilation * Update * Fixes * Sub-topology fix * Wrapper update * Doc fixes * Continue on error * Updates * Doc fix * Debug * Debug * Doc fix * Update demo * Add barrier * Use PCX * Increase problem size * Parameterise demo * Small edits * Pass tag to nbx function * Test update * Tidy up * Test update * Simplify * Simplification * Tidy * Simplifications * Undo changes * Simplify * Tidy * Wrapper simplification * Update doc * Remove stray line
This change gives a mesh
Topology
a 'fully formed' constructor, i.e. aTopology
object is complete from construction in that it has vertices and cells. Other entries are derived from these. This follows the DOLFINx design philosophy where we avoid creating half-baked objects with unclear state.These changes triggered are seemingly unrelated bug in the NBX algorithm related to MPI. Consecutive, fast calls to the NBX could result in corrupted data since the non-blocking MPI calls used the same tag. The tag passed to MPI functions is now an optional argument.
Change also remove duplicated code in
Topology
constructors.Resolves some of the point in #3506.