Skip to content

Conversation

@bd713
Copy link
Contributor

@bd713 bd713 commented Jan 20, 2026

This PR:

  • Removes hard-coded quadrature order for contact interface elements (triangles and quadrilaterals) in SolidMechanicsAugmentedLagrangianContact
  • Relies on useHighOrderQuadratureRule setting from FiniteElementDiscretization, allowing:
    • Consistent quadrature accuracy between 3D and 2D elements
    • Users to control quadrature accuracy via XML input

DENEL Bertrand added 2 commits January 20, 2026 12:02
@bd713 bd713 requested a review from jafranc January 20, 2026 18:11
@bd713 bd713 self-assigned this Jan 20, 2026
@bd713 bd713 added type: feature New feature or request ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI labels Jan 20, 2026
@bd713 bd713 marked this pull request as draft January 21, 2026 01:05
@bd713 bd713 added DO NOT MERGE ! and removed ci: run CUDA builds Allows to triggers (costly) CUDA jobs DO NOT MERGE ! labels Jan 21, 2026
@bd713 bd713 marked this pull request as ready for review January 21, 2026 02:33
Copy link
Contributor

@jhuang2601 jhuang2601 left a comment

Choose a reason for hiding this comment

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

Many thanks for fixing it!

@castelletto1
Copy link
Contributor

castelletto1 commented Jan 21, 2026

Do we want the quadrature rule to be exposed to the user?

https://github.com/GEOS-DEV/GEOS/blob/58178e42765c158f7a2f941eea098078b6f4c14a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp#L53C1-L56C91

As far as I can tell having m_useHighOrderQuadratureRule == 1 is needed to correctly integrate bubble contributions on tetrahedra and triangular faces when the ALM solver (SolidMechanicsAugmentedLagrangianContact) is used. Same thing applies to SolidMechanicsLagrangeContactBubbleStab, which was implemented by @CusiniM for the induced seismicity project and which would need some refactoring to include slip and open fracture states.

In my opinion, having an optional attribute, namely useHighOrderQuadrature, needed in the two solvers above, which must be set to 1 (for tetrahedral element subregions) is not a good design. I would not expose the option to the user and set it to true in the solver constructor.

Comment on lines 132 to 135
GEOS_ERROR_IF( hasTetrahedra && useHighOrderQuadrature != 1,
GEOS_FMT( "{}: Tetrahedral meshes require useHighOrderQuadratureRule=\"1\" for correct integration of bubble contributions. "
"Please add this attribute to your FiniteElements/{} XML block.",
getName(), getDiscretizationName() ) );
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: ready for review type: feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants