-
Notifications
You must be signed in to change notification settings - Fork 15
contact-miniapp #348
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: mfem-4.9
Are you sure you want to change the base?
contact-miniapp #348
Conversation
There was a problem hiding this 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.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Corrected the verb agreement in the description of the miniapp.
There was a problem hiding this 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.
Co-authored-by: Copilot <[email protected]>
| </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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.**_ |
There was a problem hiding this comment.
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.
acfisher
left a comment
There was a problem hiding this 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.
Companion PR to mfem/mfem#4996