Difference between revisions of "correctness"
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
* Correctness! Rules! | * Correctness! Rules! | ||
+ | |||
+ | * 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 | ||
+ | * NRPy Fork | ||
+ | ** https://github.com/stevenrbrandt/nrpytutorial.git |
Latest revision as of 16:15, 2 February 2022
- Correctness! Rules!
- 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
- NRPy Fork