-
Notifications
You must be signed in to change notification settings - Fork 290
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
Weak enforcement of periodic boundary conditions #3525
base: devel
Are you sure you want to change the base?
Conversation
f5f01c8
to
e8c737a
Compare
Let's not merge this until we're certain it's what you need on the MOOSE side of things too (which I haven't looked at yet), but the libMesh additions seem quite sensible, much cleaner than I'd been fearing. I've kicked off the tests here as-is, just in case CI sees some damage to the existing PBC behavior which I missed. Could I talk you into returning Could we get an explicit |
Skimming your MOOSE branch, I admit I see more code than I like, which makes me wonder if this definitely is the best solution ... but I can't say I see any bad code, so it looks like we've at least got a workable solution. |
Job Coverage on 481e525 wanted to post the following: Coverage
Warnings
This comment will be updated on new commits. |
Or maybe I couldn't find such a rule because there is none? Test exodiff failures where the test names all include "periodic" or "phase_field" (which is almost always run periodic) can't be random. Oh, and there's one in a libMesh Periodic unit test too, so no complicated MOOSE interactions involved. |
Return a pair for the topological neighbor
I made those two changes; we'll see if the tests pass now. I am not familiar with the libmesh test system; it looks like a lot of it is running certain moose tests. If I should add some test files into the libmesh repo that call these functions, in order to improve coverage, let me know. |
That would definitely be a good idea. Our official coverage stats don't include MOOSE coverage, but more importantly it's a lot quicker to debug regressions when we have unit test coverage rather than just middleware or applications triggering them. |
Contribution: add enum parameter to
periodic_boundary
objects to differentiate strong and weak enforcement of periodic boundary conditions (PBC). Strong enforcement uses DOF constraint equations (current approach); weak enforcement would use surface integrals as part of the weak form of the boundary value problem. Also, add second version oftopological_neighbor
which returns both the neighbor element pointer and an integer pointer to the facet number.Impact: allows PBC class to help with solving interface problems like cohesive zone modeling and to treat periodic conforming meshes using interface kernels instead of nodal constraints, allowing Nitsche/DG/mortar/penalty treatments.
References: idaholab/moose#22948 (reply in thread)