Thank you for your response. I am re-posting my query here.
I’m solving an FSI problem (serial implicit coupling) using an in-house fluid solver and FEniCS for the solid part. As per what I have understood, Aitken scheme uses only displacement values for convergence whereas QN scheme uses both force and displacement values.
Hence, if I want to use Aitken scheme, do I still need to write and read checkpoints for reading force in the fluid solver, as I thought that writing and reading checkpoint for displacements in FEniCS should be enough?
Also, when I try to use QN scheme, I get this error:
You configured acceleration data “Force” in the serial implicit coupling scheme between participants “Fluid” and “Solid”. For serial implicit coupling schemes, only data exchanged from the second to the first participant can be used for acceleration. Here, from “Solid” to “Fluid”. However, you configured data “Force” for acceleration, which is exchanged from “Fluid” to “Solid”. Please remove this acceleration data tag or switch to a parallel implicit coup precice-config.xml (2.4 KB)
ling scheme.
Just to be clear, I need to add checkpoints only for the displacements and not for the forces in serial implicit coupling? I got this doubt because I thought QN scheme needs both force and displacement whereas Aitken scheme requires displacement.
From my understanding you need the checkpointing. However, the checkpointing is not needed because of the acceleration scheme, but needed for the implicit coupling. For the implicit coupling to work, all solvers need restore their initial state of the current time window. This restoration of the initial state happens when the checkpoint is loaded.
I believe there is a link to a related topic missing, as there is probably some context to this discussion. But let me try to reply to what I understand.
There is probably some confusion here. Both acceleration methods can use multiple convergence measures. You can choose what.
The restriction typically comes from serial coupling schemes, where only data exchanged from the second to the first participant can be post-processed / modified / used for the acceleration. Parallel schemes can use both.
I assume that Benjamin had converted a serial-implicit with Aitken config to a parallel-implicit with IQN config. This is just because both parallel is typically faster than serial, and IQN faster/more stable than Aitken.
Exactly. When you read values for preCICE, you then compute a new solution. This updates the internal state of the solver. To try out different values from preCICE (which is what happens with every new implicit coupling iteration), you need to restore the state of the solver to the previous one.
Without checkpointing, the solver would simply be accumulating errors in the solution.