/// <summary> /// Starts probing a new timepoint. /// </summary> /// <param name="simulation">The time-based simulation.</param> /// <param name="delta">The timestep to be probed.</param> public virtual void Probe(TimeSimulation simulation, double delta) { // Allow an additional truncation if necessary var args = new TruncateTimestepEventArgs(simulation, delta); OnTruncateProbe(args); // Advance the probing time Time = BaseTime + args.Delta; IntegrationStates[0].Delta = args.Delta; }
/// <summary> /// Raises the <see cref="E:TruncateProbe" /> event. /// </summary> /// <param name="args">The <see cref="TruncateTimestepEventArgs"/> instance containing the event data.</param> protected virtual void OnTruncateProbe(TruncateTimestepEventArgs args) => TruncateProbe?.Invoke(this, args);