Example #1
0
        /// <summary>
        /// Method is called when <see cref="IMike1DController.ControllerEvent"/> is triggered.
        /// </summary>
        private void CatchmentUrbanSnowPlowingControllerEvent(object sender, ControllerEventArgs e)
        {
            // Listen for Prepared event (i.e. model is ready to run)
            if (e.State == ControllerState.Prepared)
            {
                Mike1DController controller = (Mike1DController)sender;

                // Find all urban catchments, loop over all catchments
                foreach (ICatchment catchment in controller.Mike1DData.RainfallRunoffData.Catchments)
                {
                    // Check if it is an urban catchment
                    if (catchment is CatchmentAbstractUrban)
                    {
                        CatchmentAbstractUrban catchmentAbstractUrban = catchment as CatchmentAbstractUrban;
                        // Check if snow-module is enabled.
                        if (catchmentAbstractUrban.UseSnowModule)
                        {
                            // Set up plowing for urban catchment
                            UrbanCatchmentPlowing urbanCatchmentPlowing = new UrbanCatchmentPlowing(catchmentAbstractUrban);
                            catchment.PostTimeStepEvent += urbanCatchmentPlowing.Plowing;
                        }
                    }
                }
            }
        }
Example #2
0
        public void SetMaxNumberOfThreads(IMike1DController controller)
        {
            Mike1DController hdController = controller as Mike1DController;

            if (hdController != null)
            {
                hdController.MaxNumberOfThreadsUser = 1;
            }
        }
Example #3
0
        private void ControllerOnControllerEvent(object sender, ControllerEventArgs e)
        {
            if (e.State == ControllerState.Initialized)
            {
                _mike1dController = (Mike1DController)sender;
                _mike1dController.Mike1DData.ResultSpecifications[0].WhatAddUnique(DAWaterVolumeChangeCalculator.QuantVolChangeDa);
                _mike1dController.Mike1DData.ResultSpecifications[0].WhatAddUnique(DAWaterVolumeChangeCalculator.QuantAccVolChangeDA);
            }

            if (e.State == ControllerState.Preparing)
            {
                _engineNet = _mike1dController.EngineNet;
                CreateVolCalculator(_engineNet);
                _engineNet.EvaluateHDImplicitSourcesEvent += PostHDTimeStepEvent;
            }

            if (e.State == ControllerState.Finalizing)
            {
                string totalAddedWater = _daWaterVolumeChangeCalculator.GetAccumulatedAddedVolume().ToString();
                _mike1dController.DiagnosticsHandler.NewMessage(DiagnosticsHandler.MessageType.Info, "DA - Total added water volume: " + totalAddedWater + " m3");
            }
        }