def METHOD_NAME(self, start=None):
    """Reset the timestepper
    If start is None it resets to the original self.start, otherwise
    start is used as the new starting point.
    """
    self._current = None
    current_length = len(self)
    if start is None:
        current_index = 0
    else:
        # Determine which period the start time is within
        for index, period in enumerate(self._periods):
            if period.start_time <= start < period.end_time:
                current_index = index
                break
        else:
            raise ValueError(
                "New starting position is outside the range of the model timesteps."
            )
    self._next = _core.Timestep(
        self._periods[current_index], current_index, self._deltas[current_index]
    )
    length_changed = self._last_length != current_length
    self._last_length = current_length
    return length_changed