This addresses an issue where restoring from a checkpoint coincides with an iteration marked Revert by ROL2.0, triggering a ROL.UpdateType.Revert operation. Previously, this scenario would cause an error when self.rf.tape.restore_block_vars(self._tape_cache) is executed without an available _tape_cache. To resolve this, the implementation now checks for the availability of _tape_cache. If it is not available yet, the tape is recomputed using x.dat, and subsequently, self._tape_cache is updated accordingly.
This addresses an issue where restoring from a checkpoint coincides with an iteration marked Revert by ROL2.0, triggering a ROL.UpdateType.Revert operation. Previously, this scenario would cause an error when self.rf.tape.restore_block_vars(self._tape_cache) is executed without an available _tape_cache. To resolve this, the implementation now checks for the availability of _tape_cache. If it is not available yet, the tape is recomputed using x.dat, and subsequently, self._tape_cache is updated accordingly.