public ActionResult Simulation(VGeneralProperties model)
        {
            if (_model == null)
            {
                return RedirectToAction("Simulation");
            }
            ViewBag.Title = SimulationPageTitle;
            lock (_model)
            {
                model.WindFarm = _model.WindFarm;
                ObjectMapperManager.DefaultInstance.GetMapper<VGeneralProperties, VGeneralProperties>().Map(model, _model);
            }
            var dWindFarm = _ctx.DWindFarms.First(e => _model.WindFarm == e.Name);
            var turbines = dWindFarm.DWindFarmTurbines.OrderBy(t => t.Number).Select(t => new decimal[] { t.Number, t.X, t.Y }).ToList();
            var turbinesCoordinates = new double[turbines.Count, 2];
            for (var index = 0; index < turbinesCoordinates.GetLength(0); index++)
            {
                var turbine = turbines[index];
                turbinesCoordinates[index, 0] = (double)(turbine[1]);
                turbinesCoordinates[index, 1] = (double)(turbine[2]);
            }

            var config = new WakeFarmControlR.WakeFarmControlConfig()
            {
                Turbines = turbinesCoordinates,
            };
            config.enablePowerDistribution = _model.EnablePowerDistribution;
            config.enableTurbineDynamics = _model.EnableTurbineDynamics;
            config.powerRefInterpolation = _model.PowerRefInterpolation;
            config.enableVaryingDemand = _model.EnableVaryingDemand;

            config.SimParm.timeStep = (double)_model.TimeStep;
            config.SimParm.tEnd = (double)_model.StopTime;
            config.SimParm.ctrlUpdate = (double)_model.ControlUpdateInterval;
            config.SimParm.powerUpdate = (double)_model.PowerUpdateInterval;
            config.InitialPowerDemand = (double)_model.InitialPowerDemand;

            config.NREL5MW_MatFile = WebConfigurationManager.AppSettings["WakeFarmControlRNREL5MW"]; // @"c:\farmcontrol\NREL5MW_Runc.mat";
            config.Wind_MatFile = WebConfigurationManager.AppSettings["WakeFarmControlRWind"]; // @"c:\farmcontrol\wind_Runc.mat";

            double[][] simulationDataOut;
            List<string> simulationInformationMessages;
            _simulation = WakeFarmControlR.FarmControl.Simulation(config, out simulationDataOut, out simulationInformationMessages);
            _simulationTurbines = turbines;
            _simulationTimeStep = _model.TimeStep;
            _simulationDataOut = simulationDataOut;
            _simulationInformationMessages = simulationInformationMessages;
            return RedirectToAction("Results");
        }
 public ActionResult Simulation()
 {
     ViewBag.Title = SimulationPageTitle;
     if (_model == null)
     {
         _model = new VGeneralProperties();
         //_model.TimeStep = (decimal)(0.1);
         //_wfl = new List<string>();
         _simulation = null;
         _simulationDataOut = null;
         _nowcastingSimulationResult = null;
         _nowcastingSimulationWarningMessages = null;
     }
     var model = new VGeneralProperties();
     ObjectMapperManager.DefaultInstance.GetMapper<VGeneralProperties, VGeneralProperties>().Map(_model, model);
     return View(model);
 }