public Form1() { InitializeComponent(); Text += " (rev: " + rev + ')'; // Init scenes etc. fVis = new FlowVisualization(this); fVis.progress = progress = new SimulationProgress(this, fVis); fVis.InitializeScenes(); buttonRes.Text = FormResolution.GetLabel(ref ImageWidth, ref ImageHeight); }
/// <summary> /// Starts a simulation on the curent thread and runs to completion /// </summary> /// <param name="func"></param> /// <param name="args"></param> public T[] Start(T[] initialValues) { SimulationStart?.Invoke(this, new SimulationEventArgs <T>()); T[] result = InitialConditions.InitialCondition(initialValues); var deltaTime = 0.0; while (true) { var iterResult = Iteration(CalculateDeltaTime(ref deltaTime), result); SimulationProgress?.Invoke(this, new SimulationEventArgs <T>(iterResult.Item1)); if (iterResult.Item2.IsComplete(iterResult.Item1)) { SimulationStopping?.Invoke(this, new SimulationEventArgs <T>(iterResult.Item1)); break; } } SimulationStopped?.Invoke(this, new SimulationEventArgs <T>(result)); return(result); }
public static void SimulationUpdate(object sender, SimulationProgress progress) { Console.WriteLine(progress.SimulationIdentifier + ": " + progress.Message); }