Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r5302 -r5303 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 5302) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 5303) @@ -283,44 +283,56 @@ } } // If no uplift therefore no UpliftVan calculation was made. So add a fictive (empty) design result. - else + if(macroStabilityOutputItem == null && macroStabilityOutput.UpliftSituation.IsUplift == false) { DesignResult designResultUpliftNoRun = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); designResultUpliftNoRun.StabilityDesignResults.StabilityModelType = MStabModelType.UpliftVan; designResultUpliftNoRun.CalculationResult = CalculationResult.NoRun; designResults.Add(designResultUpliftNoRun); } - int index; - // add worst result from Bishop/UpliftVan, but only if both succeeded. - if (designResults[0].CalculationResult == CalculationResult.Succeeded && - designResults[1].CalculationResult == CalculationResult.Succeeded) + // Now add the overall result for Bishop/UpliftVan only if both results are available. + if (macroStabilityOutput.StabilityOutputItems.Count == 2) { - index = designResults[0].StabilityDesignResults.SafetyFactor <= designResults[1].StabilityDesignResults.SafetyFactor ? 0 : 1; + int index; + // add worst result from Bishop/UpliftVan, but only if both succeeded. + if (designResults[0].CalculationResult == CalculationResult.Succeeded && + designResults[1].CalculationResult == CalculationResult.Succeeded) + { + index = designResults[0].StabilityDesignResults.SafetyFactor <= designResults[1].StabilityDesignResults.SafetyFactor ? 0 : 1; + } + else if (designResults[0].CalculationResult != CalculationResult.Succeeded) + { + // There is no reason why Bishop should not have succeeded therefore no end results can be given + index = 0; + } + else if (designResults[1].CalculationResult == CalculationResult.NoRun) + { + // No uplift therefore no UpliftVan calculation was made. Present Bishop result. + index = 0; + } + else + { + // UpliftVan calculation failed. No end results can be given + index = 1; + } + + macroStabilityOutputItem = ProperMacroStabilityResultsItem(macroStabilityOutput, index); + if (macroStabilityOutputItem != null) + { + DesignResult overallResult = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); + MacroStabilityCommonHelper.FillDesignResult(macroStabilityOutputItem, overallResult); + overallResult.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; + overallResult.StabilityDesignResults.StabilityModelType = MStabModelType.BishopUpliftVan; + designResults.Add(overallResult); + } } - else if (designResults[0].CalculationResult != CalculationResult.Succeeded) - { - // There is no reason why Bishop should not have succeeded therefore no end results can be given - index = 0; - } - else if (designResults[1].CalculationResult == CalculationResult.NoRun) - { - // No uplift therefore no UpliftVan calculation was made. Present Bishop result. - index = 0; - } + // If not both Bishop and Uplift-Van results are available, this is unexpected. else { - // UpliftVan calculation failed. No end results can be given - index = 1; - } - - macroStabilityOutputItem = ProperMacroStabilityResultsItem(macroStabilityOutput, index); - if (macroStabilityOutputItem != null) - { DesignResult overallResult = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); - MacroStabilityCommonHelper.FillDesignResult(macroStabilityOutputItem, overallResult); - overallResult.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; overallResult.StabilityDesignResults.StabilityModelType = MStabModelType.BishopUpliftVan; + overallResult.CalculationResult = CalculationResult.UnexpectedError; designResults.Add(overallResult); } }