Removing Boundary Conditions from specific elements #16390
-
Hi all, I'm currently looking into trying to do topology optimisation using moose. I have looked into multiple ways of changing elements to do this. I have been able to create a meshgenerator to delete elements based on defined element IDs, though one problem with this is that to do so I'm using the ElementDeletionGeneratorBase.C which reassigns the element IDs after the elements have been removed. This means that the element IDs no longer match those of the original mesh which causes problems for example if you have to step back if you take off too much in the optimisation process. To get around this I have created another meshgenerator that instead changes the blockID of the element so that the element can have its density set to 0. The problem with this method is that the elements on the boundary condition interfaces retain the BCs. So is there any way to remove them on an element by element basis? I'm also open to any ideas on how to retain the element IDs after deletion. Best Regards, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
If you can change blockID of elements, why cannot you do block restriction to your variables, kernels, etc.? You can add new boundaries excluding the part connecting to a certain mesh block. I am not sure if this helps. |
Beta Was this translation helpful? Give feedback.
-
I'm not sure that MOOSE will support dynamically changing the boundary definition on-the-fly very well. However, there are a few workarounds to your issue:
|
Beta Was this translation helpful? Give feedback.
I'm not sure that MOOSE will support dynamically changing the boundary definition on-the-fly very well. However, there are a few workarounds to your issue:
[Mesh]
block that will allow you to do this.shouldApply
) to take into account your zero density property.