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

More Component abstraction #24103

Closed lindsayad closed 1 month ago

lindsayad commented 1 year ago

Reason

Design

We will know the design is successful if there is no more need for SAMComponent, AddSAMComponentAction, and SAMSimulation

Impact

A component system that we know is very generic

GiudGiud commented 1 year ago

Components could hold metadata, much like mesh generators do right now. In fact components could be able to use MGs to create their own meshes

joshuahansel commented 1 year ago

Extracting the components system into its own module only makes sense to me if we intend to use the components system for non-TH applications as well.

GiudGiud commented 1 year ago

I will try to pitch this to Reactor & Griffin team next time we meet. I think it's a great idea.

lindsayad commented 1 year ago

@joshuahansel sometimes you have to build it and then they will come

lindsayad commented 1 year ago

@rui-hu @snschune

joshuahansel commented 1 year ago

To start off some discussion, what's the advantage of some app like Griffin using components?

GiudGiud commented 1 year ago

For shielding, it would be good to have a bunch of discontinuous meshes because that's all that s needed in most cases. They could be tied to components. That way you do not need to remesh the whole thing when you change one part. If the contact between the meshes is important for thermo-mechanics for example, then we could say: mesh = mesh_1:<list of blocks> for each component and use that same continuous mesh in TM

For transfers as well, keeping the data local to a component makes sure we don't send data that s unrelated, and it speeds it up because there's less source data to consider.

In general, a plant is a collection of components, not a giant mesh. It would very much simplify our workflow for modeling plant systems if we recognized that in how we create the physics

joshuahansel commented 1 year ago

Agreed, I think that any time where you have multiple physical pieces in your domain, components make a lot of sense.

joshuahansel commented 1 month ago

Closing because I think the Physics/ActionComponents systems fill this role.