Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs =================================================================== diff -u -r8cb270db5fbcb82f19d6f3a390f083e9e0516d8c -rb63c17a1ec42d980aad2b4e19664fd5414fb995e --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 8cb270db5fbcb82f19d6f3a390f083e9e0516d8c) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision b63c17a1ec42d980aad2b4e19664fd5414fb995e) @@ -139,26 +139,40 @@ { throw new ArgumentNullException(nameof(calculation)); } + if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } + if (generalInput == null) { throw new ArgumentNullException(nameof(generalInput)); } + + var totalSteps = 1; + string calculationName = calculation.Name; string hlcdDirectory = Path.GetDirectoryName(hydraulicBoundaryDatabaseFilePath); + SubCalculationAssessmentOutput dikeHeightOutput = null; + SubCalculationAssessmentOutput overtoppingRateOutput = null; + bool calculateDikeHeight = calculation.InputParameters.DikeHeightCalculationType != DikeHeightCalculationType.NoCalculation; - int totalSteps = calculateDikeHeight ? 2 : 1; - string calculationName = calculation.Name; + if (calculateDikeHeight) + { + totalSteps++; + } - NotifyProgress(Resources.GrassCoverErosionInwardsCalculationService_Calculate_Executing_overtopping_calculation, 1, totalSteps); + bool calculateOvertoppingRate = calculation.InputParameters.OvertoppingRateCalculationType != OvertoppingRateCalculationType.NoCalculation; + if (calculateOvertoppingRate) + { + totalSteps++; + } + NotifyProgress(Resources.GrassCoverErosionInwardsCalculationService_Calculate_Executing_overtopping_calculation, 1, totalSteps); CalculationServiceHelper.LogCalculationBeginTime(calculationName); overtoppingCalculator = HydraRingCalculatorFactory.Instance.CreateOvertoppingCalculator(hlcdDirectory); OvertoppingCalculationInput overtoppingCalculationInput = CreateOvertoppingInput(calculation, generalInput, hydraulicBoundaryDatabaseFilePath); - SubCalculationAssessmentOutput dikeHeight = null; try { @@ -190,7 +204,7 @@ if (dikeHeightCalculated) { - dikeHeight = CreateDikeHeightAssessmentOutput(calculationName, dikeHeightCalculationInput.Beta, norm); + dikeHeightOutput = CreateDikeHeightAssessmentOutput(calculationName, dikeHeightCalculationInput.Beta, norm); } } @@ -202,7 +216,7 @@ failureMechanismContribution, generalInput.N, overtoppingCalculator.ExceedanceProbabilityBeta), - dikeHeight, + dikeHeightOutput, null); } finally @@ -221,8 +235,8 @@ /// Thrown when /// or the calculated probability falls outside the [0.0, 1.0] range and is not . private SubCalculationAssessmentOutput CreateDikeHeightAssessmentOutput(string calculationName, - double targetReliability, - double targetProbability) + double targetReliability, + double targetProbability) { double dikeHeight = dikeHeightCalculator.DikeHeight; double reliability = dikeHeightCalculator.ReliabilityIndex; @@ -236,8 +250,8 @@ } return new SubCalculationAssessmentOutput(dikeHeight, targetProbability, - targetReliability, probability, reliability, - converged); + targetReliability, probability, reliability, + converged); } private static double GetProbabilityToUse(double assessmentSectionNorm, GeneralGrassCoverErosionInwardsInput generalInput,