-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Motivation
If PIDTransientControl is executing on timestep_end, it is hard or maybe impossible to make it work with recovery. In a normal simulation, if PIDTransientControl is executed on timestep_end, then that control value would be in the controlled object at the start of the next timestep. But if a simulation is recovered, currently PIDTransientControl does nothing to initialize the controlled parameter to the recovered value and so when the simulation is restarted using --recover, the initial parameter value will be used instead of the recovered value. Maybe the workaround would be to always use timestep_begin, but it would be better if timestep_end was supported.
Design
Add an override of initialSetup and have this initialize the controlled object when doing a recover.
Impact
Seems like PIDTransientControl can't be made to work properly with recovery if it was executing on timestep_end in a simulation