Skip to content

Make the solid Jacobian and volume checks independent of element size - #344

Open
Copper280z wants to merge 1 commit into
MystranSolver:devfrom
Copper280z:fix/solid-jacobian-tolerance
Open

Copper280z wants to merge 1 commit into
MystranSolver:devfrom
Copper280z:fix/solid-jacobian-tolerance

Conversation

@Copper280z

Copy link
Copy Markdown
Contributor

Previously JAC3D and the HEXA, PENTA and TETRA volume checks compared det(J) and the element volume with machine epsilon. Both have units of length cubed, so valid elements with small physical dimensions (micrometre scale) were rejected as having a zero Jacobian, and the outcome depended on model units.

det(J) is now compared relative to the product of the Jacobian row lengths (the scaled Jacobian), which measures element shape rather than size, and the volume check only rejects a non-positive volume. Error 1928 now also reports the isoparametric point where the check failed.

This change made use of various AI tools. I believe this is worthwhile and correct and am submitting this myself.

JAC3D and the HEXA, PENTA and TETRA volume checks compared det(J) and the
element volume with machine epsilon. Both have units of length cubed, so
valid elements with small physical dimensions (micrometre scale) were
rejected as having a zero Jacobian, and the outcome depended on model units.

det(J) is now compared relative to the product of the Jacobian row lengths
(the scaled Jacobian), which measures element shape rather than size, and the
volume check only rejects a non-positive volume. Error 1928 now also reports
the isoparametric point where the check failed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant