Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r999 -r1004 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 999) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1004) @@ -338,17 +338,9 @@ throw new NoNullAllowedException(Resources.DamMacroStabilityKernelWrapper_PostProcess_NoOutputObjectDefinedForMacroStability); } - string soilProfile2DName = damKernelInput.SubSoilScenario.ToString(); - designResults = new List(); - var designResult = new DesignResult(damKernelInput.DamFailureMechanismeCalculationSpecification, - damKernelInput.DesignScenario, damKernelInput.SubSoilScenario.SoilProfile1D, soilProfile2DName, - DamProjectCalculationSpecification.SelectedAnalysisType) - { - // initialize as failed - CalculationResult = CalculationResult.RunFailed - }; - + var designResult = NewDesignResult(damKernelInput); + if (damMacroStabilityOutput.StabilityOutputItems.Count > 0) { var damMacroStabilityOutputItem = damMacroStabilityOutput.StabilityOutputItems[0]; @@ -361,9 +353,7 @@ } if (damMacroStabilityOutput.StabilityOutputItems.Count > 1) { - designResult = new DesignResult(damKernelInput.DamFailureMechanismeCalculationSpecification, - damKernelInput.DesignScenario, damKernelInput.SubSoilScenario.SoilProfile1D, soilProfile2DName, - DamProjectCalculationSpecification.SelectedAnalysisType); + designResult = NewDesignResult(damKernelInput); var damMacroStabilityOutputItem = damMacroStabilityOutput.StabilityOutputItems[1]; if (damMacroStabilityOutputItem != null) { @@ -383,24 +373,41 @@ } } - private static void FillDesignResult(DamMacroStabilityOutputItem damMacroStabilityOutputItem, DesignResult designResult) + private DesignResult NewDesignResult(DamKernelInput damKernelInput) { - var stabilityDesignResults = new StabilityDesignResults + string soilProfile2DName = damKernelInput.SubSoilScenario.ToString(); + var designResult = new DesignResult(damKernelInput.DamFailureMechanismeCalculationSpecification, + damKernelInput.DesignScenario, damKernelInput.SubSoilScenario.SoilProfile1D, soilProfile2DName, + DamProjectCalculationSpecification.SelectedAnalysisType) { - Zone1SafetyFactor = damMacroStabilityOutputItem.Zone1Results.SafetyFactor, - LocalZone1EntryPointX = damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointLeftXCoordinate, - LocalZone1ExitPointX = damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointRightXCoordinate + // initialize as failed + CalculationResult = CalculationResult.RunFailed }; - stabilityDesignResults.SafetyFactor = stabilityDesignResults.Zone1SafetyFactor; + var stabilityDesignResults = new StabilityDesignResults(); + stabilityDesignResults.RedesignedSurfaceLine = damKernelInput.Location.SurfaceLine; + designResult.StabilityDesignResults = stabilityDesignResults; + return designResult; + } + + private static void FillDesignResult(DamMacroStabilityOutputItem damMacroStabilityOutputItem, DesignResult designResult) + { + designResult.StabilityDesignResults.Zone1SafetyFactor = + damMacroStabilityOutputItem.Zone1Results.SafetyFactor; + designResult.StabilityDesignResults.LocalZone1EntryPointX = + damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointLeftXCoordinate; + designResult.StabilityDesignResults.LocalZone1ExitPointX = + damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointRightXCoordinate; + + designResult.StabilityDesignResults.SafetyFactor = designResult.StabilityDesignResults.Zone1SafetyFactor; + if (damMacroStabilityOutputItem.Zone2Results != null) { var zone2 = (DamMacroStabilityOutputItem.ResultsSingleZone) damMacroStabilityOutputItem.Zone2Results; - stabilityDesignResults.Zone2SafetyFactor = zone2.SafetyFactor; - stabilityDesignResults.LocalZone2EntryPointX = zone2.CircleSurfacePointLeftXCoordinate; - stabilityDesignResults.LocalZone2ExitPointX = zone2.CircleSurfacePointRightXCoordinate; - stabilityDesignResults.SafetyFactor = Math.Min(damMacroStabilityOutputItem.Zone1Results.SafetyFactor, zone2.SafetyFactor); + designResult.StabilityDesignResults.Zone2SafetyFactor = zone2.SafetyFactor; + designResult.StabilityDesignResults.LocalZone2EntryPointX = zone2.CircleSurfacePointLeftXCoordinate; + designResult.StabilityDesignResults.LocalZone2ExitPointX = zone2.CircleSurfacePointRightXCoordinate; + designResult.StabilityDesignResults.SafetyFactor = Math.Min(damMacroStabilityOutputItem.Zone1Results.SafetyFactor, zone2.SafetyFactor); } - designResult.StabilityDesignResults = stabilityDesignResults; } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs =================================================================== diff -u -r995 -r1004 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 995) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 1004) @@ -61,13 +61,10 @@ // Zone1SafetyFactor=1.282 Assert.AreEqual(1.282, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1SafetyFactor, tolerance); - // ToDo zant: from kernel zone 1: CircleSurfacePointLeftXCoordinate=38.818, EntryPointXCoordinate=0 - // and CircleSurfacePointRightXCoordinate=64.262, ExitPointXCoordinate=0 - - // Zone1EntryPointX Local=38.818 Global=47.238 - // Assert.AreEqual(38.818, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1EntryPointX, tolerance); + // Zone1EntryPointX Local =38.818 Global=47.238 + Assert.AreEqual(38.818, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1EntryPointX, tolerance); // Zone1ExitPointX Local=64.262 Global=72.682 - // Assert.AreEqual(64.262, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1ExitPointX, tolerance); + Assert.AreEqual(64.262, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1ExitPointX, tolerance); // Zone2SafetyFactor null, is set to default reading from output.xml Assert.AreEqual(0, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone2SafetyFactor, tolerance); @@ -81,6 +78,8 @@ // ResultMessage "" Assert.AreEqual("", output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.ResultMessage); + Assert.IsNotNull(output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.RedesignedSurfaceLine); + // Calculation Result Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); }