/// <summary>
        /// Continues the simulation.
        /// </summary>
        /// <param name="simulation">The time-based simulation</param>
        /// <param name="delta">The initial probing timestep.</param>
        public virtual void Continue(TimeSimulation simulation, ref double delta)
        {
            // Allow registered methods to modify the timestep
            var args = new ModifyTimestepEventArgs(simulation, delta);

            OnContinue(args);

            // Shift the solutions and overwrite index 0 with the current solution
            IntegrationStates.Cycle();
            BaseTime = Time;

            // Update the new timestep
            IntegrationStates[0].Delta = args.Delta;
        }