Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r5886 -r5926 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 5886) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 5926) @@ -264,46 +264,17 @@ designResults = new List(); MacroStabilityOutputItem macroStabilityOutputItem = ProperMacroStabilityResultsItem(macroStabilityOutput, 0); - if (macroStabilityOutputItem != null) - { - DesignResult designResult = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); - MacroStabilityCommonHelper.FillDesignResult(macroStabilityOutputItem, designResult); - designResult.StabilityDesignResults.NumberOfIterations = lastIterationIndex; - designResult.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; - if (macroStabilityOutputItem.CalculationResult != CalculationResult.Succeeded) - { - var subSoilScenario = damKernelInput.SubSoilScenario; - designResult.StabilityDesignResults.ResultMessage = designScenario.GetResultMessage(subSoilScenario.SoilProfile1D, subSoilScenario.SoilProfile2D); - } - designResults.Add(designResult); - } + AddDesignResult(damKernelInput, designScenario, designResults, macroStabilityOutputItem, macroStabilityOutput); bool isBishopUpliftVan = FailureMechanismParametersMStab.MStabParameters.Model == MStabModelType.BishopUpliftVan; if (isBishopUpliftVan) { macroStabilityOutputItem = ProperMacroStabilityResultsItem(macroStabilityOutput, 1); - if (macroStabilityOutputItem != null) - { - macroStabilityOutputItem = macroStabilityOutput.StabilityOutputItems[1]; - if (macroStabilityOutputItem != null) - { - DesignResult designResult = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); - MacroStabilityCommonHelper.FillDesignResult(macroStabilityOutputItem, designResult); - designResult.StabilityDesignResults.NumberOfIterations = lastIterationIndex; - designResult.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; - designResults.Add(designResult); - } - } + AddDesignResult(damKernelInput, designScenario, designResults, macroStabilityOutputItem, macroStabilityOutput); // If no uplift therefore no UpliftVan calculation was made. So add a fictive (empty) design result. if(macroStabilityOutputItem == null && !macroStabilityOutput.UpliftSituation.IsUplift) { - DesignResult designResultUpliftNoRun = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); - designResultUpliftNoRun.StabilityDesignResults.StabilityModelType = MStabModelType.UpliftVan; - designResultUpliftNoRun.CalculationResult = CalculationResult.NoRun; - designResultUpliftNoRun.SafetyFactor = null; - designResultUpliftNoRun.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; - designResultUpliftNoRun.CalculationSubDir = designResults.Count == 1 ? designResults[0].CalculationSubDir.Replace(MStabModelType.Bishop.ToString(), MStabModelType.UpliftVan.ToString()) : ""; - designResults.Add(designResultUpliftNoRun); + AddDesignResultNoRun(damKernelInput, designScenario, designResults, macroStabilityOutput); } // Now add the overall result for Bishop/UpliftVan only if both results are available. @@ -357,6 +328,34 @@ } } + private static void AddDesignResultNoRun(DamKernelInput damKernelInput, DesignScenario designScenario, List designResults, MacroStabilityOutput macroStabilityOutput) + { + DesignResult designResultUpliftNoRun = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); + designResultUpliftNoRun.StabilityDesignResults.StabilityModelType = MStabModelType.UpliftVan; + designResultUpliftNoRun.CalculationResult = CalculationResult.NoRun; + designResultUpliftNoRun.SafetyFactor = null; + designResultUpliftNoRun.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; + designResultUpliftNoRun.CalculationSubDir = designResults.Count == 1 ? designResults[0].CalculationSubDir.Replace(MStabModelType.Bishop.ToString(), MStabModelType.UpliftVan.ToString()) : ""; + designResults.Add(designResultUpliftNoRun); + } + + private void AddDesignResult(DamKernelInput damKernelInput, DesignScenario designScenario, List designResults, MacroStabilityOutputItem macroStabilityOutputItem, MacroStabilityOutput macroStabilityOutput) + { + if (macroStabilityOutputItem != null) + { + DesignResult designResult = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); + MacroStabilityCommonHelper.FillDesignResult(macroStabilityOutputItem, designResult); + designResult.StabilityDesignResults.NumberOfIterations = lastIterationIndex; + designResult.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; + if (macroStabilityOutputItem.CalculationResult != CalculationResult.Succeeded) + { + var subSoilScenario = damKernelInput.SubSoilScenario; + designResult.StabilityDesignResults.ResultMessage = designScenario.GetResultMessage(subSoilScenario.SoilProfile1D, subSoilScenario.SoilProfile2D); + } + designResults.Add(designResult); + } + } + /// /// Calculates the design at point. ///