Restart after stopping calculation

I’m calculating openfoam-calculix CHT steady-state.

I want to calculate until t = 500 and then stop the calculation to change the URF and perform the calculation again.

But the calculation is performed again from t = 1!

Please tell me how.

This was in the meantime on Gitter, but since the discussion was very interesting, I add a summary here, since Discourse is searchable.

First, have a look at the following wiki pages:

It is important to understand here that (@uekerman):

preCICE does not do the restarting. The solvers have to do it. Your case sounds a bit like it would be sufficient to only restart OpenFOAM. preCICE only exchanges/couples initial data if required, which you might not even need in your case.

So, we need that:

  • The adapter uses the (optional) method initializeData()
  • You add initialize = "yes" in your <exchange/> tag of the preCICE configuration file
  • You restart your solvers normally. In case of OpenFOAM, set startFrom = latestTime in your system/controlDict file.

Another interesting aspect that popped up, is the order of the participants in the coupling scheme:

Q: I stopped the openfoam calculation and saved the data up to timestep = 500.
In this state, initialized = “yes” is included and in general, is the timestep = 500 data applied as the initial value when the calculation is restarted?

A: It’s complicated. Depends on which coupling scheme you use and who is first and second participant. If you use a serial scheme and OpenFOAM is first, CalculiX second, then CalculiX sends its initial coupling data to OpenFOAM during initializeData . OpenFOAM just starts from timestep 500 and uses the initial displacement from CalculiX.

Q: Should I use a serial scheme? I’m using parallel scheme…

A: If you use a parallel scheme, initial data is exchanged in both direction.