Skip to content

[DamApplication] Use reference geometry in SmallDisplacementInterfaceElement - #14686

Open
joaquinirazabal wants to merge 1 commit into
masterfrom
dam/interface-convergence-diagnostics
Open

[DamApplication] Use reference geometry in SmallDisplacementInterfaceElement#14686
joaquinirazabal wants to merge 1 commit into
masterfrom
dam/interface-convergence-diagnostics

Conversation

@joaquinirazabal

Copy link
Copy Markdown
Member

📝 Description

This PR makes the quasi-static formulation of SmallDisplacementInterfaceElement consistently use the reference configuration.

Previously, the local interface frame and integration measure were computed from the current nodal coordinates. Since DamApplication normally uses move_mesh_flag = true, these quantities changed during the Newton iterations, while the corresponding geometric derivatives were not included in the tangent matrix. This resulted in an inconsistent assembled tangent, especially noticeable for compressed interfaces with large penalty stiffness.

The element originates from the Poromechanics small-strain interface-element family, where this geometry dependence is normally masked by the standard fixed-mesh configuration (move_mesh_flag = false). In DamApplication, the moved-mesh configuration exposed this implicit dependency.

Key changes

  • Use the reference configuration for the interface local frame and displacement-jump transformation.
  • Use the reference Jacobian and integration measure in the quasi-static formulation.
  • Compute the initial gap from the initial nodal positions.
  • Use the reference geometry consistently for initial-stress transformations, local/contact stress outputs, constitutive finalization, and joint-width calculations.
  • Keep interface opening/closure displacement-dependent, i.e. jump_local = R0 * Nu * u.
  • Keep the existing current-geometry behavior of the mass matrix and Rayleigh-alpha contribution, which are outside the scope of this PR.

Validation

  • Verified the analytical tangent against finite differences in smooth opening and compression states.
  • Verified the assembled tangent with move_mesh_flag = true in both opening and mixed opening/compression configurations.
  • The mixed-state tangent error is reduced from approximately 1e-5 to 1e-9.
  • The nonlinear iteration count no longer increases with penalty stiffness in the tested range from 1e3 to 1e10.
  • Physical differences with respect to the previous formulation are negligible and consistent with the small-displacement assumption.
  • Existing DamApplication interface reference results remain unchanged.
  • DamApplication small, nightly, and all test suites pass.

🆕 Changelog

  • Fixed SmallDisplacementInterfaceElement to consistently use reference geometry in its quasi-static formulation.
  • Removed the implicit dependency of the interface formulation on move_mesh_flag.
  • Improved tangent consistency and robustness for compressed interfaces with high penalty stiffness.

…ement

- Introduced methods for calculating current and reference rotation matrices, reference Jacobian determinants, and creating reference geometry in small_displacement_interface_element.hpp.
- Updated Python bindings to include the new DamPScheme class.
- Cleaned up whitespace in dam_analysis.py.
- Added new test cases for linear solver and global tangent consistency in the DamApplication.
- Implemented tests for interface tangent consistency, ensuring the tangent matrix is consistent across different loading branches and that the reference geometry remains invariant during opening.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant