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.
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:
initializeData()initialize = "yes" in your <exchange/> tag of the preCICE configuration filestartFrom = 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.