Weak enforcement of periodic boundary conditions#3525
Weak enforcement of periodic boundary conditions#3525ttruster wants to merge 4 commits intolibMesh:develfrom
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_boundaryobjects 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_neighborwhich 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)