How to preserve reproducibility when applying perturbations in the event of a numerical instability crash

I can’t see any issue with what you’ve suggested @holger.

To be explicit, I would do as @holger suggests, with these specific steps

  1. Run the perturbIC.pywith known seed
  2. Then payu setup, which will rewrite the manifest file with your new (perturbed) restart(s)
  3. git commit -a and write a commit message documenting the steps you have taken to perturb the restarts, with the seed value and the location of the script used
  4. payu run

You shouldn’t need to invoke a specific script with userscripts. If the run reproduces then it will reliably crash at the same location, and checking the git log will then give the instructions for what was done and how to reproduce it.

1 Like