Serial-implicit versus parallel-implicit

Dear preCICE community,

I have successfully coupled our in-house finite-volume CFD solver with preCICE. Last week, I migrated our adapter from preCICE 2.X to preCICE 3.X. Thanks to the clear documentation on the website, the transition was smooth and quick.

I am currently running the FSI3 test case from Turek, using CalculiX as the structural solver. Forces and displacements are exchanged, and the acceleration method employed is constant under-relaxation.

The FSI coupling performs well when using the serial-implicit scheme. The results are satisfactory, mapping-independent, and consistent across different time-discretization methods.

Encouraged by this, I switched to parallel-implicit coupling. However, with this scheme, the FSI coupling is not as smooth. Using an implicit time-discretization on the CFD solver side, the coupling remains stable, but the results are not smooth. When switching to an explicit time-discretization, the coupling diverges. I am currently investigating the cause of this behavior.

From the documentation, I identified two key differences between serial-implicit and parallel-implicit coupling:

  1. Data Exchange Timing:
  • In serial-implicit, the first participant uses the data from the previous iteration of the second participant to compute its solution for the current iteration. This updated solution is then sent to the second participant, which uses it to compute its own solution for the current iteration.
  • In parallel-implicit, both solvers update their solutions for the current iteration simultaneously, using only the data from the previous iteration.
  1. Acceleration Method Application:
  • In serial-implicit, acceleration is applied only to the coupling data exchanged from the second to the first participant.
  • In parallel-implicit, acceleration is applied to all coupling data in both directions.

Are there any other significant differences between these two coupling schemes that I should be aware of?

Thank you in advance for your insights!

Best regards,
Guillaume De Nayer

Hi Guillaume,

That’s a good summary.

For constant underrelaxation, parallel-implicit coupling brings no benefits as you need twice as many iterations as for serial-implicit coupling.
Only for quasi-Newton coupling, parallel-implicit brings a numerical benefit.

What exactly do you mean by “not smooth”?

That explicit coupling diverges for FSI3 is the usual behavior in my experience.

In case you want to read more, I write about these things in Section 3 in my dissertation: https://mediatum.ub.tum.de/doc/1320661/document.pdf

Benjamin

Hi Benjamin,

Yes, explicit coupling cannot work with FSI3. This coupled problem is too challenging to solve without FSI subiterations.

Clarification on “Not Smooth”

  • With serial-implicit, the time evolution of the forces (lift and drag) is smooth, as expected.
  • With parallel-implicit, the forces exhibit non-physical numerical oscillations over time, which is why I described the results as “not smooth.”

These oscillations can be reduced by setting a lower relative-convergence-measure threshold. Typically:

  • With serial-implicit, a value of 10⁻⁵ is sufficient, and the results are stable.
  • With parallel-implicit, I need to set it to 10⁻⁶ to avoid numerical oscillations in the forces.

Best,
Guillaume

OK, I see. Yes, sth like this I also observed with underrelaxation. This problem should go away with quasi-Newton however :crossed_fingers:

The “non smooth” results issue I observed with the parallel-implicit scheme is solved. The checkpoints in my CFD solver were not correctly implemented.

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.