Coupled rocket simulations involve interactions of physics modules including fluids, solids, and combustion. These individual physics modules may need to proceed at their respective time steps, while the boundary (or jump) conditions must be exchanged periodically among them to conduct a coherent simulation. The numerical coupling algorithms for these simulations frequently also require customization to accommodate needs of different applications.
These coupled simulations pose a number of challenges and complexities in orchestrating the interactions among physics modules. First, the orchestration module must provide a flexible and easy construction of complex coupling algorithms and provide readability of the orchestration module, so that an end-developer can experiment with novel coupling algorithms easily. Second, the data transfer between physics modules may impose certain causality constraints and also may require buffer data for manipulating the jump conditions. This in turn requires sophisticated task and buffer management of the orchestration module. Finally, the orchestration module must provide a simple interface for the numerical and geometrical services utilities, including mesh modification, intermodule data transfer, and surface propagation.
To meet these challenges, we have developed Rocman -- the control and orchestration module to coordinate multiple physics modules in coupled simulations and provide facilities to extend and implement new coupling schemes. It is the front-end of the coupled code that directly interacts with end-developers of coupled simulations. Rocman is a high-level infrastructure, built on top of the Roccom integration framework. With a novel design using the idea of action-centric specification and automatic scheduling of reusable actions to describe the intermodule interactions, Rocman facilitates the diverse needs of different applications and coupling schemes in an easy-to-use fashion.