A common, and perhaps currently the dominant, approach to multiphysics simulation is partitioned multiphysics. In this large class of multiphysics systems, two or more domains are each treated by a dedicated model, and are explicitly or implicitly coupled in the region(s) of intersection of the domains. When the physical domains are separate, abutting at some lower dimensional interface, then the models of each domain (neglecting the intersection) are naturally separate (e.g. fluid vs. structure). If the physical domains overlap in some sub-region, then partitioned models can be obtained by operator splitting.
Typically, each model is implemented in a separate software construct, or even in a completely separate application package. Often, there is some physics/modeling required for the interface itself (e.g. reactive interface, burning, propagation, deformation, etc). The interface physics is usually handled by one or more additional (or embedded) software components.
In general, each separate model and software implementation can have its own discretization, parallelization, and computational strategies. In other words, the partitioning of each domain, their spatial and temporal discretizations, and computational methods are, in general, disparate.
Constructed in this way, the system requires data exchange at the interface between the two domains. Incidentally, the fidelity of these exchanges are critical to the stability of the coupled system over many timesteps. Accurate, and when necessary, conservative transfers across the interface are required. Typically, this sort of multiphysics problem and software construction necessitates an interface software component to implement the coupling, mediate the data exchanges, and manage the control flow among the components.