If you want to couple more than two participants, there are two options: You can combine multiple normal coupling schemes (composition) or you can use a fully-implicit multi-coupling scheme. On this page, we explain both options.

Composition of bi-coupling schemes

preCICE allows us to combine multiple coupling schemes by only specifying them one after the other in the configuration:

<coupling-scheme:parallel-explicit>
  <participants first="MySolver1" second="MySolver2"/>
  ...
</coupling-scheme:parallel-explicit>
<coupling-scheme:parallel-explicit>
  <participants first="MySolver1" second="MySolver3"/>
  ...
</coupling-scheme:parallel-explicit>

For this example, all three participants are executed in parallel to one another, whereas MySolver1 exchanges data with MySolver2 and MySolver3, but not the latter two with each other. To also get an interaction between MySolver2 and MySolver3, add a third coupling scheme.

You can probably imagine that you can do very strange combinations, where most of them have only limited practical relevance. To find out more, you can read Section 4.1.5 in Bernhard’s thesis. Numerically, it only makes sense to either only have explicit schemes or to combine one implicit scheme with several explicit ones. To find out more, you can read this paper. If you want to resolve more than one strong interaction, you need a fully-implicit multi-coupling.

Fully-implicit multi-coupling

In a fully-implicit multi-coupling, an arbitrary number of solvers are executed in parallel to each other in an implicit fashion.

<coupling-scheme:multi>
  <participant name="MySolver1" control="yes"/>
  <participant name="MySolver2" />
  <participant name="MySolver3" />
  ...
</coupling-scheme:multi>

Exactly one participant needs to take control of the coupling. preCICE computes the convergence measures and the acceleration on this participant.

Data being exchanged between multiple solvers must be configured indentically in terms of data initialization and substeps. All other tags are similar to a normal implicit coupling.

To find out more about multi coupling, you can also read Section 3.8 in Benjamin’s thesis or have a look at the tutorial of multiple perpendicular flaps in a channel.