Hello Gabriele,
yes, I can see this being a potentially useful setup and something that I had hacked into the code myself on some occasions before (mostly to ensure that the SYNC on MoL_PostStep in POST_RECOVER_VARIABLES is space only).
I would be good to spell out the usage case for this so that others who would find this useful can chime in and the functionality added is useful to many groups.
Adding extra meaning to the values on the trigger file would be doable as well. Only, rather than using numbers, I suggest using strings and eg pre-fill the file with commented out versions of the allowed strings to serve as a reminder for users what can be set.
Yours, Roland
Hi,
I don't have time to do this myself at the moment, but I think it would be very useful to be able to ask TerminationTrigger to trigger termination at a multiple of a given iteration.
The main application for this is ReadInterpolate. I am trying to use the thorn to change some fundamental parameters of the simulation of my ongoing runs. ReadInterpolate requires the checkpoints to be all at the same time. The checkpoints my simulations naturally produce do not fulfill this requirement, so what I have to do is to do a small run with cctk_itlast set to a number I manually have to compute so that all the refinement levels are synced. This is doable, but rather inconvenient to do every time.
The change I propose is to introduce a range of "termination times" to TerminationTrigger instead of a single value (on_remaining_walltime). The idea is that as soon as the remaining walltime is less than the lower end of the range, TerminationTrigger will terminate only when the iteration is a multiple of a specified value. If the the high end of the range is reached, than this condition is no longer checked and the termination is triggered immediately (current behavior). Similarly, it would be nice to add a new sentinel value to the termination file. E.g., if I write the number 2 in the termination file, then TerminationTrigger will stop at the first iteration that is multiple of the given value instead of stopping immediately.
I think that these changes would be rather simple to implement, and if the default value for "terminate_at_multiple_of" is set to 1, then they would be backwards compatible.
At the moment, I cannot implement these changes myself, but I leave the idea here as a suggestion for future improvements.
If anyone has a better way to do what I want to do, I'd be happy to hear that.
Best, Gabriele