Add Hcurl-projection test + fix BUG#199
Conversation
test Nedelec FEs in a parallel distributed-memory framework. Solved a BUG in the _generate_sign_flips(...) private helper function along the way.
There was a problem hiding this comment.
Pull request overview
This PR updates the distributed div/curl-conforming FE space sign-flip generation (notably for Nedelec elements) and attempts to extend the MPI test suite by adding an HcurlProjectionTests test group.
Changes:
- Add
HcurlProjectionTestsinclude + execution to the MPI NP4 test driver. - Refactor
_generate_sign_flipsto accept precomputedcell_gidsand add specialized implementations for Raviart-Thomas vs Nedelec. - Remove
HeatEquationTestsexecution from the MPI transient test block.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
test/mpi/runtests_np4.jl |
Adds a new test include (HcurlProjectionTests) and updates the header comment about supported MPI sizes. |
test/mpi/runtests_np4_body.jl |
Executes the new HcurlProjectionTests test group and removes MPI execution of HeatEquationTests. |
src/DivAndCurlConformingFESpaces.jl |
Refactors and specializes distributed sign-flip computation, adding Nedelec-specific behavior. |
Comments suppressed due to low confidence (1)
test/mpi/runtests_np4_body.jl:63
HeatEquationTests.jlis still included bytest/mpi/runtests_np4.jl, but theHeatEquationTests.main(distribute, parts)invocation was removed from the MPI transient test block. As a result, HeatEquation is no longer exercised in the MPI test suite. If this was intentional, consider removing the unused include; otherwise, re-add the call under an appropriate TESTCASE so MPI coverage doesn’t regress.
if TESTCASE ∈ ("all", "mpi-transient")
TransientDistributedCellFieldTests.main(distribute, parts)
PArrays.toc!(t, "TransientDistributedCellField")
TransientMultiFieldDistributedCellFieldTests.main(distribute, parts)
PArrays.toc!(t, "TransientMultiFieldDistributedCellField")
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #199 +/- ##
==========================================
- Coverage 85.11% 85.08% -0.04%
==========================================
Files 16 16
Lines 4254 4270 +16
==========================================
+ Hits 3621 3633 +12
- Misses 633 637 +4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR extends the MPI test suite with an H(curl) projection regression test and updates internal sign-flip generation logic to better handle Nedelec elements, documenting both changes in the changelog.
Changes:
- Added a new
HcurlProjectionTestsmodule and wired it into the MPI NP4/NP1 test driver. - Updated
_generate_sign_flipsto introduce Nedelec-specific behavior (skipping sign flips in 2D / simplex cases, otherwise computing them in 3D). - Updated
NEWS.mdto record the fix and the new test.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/mpi/runtests_np4.jl | Includes the new Hcurl projection test module in the MPI driver. |
| test/mpi/runtests_np4_body.jl | Runs the new Hcurl projection test as part of the mpi-physics group. |
| test/HcurlProjectionTests.jl | New H(curl) projection regression test (2D/3D branches) to validate Nedelec behavior. |
| src/DivAndCurlConformingFESpaces.jl | Adjusts sign-flip generation dispatch/logic for Nedelec elements. |
| NEWS.md | Notes the Nedelec sign-flip fix and the added Hcurl test. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
_generate_sign_flips(...)private helper function along the way.