-
Notifications
You must be signed in to change notification settings - Fork 286
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
Permit mesh smoothers to move boundary/interface nodes #3385
Comments
What was going on near the middle corners on that first pic? |
If only I knew. I reorganized the code to catch some edge cases, and retesting suddenly gave the correct result. |
Ha! I shouldn't laugh too hard, though. If we understood all our code as well as we should then I'd be recommending you add new features to the fancy variational smoother rather than the simple Laplace smoother... and I'd have done a much better job on our last set of Exodus upgrades, for that matter. |
There is a variational smoother? I could generalize this a bit by making the lambdas base class members... |
Nice fancy mathematics in the underlying thesis+papers, immunity to the failure cases you can see with Laplace, but the code is kind of orphaned; the original author didn't want to open source it at all (out of fear of getting hammered with maintenance requests), and it's never been properly adopted or even thoroughly refactored since, just translated (from Fortran?) to C++ code by Derek and later to C++ idioms by John. |
Oh, that even has a mechanism to tag movable boundary nodes. I have this for 2D and 3D, the vsmoother only has it for 2D (and not for subdomain boundaries). |
Regressed code, probably. We've never had exodiff tests in libMesh and in hindsight we really should have... |
It should be pretty straight forward with AD to code up arbitrary element quality metrics, and implement nodal repositioning based on the derivative of the quality metric w.r.t. the nodal positions. E.g. the element Jacobian could be such a metric. That'd be a class of smoothers with well defined underlying maths, too. |
LibMesh mesh smoothers do not touch boundary nodes or nodes at the interface between subdomains. We could allow those nodes to move parallel to the boundary if - for example - the local curvature of the boundary is below a given threshold value.
The text was updated successfully, but these errors were encountered: