Skip to content

Conversation

@psocratis
Copy link
Member

Companion PR to mfem/mfem#4996

@psocratis psocratis self-assigned this Oct 20, 2025
@psocratis psocratis added the WIP Work in Progress label Oct 20, 2025
@tzanio tzanio mentioned this pull request Oct 21, 2025
68 tasks
@tzanio tzanio removed the WIP Work in Progress label Dec 4, 2025
@tzanio tzanio mentioned this pull request Dec 4, 2025
16 tasks
@tzanio tzanio changed the base branch from master to mfem-4.9 December 4, 2025 21:24
@tzanio tzanio requested review from acfisher, Copilot and tzanio December 4, 2025 21:24
Copilot finished reviewing on behalf of tzanio December 4, 2025 21:29
Copy link

Copilot AI left a 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 adds documentation for a new contact mechanics miniapp to the MFEM website, complementing the code changes in mfem/mfem#4996. The documentation introduces a simulation capability that combines MFEM with Tribol for frictionless contact modeling using interior-point optimization methods with AMG filtering.

  • Adds a publication reference for the AMG with Filtering preconditioner methodology
  • Documents the new contact miniapp with description, examples, and filtering logic
  • Integrates the miniapp into the website's filter system for easy discovery

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
src/publications.md Adds publication entry for "AMG with Filtering" paper by Petrides et al., which provides the theoretical foundation for the contact miniapp's solver
src/examples.md Adds complete documentation for the contact miniapp including description, benchmark problems, implementation details, and JavaScript filter logic for the miniapp discovery system

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

psocratis and others added 2 commits December 4, 2025 13:32
@psocratis psocratis requested a review from Copilot December 4, 2025 21:34
Copilot finished reviewing on behalf of psocratis December 4, 2025 21:40
Corrected the verb agreement in the description of the miniapp.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

</a>

This [miniapp](https://github.com/mfem/mfem/blob/master/miniapps/contact/contact.cpp) demonstrates how to use MFEM in combination with [Tribol](https://github.com/LLNL/Tribol)
to simulate frictionless contact between deformable solids. The contact gap function and its Jacobian are computed using Tribol’s mortar segment-to-segment method. An **Interior-Point (IP)** optimization solver is used to solve an inequality-constrained minimization problem enforcing a non-penetration condition. Linear systems arising in the IP iterations are solved using **Conjugate Gradient (CG)** preconditioned with the [**AMG with Filtering (AMGF)**](https://arxiv.org/abs/2505.18576) solver.
Copy link
Member

Choose a reason for hiding this comment

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

Can you add a link to a paper describing the details of the contact method you are using?

This [miniapp](https://github.com/mfem/mfem/blob/master/miniapps/contact/contact.cpp) demonstrates how to use MFEM in combination with [Tribol](https://github.com/LLNL/Tribol)
to simulate frictionless contact between deformable solids. The contact gap function and its Jacobian are computed using Tribol’s mortar segment-to-segment method. An **Interior-Point (IP)** optimization solver is used to solve an inequality-constrained minimization problem enforcing a non-penetration condition. Linear systems arising in the IP iterations are solved using **Conjugate Gradient (CG)** preconditioned with the [**AMG with Filtering (AMGF)**](https://arxiv.org/abs/2505.18576) solver.

Several benchmark problems are provided, including the two-block compression, ironing and beam-sphere tests. These examples illustrate how MFEM and Tribol can be combined to build large-scale scalable simulations of contact mechanics problems.
Copy link
Member

Choose a reason for hiding this comment

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

Are there any limitations to variety of Tribol contact methods that someone could use this miniapp to start with? It would be good to call that out.

Several benchmark problems are provided, including the two-block compression, ironing and beam-sphere tests. These examples illustrate how MFEM and Tribol can be combined to build large-scale scalable simulations of contact mechanics problems.

_This miniapp has only a parallel ([contact.cpp](https://github.com/mfem/mfem/blob/master/miniapps/contact/contact.cpp)) implementation. For more details, please see the documentation in [miniapps/contact/README.md](https://github.com/mfem/mfem/blob/master/miniapps/contact/README.md).
**We recommend that new users start with the example codes before moving to the miniapps.**_
Copy link
Member

Choose a reason for hiding this comment

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

It would be good to call out particular examples that would helpfolks build up to understanding this miniapp.

Copy link
Member

@acfisher acfisher left a comment

Choose a reason for hiding this comment

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

Looks ready after addressing my comments.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants