Epicure index fix#69
Conversation
|
Pues no parece que funcione |
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
…orders (but not yet nonconforming interfaces...)
|
For some reason, the coverage tool is not doing a great job here, as it marks many lines as misses or partially covered, when they are actually exercised by the tests... |
|
That's great! I ran a battery of GPU tests with isotropic polynomial orders, including the full CI suite, and compared the runtimes against develop. I couldn't find a single test that runs slower with the index fix. |
|
@amrueda, I talked with @Rodrigoansf and it seems that all is working fine with this fix that you implemented. If you agree, I think we can merge this already. What do you think? |
|
Great. Thank you guys! |
There was a problem hiding this comment.
Pull request overview
This PR updates the mesh/discretization path to correctly support anisotropic polynomial orders (notably in volume weak integrals and element-to-face prolongation indexing), and updates/reenables the Navier–Stokes “CylinderDifferentOrders” regression test/CI to exercise the new behavior.
Changes:
- Fix dimension/index usage in
HexElementClassprolongation routines so face interpolation/prolongation uses the correctNxyzcomponent per face orientation. - Update
DGIntegralsvolume Green weak integral to handle anisotropic orders by separating derivative sums per direction. - Adjust the CylinderDifferentOrders test inputs/expected values and enable the test in the parallel NS CI workflow.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| Solver/test/NavierStokes/CylinderDifferentOrders/SETUP/ProblemFile.f90 | Updates expected regression values and assertion style for residuals/forces. |
| Solver/test/NavierStokes/CylinderDifferentOrders/MESH/OrdersN2N1z.csv | Adds an element-order file enabling anisotropic (2,2,1) orders. |
| Solver/test/NavierStokes/CylinderDifferentOrders/CylinderDifferentOrders.control | Points the test to the new polynomial order file. |
| Solver/src/libs/mesh/HexElementClass.f90 | Fixes face prolongation indexing for anisotropic Nxyz. |
| Solver/src/libs/mesh/FaceClass.f90 | Adjusts Face_AdaptSolToFace dummy array shape for conforming anisotropic faces. |
| Solver/src/libs/discretization/DGIntegrals.f90 | Corrects weak volume integral accumulation for anisotropic orders. |
| .github/workflows/CI_parallel_NS.yml | Re-enables build/run steps for the CylinderDifferentOrders test. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| CALL FTAssertEqual(expectedValue = residuals(1), & | ||
| actualValue = monitors % residuals % values(1,1), & | ||
| tol = 1.d-11, & | ||
| msg = "Continuity residual") |
| CALL FTAssertEqual(expectedValue = cl, & | ||
| actualValue = monitors % surfaceMonitors(2) % values(1), & | ||
| tol = 1.d-11, & | ||
| msg = "Lift coefficient") |
| type(Face), intent(inout) :: self | ||
| integer, intent(in) :: nEqn | ||
| integer, intent(in) :: Nelx, Nely | ||
| real(kind=RP), intent(in) :: Qe(1:NCONS, 0:Nelx, 0:Nely) | ||
| real(kind=RP), intent(in) :: Qe(1:NCONS, 0:self % NfRight(1), 0:self % NfRight(2)) | ||
| integer, intent(in) :: side |
There was a problem hiding this comment.
Is this fine? It seems a bit weird that Nelx and Nely are inputs to the subroutine but not used inside.
This PR fixes some index bugs in HexElementClass (cherry-picked from #58) and also enables anisotropic polynomial orders for conforming std DG discretizations.