-
Notifications
You must be signed in to change notification settings - Fork 55
Use consistent way to compute the deformation gradient #1565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Use consistent way to compute the deformation gradient #1565
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR standardizes the deformation gradient computation across all solid element shapes to consistently use F = I + grad_u (incremental formulation). Previously, hex8 elements used F = (X+u)^T * dN/dX^T (total formulation) while other element types used the incremental approach. To accommodate this change, contact test node coordinates were adjusted by adding a small offset (1e-16) to prevent initial contact singularities.
Key changes:
- Unified deformation gradient calculation method across all element types
- Modified contact test geometries to avoid numerical issues with the new formulation
- Updated reference values in multiple test files to reflect the new computational approach
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
src/solid_3D_ele/4C_solid_3D_ele_calc_lib.hpp |
Removed conditional logic for hex8 elements; all elements now use F = I + grad_u formulation |
tests/input_files/contact3D_nitsche_hex8_sym_coulomb.4C.yaml |
Adjusted node coordinates by adding 1e-16 offset to z-coordinates for nodes 1-125 to avoid initial contact |
tests/input_files/contact3D_nitsche_hex8_sym_coulomb_new_struc.4C.yaml |
Same coordinate adjustment as above for consistency |
tests/input_files/ssti_mono_3D_6hex8_elch_s2i_butlervolmerthermo_cycling.4C.yaml |
Updated expected displacement and scalar field values due to deformation gradient calculation change |
tests/input_files/ssti_mono_3D_6hex8_elch_s2i_butlervolmerthermo_BGS-AMG_3x3.4C.yaml |
Updated expected scalar field value |
tests/input_files/ssti_mono_3D_3hex8_elch_s2i_butlervolmerthermo_growthlaw.4C.yaml |
Updated expected displacement value |
tests/input_files/ssi_mono_3D_hex8_elch_s2i_butlervolmercapacity_BGS-AMG_4x4.4C.yaml |
Updated multiple expected scalar field values |
tests/input_files/ssi_mono_3D_hex8_elch_s2i_butlervolmer_grain_boundary_meshtying_BGS-AMG_5x5.4C.yaml |
Updated displacement and scalar field values |
tests/input_files/ssi_mono_3D_2blocks_hex8_nonmatching_nitsche_contact_scatra_s2i_linearperm.4C.yaml |
Updated scalar and displacement values; standardized number format to scientific notation |
tests/input_files/ssi_mono_3D_2blocks_hex8_nonmatching_nitsche_contact_scatra_s2i_constperm_BGS-AMG_3x3.4C.yaml |
Updated multiple scalar and displacement values |
tests/input_files/ssi_mono_3D_2blocks_hex8_nonmatching_nitsche_contact_scatra_s2i_constperm_BGS-AMG_2x2.4C.yaml |
Updated multiple scalar and displacement values |
tests/input_files/ssi_mono_3D_2blocks_hex8_nonmatching_nitsche_contact_scatra_s2i_constperm.4C.yaml |
Updated multiple scalar and displacement values; standardized number format |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
16f8e60 to
40b9aa1
Compare
We are now using F=I+grad_u for every shape of the solid elements to compute the deformation gradient.
40b9aa1 to
68bb046
Compare
rjoussen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean contact simulations are no longer expected to work if the interfaces match exactly at the beginning?
We are now using F=I+grad_u for every shape of the solid elements to compute the deformation gradient.
For the previously failing contact tests, I adapted the coordinates such that the two bodies are not in contact in the initial configuration (avoiding a singularity arising when computing the exact deformation gradient).
Draft for now since there might be some tests that fail due to tolerances.
Closes #70