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

Create hybridized kernel framework interface #26406

Open lindsayad opened 10 months ago

lindsayad commented 10 months ago

Reason

It will allow users to create arbitrary hybridized kernels. I will need it for https://github.com/idaholab/moose/issues/26405. It is easiest to have a framework interface (as opposed to just putting it in NS) because then I can essentially make the NonlinearSystem(Base) a pre-linesearch check object, which is needed for updating the primal solution once the dual solution is in hand.

Design

It will have its own syntax block, action, and warehouse in NonlinearSystemBase. But it will also have its objects shared with the kernel warehouse because we will still want computeResidualAndJacobian called through the kernel interface. We want the new warehouse for calling through to the hybridized kernel during the pre-linesearch check solve phase.

Impact

It's a new capability but unknown how much of a benefit or how much demand there will be in the user community

GiudGiud commented 10 months ago

"hybridized kernel interface" to create hybrid between a kernel and anything? so objects that are both kernels and something else?

Or is the "something else" already specialized to something

lindsayad commented 10 months ago

hybrid here refers to the finite element method, not C++ objects