Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
 public static void SimulationUpdate(object sender, SimulationProgress progress)
 {
     Console.WriteLine(progress.SimulationIdentifier + ": " + progress.Message);
 }