Skip to content

Checks: Perform normal calculation using full integration - #156

Open
kopperp wants to merge 3 commits into
mainfrom
improvement.check.normals
Open

Checks: Perform normal calculation using full integration#156
kopperp wants to merge 3 commits into
mainfrom
improvement.check.normals

Conversation

@kopperp

@kopperp kopperp commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Previously, we use the cross-product of the first two tangent vectors for the normal calculation. This can produce wrong results for highly deformed elements which are nonetheless correct. Perform the full high-order integration on the Jacobian to avoid this issue.

Previously, we use the cross-product of the first two tangent vectors for the normal calculation. This can produce wrong results for highly deformed elements which are nontheless correct. Perform the full high-order integration on the Jacobian to avoid this issue.
@kopperp kopperp added this to the v1.1.0 milestone Jun 26, 2026
@kopperp kopperp self-assigned this Jun 26, 2026
@kopperp kopperp added the enhancement New feature or request label Jun 26, 2026
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

☂️ Code Coverage

current status: ✅

Overall Coverage

Statements Covered Coverage Threshold Status
3208 2925 91% 85% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
pyhope/basis/basis_watertight.py 100% 🟢
pyhope/io/io_debug.py 98% 🟢
pyhope/mesh/extrude/mesh_extrude.py 99% 🟢
pyhope/script/pyhope_cli.py 98% 🟢
TOTAL 99% 🟢

updated for commit: a690d07 by action🐍

@kopperp

kopperp commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator Author

@scopplestone Technically, we are now checking this twice since CheckWatertightalso reports inward facing normals, but only for connected sides. Given that the check is expensive, I'm open for suggestions.

@scopplestone

Copy link
Copy Markdown
Collaborator

Any way to do the check only once for each side? Either extend the water tightness check by also checking the boundary sides or skip the connected sides in the new check?

@kopperp

kopperp commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator Author

Any way to do the check only once for each side? Either extend the water tightness check by also checking the boundary sides or skip the connected sides in the new check?

Yes, we can just add the non-connected sides to the watertightness check. The only downside is that watertightness gets only checked after the MeshConnect, so we might try to connect wrongly-oriented sides and fail there.

Skipping connected sides doesn't work because we don't have that information at this point. The original idea was to have a cheap check right at the beginning and then only do the expensive verification right at the end.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants