Basic understanding of checkpointing with implicit coupling scheme

I‘m currently trying to implement an implicit coupling scheme and want to understand the checkpointing procedure of preCICE to verify my subiteration-output of my fluid und solid solver.
I‘m using a parallel implicit scheme (Vec-FPE) with Aitken Underrelaxation/IQN-ILS.
In my understanding in the first subiteration the state of my solver is saved. The coupling data (e.g. displacement) is read, then solveTimeStep and write coupling data (e.g. force) is processed. In advance the convergence measure of forces is computed and the Underrelaxation/IQN-ILS is used for force. This force is then used for the next subiteration step as part of the FPE.
So my question is: Why is there the need to reload the oldState of the solver of subiterarion1 for every not converged subiteration in a time window? In my understanding not the oldState but the current/underrelaxated state must be used for the next subiteration.

I assume that the explanation in the docs is not sufficient

The implicit coupling scheme tries to solve a fixed-point problem f(x)=x, where f represents your solvers and x represents your forces and displacements. preCICE uses the result of the previous time window or initial data as x_0.

After your solvers complete the first iteration, preCICE known a new x_1 for the next iteration.
However, your solvers have most likely updated some internal state. Therefore, you are now computing g(x)=x instead of f(x)=x.

Reading the checkpoint restores your solver to the same state as you started the time-window so that you compute f(x)=x again, but now with a new guess x_1.

Hope that helps.

Frédéric

1 Like

Thank you! This explanation resolves my misunderstanding of the checkpointing to solve the fixed-point problem.

1 Like

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