idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.76k stars 1.05k forks source link

Group mesh-modifying user objects into a specific mesh modifier / other name syntax #27671

Open GiudGiud opened 5 months ago

GiudGiud commented 5 months ago

Motivation

@dschwen @hugary1995 and others have built up quite a bit of capabilities in UOs that modify the mesh. This could be consolidated into a system / dedicated syntax for:

Design

Either: 1) we figure out how to make mesh generators execute outside of the initial mesh generation phase.

This would likely involve:

2) create a new system and place new objects, no MGs, there

The tradeoff is likely (partial) code duplication (2) vs code complexity (1). This will likely involve:

Cool things with (2) that make me thing it is the way:

Note that there is some overlap between this and Executor capabilities. We are considering Executor mesh-modification / adaptivity and this new system would be related. It's more straightforward to do this than push people to Executors for this imo.

Impact

Easier for users to see our whole array of in-simulation mesh-modification capabilities Easier for user-devs to contribute and add what they need inside a dedicated system

GiudGiud commented 5 months ago

Thoughts on the names? If I gather a few options here we can submit them to a vote on the moose slack

maxnezdyur commented 5 months ago

If I get this right, in the future this would have the ability to call Mesh System objects like SmoothMeshGenerator or ParsedNodeTransformGenerator? Both could be useful for "remeshing" elements that become highly skewed.

GiudGiud commented 5 months ago

Either we use those. (could be tricky, there's a lot that goes in the [Mesh] block) or we add a new MeshSmoother object in the new system

Personally I am leaning into making a new system. See the list of reasons in the initial post

lindsayad commented 5 months ago

It would be interesting to see the return of MeshModifiers. That might be my vote

GiudGiud commented 5 months ago

@idaholab/moose-ccb

hugary1995 commented 5 months ago

My vote would be MeshModifiers.

This could be a thrust area. See some potentially related discussion: https://github.com/idaholab/moose/issues/23371

loganharbour commented 5 months ago

It would be interesting to see the return of MeshModifiers. That might be my vote

I'd agree.