Skip to content

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

Open
jafranc wants to merge 8 commits into
developfrom
jafranc/fix/perElementTypeScaling
Open

refact: Contact Mech - dispatch scaling wrt to fracture element type#4083
jafranc wants to merge 8 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.

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