Repository navigation
Make the solid Jacobian and volume checks independent of element size - #344
Open
Copper280z wants to merge 1 commit into
Open
Copper280z wants to merge 1 commit into
Copper280z wants to merge 1 commit into
Conversation
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 file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.