Convergence issues in multi-coupling scheme

Dear all,
I am attempting to couple multiple regions (three regions) using a multi-coupling scheme. I have based my modifications on the existing “heat-exchange-simplified” solver. An OpenFOAM solver is employed for the solid region, which is sandwiched between the fluid-bottom-solver and fluid-top-solver. Adjustments to the meshes have been made to ensure interfaces are perpendicular to the z-axis.

As an initial convergence check, I used a basic heat-conduction solver for all three regions with a basic CHT type coupling. With conductivities set to 0.1, 10, and 100 for the bottom-fluid, solid, and top-fluid respectively, the solution does not seem to converge. However, when the conductivities are 10, 1, and 100 for the bottom-fluid, solid, and top-fluid respectively, the solution converges after a few iterations.

Can anyone provide assistance regarding this issue? I have attached the converging case (multiInterfaces) and the non-converging case (couplingMulti) for reference.

N.B. I have previously raised a similar issue under a different thread title. Hence, I am raising it again with a more relevant thread title.
couplingMulti.zip (395.0 KB)
multiInterfaces.zip (398.4 KB)

Hi dibyendu.
As I understand from the conductivity values for the converging and diverging case, it might be better to use the participant with the relative lower conductivity as the controller for the multi coupling. (According to documentation: From preCICE V2.3.0, it allows non-centric participants as long as they run in serial. )

To try out with other acceleration parameters, like try another filter type, could also be an option, if you want the solid with high conductivity to be the controller.

1 Like

Dear Fujikawas,

Thank you for your kind response. You correctly pointed out that the controller with the lowest conductivity is yielding a converging simulation. I have tried different filters such as QR1, QR2, and setting the limit to 1e-4 and 1e-6, but the system still isn’t converging.

As I am new to this field and do not have extensive knowledge about it, could you please explain what non-centric participants are? I have not been able to find information on this topic. Additionally, during the non-converging solution, I received the following warning for the controller simulation:

WARNING: A sub-vector in the residual-sum preconditioner became numerically zero (sub-vector = 1.2400213163051205e-30). If this occurred in the second iteration and the initial-relaxation factor is equal to 1.0, check if the coupling data values of one solver is zero in the first iteration. The preconditioner scaling factors were not updated for this iteration and the scaling factors determined in the previous iteration were used.

Is there any way to rectify this issue?

Thank you for your assistance.

This is the related documentation (which is definitely a bit poor): Multi coupling configuration | preCICE - The Coupling Library

There is a small clarification there:

This means that it requrires m2n connections to all other participants and the exchange tags needs to be properly configured.

Consider the following coupling schenario (four pipes in a row):

ParticipantA - ParticipantB - ParticipantC - ParticipantD

In this case, none of the participants is coupled to all other participants, hence there is no centric participant.