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.