Physics and Components syntax to enable a systems-based approach to multiphysics
Simulations in MOOSE have traditionally used kernel and boundary condition classes to describe the equations. Downstream applications leveraged a system called Actions to define a pre-packaged discretization of the equations they solve. Unfortunately, the Action base class was very limited, and most applications implemented the same concepts in their Actions. This led to an increased maintenance burden and a reduction in coupling opportunities, save for the use of MultiApps which renders each input mostly independent. With the introduction of multi-system capabilities in MOOSE, there is growing interest in defining entire simulations of complex multiphysics systems in a single input file. By introducing a new Physics system, with its dedicated syntax and a new base class providing wide-ranging capabilities, we are now able to define multiple equations in a single input file in a compact and user-friendly way. With new interactions between Physics and the Component system, these equations can be defined on each component of a complex system. In this talk, we will present the capabilities of these new systems, their interactions, and how to define complex systems multiphysics simulations with Physics and Components.