Skip to content

refact: Contact Mech - dispatch scaling wrt to fracture element type - #4083

Merged
victorapm merged 14 commits into
developfrom
jafranc/fix/perElementTypeScaling
Sep 1, 2026
Merged

victorapm merged 14 commits into
developfrom
jafranc/fix/perElementTypeScaling

Conversation

@jafranc

@jafranc jafranc commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

In [A]LM methods, we rely on computed tolerances to decide on the slip/stick/open dispatch. Those are strongly geometry related in their estimation of the local inverse of the stiffness from left/right neighbors. Originallym the method was implemented with hexahedron/quad mixed dimensionality assumption.

Now we are running with mixed and tetra meshes. The original assumption tends to render a stiffer system. This PR propose dispatch with old behavior for Hex/Quad and right angle Tetra/Triangle approximation for triangles. (Extensible if needed_

@jafranc jafranc self-assigned this Jun 11, 2026
@jafranc jafranc added type: cleanup / refactor Non-functional change (NFC) flag: requires rebaseline Requires rebaseline branch in integratedTests EPIC - FF/Contact Contact mechanics labels Jun 11, 2026
@jafranc jafranc changed the title fix: Contact Mech - dispatch scaling wrt to fracture element type refact: Contact Mech - dispatch scaling wrt to fracture element type Jun 11, 2026
@jafranc
jafranc marked this pull request as ready for review August 27, 2026 13:33
setApplyDefaultValue( 5.e-02 ).
setDescription( "Tolerance for the sliding check" );

registerWrapper( viewKeyStruct::symmetricString(), &m_isAnisotropic ).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate input key registration for both m_isAnisotropic and m_symmetric?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch

stiffDiagApprox[ i ][ j ] = E / ( ( 1.0 + nu )*( 1.0 - 2.0*nu ) ) * 4.0 / 9.0 * ( 2.0 - 3.0 * nu ) * charLength;

//TODO (jafranc) once stabilized, get rid of this ugly ternary
stiffDiagApprox[ i ][ j ] = m_isAnisotropic ? E / ( ( 1.0 + nu )*( 1.0 - 2.0*nu ) ) * 4.0 / 9.0 * ( 2.0 - 3.0 * nu ) * volume / bbox[j] / bbox[j]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potential divide-by-zero issue and add a lower bound guard for bbox

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch ! I check for that earlier now, though such zero volume elements should not pass sanity checks in GEOS.

@jhuang2601 jhuang2601 added ci: run CUDA builds ci: run integrated tests Allows to run the integrated tests in GEOS CI ci: run code coverage enables running of the code coverage CI jobs ci: run device builds Allows to run the device (CUDA/HIP) builds labels Aug 27, 2026

@jafranc jafranc left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @jhuang2601. Good catch you made.

This might need a rebaseline as eventhough the behavior is opt-in on a XML parameter, the default is reverted to what was in Matteo original branch and might not be in sync with baselines anymore.

@victorapm
victorapm merged commit 9fcebf1 into develop Sep 1, 2026
22 checks passed
@victorapm
victorapm deleted the jafranc/fix/perElementTypeScaling branch September 1, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: run code coverage enables running of the code coverage CI jobs ci: run device builds Allows to run the device (CUDA/HIP) builds ci: run integrated tests Allows to run the integrated tests in GEOS CI EPIC - FF/Contact Contact mechanics flag: requires rebaseline Requires rebaseline branch in integratedTests type: cleanup / refactor Non-functional change (NFC)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants