-
Notifications
You must be signed in to change notification settings - Fork 35
Contact-Homotopy #1463
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: develop
Are you sure you want to change the base?
Contact-Homotopy #1463
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1463 +/- ##
===========================================
- Coverage 92.03% 91.82% -0.21%
===========================================
Files 199 200 +1
Lines 25212 25277 +65
===========================================
+ Hits 23203 23210 +7
- Misses 2009 2067 +58
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…ers dont request a Jacobian of the gap with respect to the shape displacement field, etc
…ry management of contact blocks
…rits from the NLMCProblem class in order to be used with the HomotopySolver
…ct problem but I do not want to have to modify examples/contact/CMakeLists.txt so that they only run when CONTINUATION_SOLVERS is enabled. The example worked on here constraint_twist.cpp can only be run when CONTINUATION_SOLVERS is enabled so there is some natural separation at this point
temp fix for evaluate
…ions via the HomotopySolver
…e/contact-homotopy
…scription of the contact problem
…idden on the HomotopySolver solver backend
…m, imperfect commit as I am not able to access certain LC resources right now, moving to another machine
| // note: Tribol does not use cycle. | ||
| int cycle = 0; | ||
| contact_.update(cycle, time, dt); | ||
| if (new_point) { |
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.
what does point mean in this context? Is this checking if we need to updating things in Tribol again because contact interactions may have changed?
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.
Precisely. Like is the point that we are doing such and such computations at a "new_point" or was it "seen" in the previous call. This flag is intended to allow caching contact mechanics computations.
The purpose of this PR is to add the ability to solve (tied) contact problems with the homotopy solver.
Tribol calls are wrapped in a constraint object which will define a NLMCProblem which is the object that the homotopy solver acts on.
Another addition of this PR is the complete avoidance of
deleteand replacing usage of raw pointers withstd::unique_ptrin inertia relief and tied contact problemEqualityConstrainedHomotopyProblem'sRemoving finite difference check task as such a check will only pass if we compile with enzyme and enable exact derivatives.
Utilize exceptions from Tribol compuations to signal bad contact computations to the solver and to reduce solver step length parameters. (Currently via a branch of Tribol). While exceptions are now in place they are not being explicitly used in this PR as with "milder" homotopy solver parameters the nonlinear iterates do not vary so wildly as to require the exceptions that are only available via a specific Tribol branch.ess_tdof_list's. That is the "user" need just pass theess_tdof_list's and the ContinuationSolver problem class should just take care of things. As is the "user" shouldn't need to constructprolongation_andrestriction_mfem::HypreParMatrix's as in the current implementation ofexamples/contact/homotopy/two_blocks.cpp.For a future PR: (1) finish work begun here to cache contact mechanics function calls and (2) update the manner in which we do Dirichlet BC's. Currently we eliminate essential/displacement dofs and only expose the reduced linear system to the Homotopy solver. This has implications for the linear solvers used, such as AMG with SystemsOptions.