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

To combine multiple coupling schemes, simply add them one after the other in the configuration:

  <participants first="MySolver1" second="MySolver2"/>
  <participants first="MySolver1" second="MySolver3"/>

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, simply 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.

  <participant name="MySolver1" control="yes"/>
  <participant name="MySolver2" />
  <participant name="MySolver3" />

Exactly one participants needs to have control. preCICE computes the convergence measures and the acceleration on this participant. Be careful: this participant needs to have m2n connections to all other participants and the exchange tags needs to be properly configured.

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.