libmesh
libmesh copied to clipboard
Delete refined elements
Dear all,
I'm using a creep system coupled to a damage system. Based on the results of the damage system, I delete elements when the damage exceeds a critical value. Unfortuntately, the deletion of child elements after mesh refinement produces a segmentation fault. A colleague of mine posted the exact same issue few years ago, to which e.g. John Peterson replied: “Unfortunately, it's not currently possible to delete one child of a refined element, although you are not the first person to ask for this capability.“
It seems no workaround has been found/developed since then, but maybe I missed it. Could the development of such a capability be possible? Or if already existing, could you please direct me to it?
Thank you a lot in advance for your help!
I think the reply by @roystgnr on that thread is still the best you can do: flag the damaged elements in some way, e.g. by moving them to a different subdomain, and then handle the assembly of said elements (and most likely their neighbors) in some way that is consistent with your application.
In hindsight, my 2017 reply makes it sound like arbitrary deletion of child elements was a feature we were considering adding/someone was working on, but that's not the case. As far as I know, it's not on anyone's radar.
Do the AMR element level rules need to apply across subdomains ? I dont think they should.
If not, I think you can additionally mark all the elements in the 'damaged subdomain' to be coarsened as much as possible. It should be possible to end up with an active subdomain that is still modeling the creep system with the usual AMR mesh, and a damaged subdomain with a few coarse elements.
Do the AMR element level rules need to apply across subdomains ? I dont think they should.
Users have an API turn off the level-one rule entirely, but there's no support right now for enforcing it on some parts of the mesh but not other parts.