From Einstein Toolkit Documentation
- Existing
- Previous PreSync paper: https://doi.org/10.1145/3332186.3333042
- poisoning
- functions check_valid and poison_invalid
- poisoning used for restriction, prolongation, new time levels, cycling time levels, etc.
- InvalidateTimeLevels invalidates non-checkpointed vars (but not used? see schedule.cxx:1436)
- CallFunction poisons output variables that aren't also input variables (if poisoned_undefined_values)
- Validity
- error_if_invalid checks that variable is valid in region requested by function (used by ErrorEst and CallFunction)
- CallFunction usese checksums to validate that read-only variables aren't written (if poisoned_undefined_values)
- DECLARE_CCTK_ARGUMENTSX_{func}
- Planned
- NRPy+ cactusthorn.py will do bounds checking