Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r1229 -r1233 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1229) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1233) @@ -549,8 +549,7 @@ var location = damKernelInput.Location; var surfaceLine = damKernelInput.Location.SurfaceLine; var subSoilScenario = damKernelInput.SubSoilScenario; - double riverLevel = 0.5 * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).Z + - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).Z); + double riverLevel = damKernelInput.RiverLevelHigh; List errorMessages; if (iterationIndex < 1) { @@ -571,7 +570,7 @@ mstabProjectFilename, damKernelInput.Location, riverLevel, - 0.0, + damKernelInput.RiverLevelLow, subSoilScenario, embankmentDesignParameters, location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope.Value, damMacroStabilityInput.FailureMechanismParametersMStab, Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorCombinedSlopeAndShoulderAdaption.cs =================================================================== diff -u -r1218 -r1233 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorCombinedSlopeAndShoulderAdaption.cs (.../DesignCalculatorCombinedSlopeAndShoulderAdaption.cs) (revision 1218) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorCombinedSlopeAndShoulderAdaption.cs (.../DesignCalculatorCombinedSlopeAndShoulderAdaption.cs) (revision 1233) @@ -73,6 +73,7 @@ try { + iterationIndex = 1; bool isRedesignRequired; location.AlignBoundaryPointsOfPL1LineWithAdaptedSurfaceLine(surfaceLine); List locationCalculationMessages; @@ -141,6 +142,8 @@ // Calculate again designScenario.Location.AlignBoundaryPointsOfPL1LineWithAdaptedSurfaceLine(surfaceLine); + damKernelInput.Location.SurfaceLine = surfaceLine; + kernelWrapper.PrepareDesign(kernelDataInput, kernelDataOutput, damKernelInput, iterationIndex, out embankmentDesignParameters); DesignCalculatorUtils.KernelCalculate(out kernelDataInput, kernelWrapper, out kernelDataOutput, damKernelInput, iterationIndex, out locationCalculationMessages); calculationMessages.AddRange(locationCalculationMessages); isRedesignRequired = !kernelWrapper.EvaluateDesign(damKernelInput, kernelDataInput, kernelDataOutput, out designAdvise, out evaluationMessage); Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityInwardsTests.cs =================================================================== diff -u -r1225 -r1233 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 1225) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 1233) @@ -781,7 +781,7 @@ // Zone 1 entrypoint circle local Z = 4.144 // Zone 1 exitpoint circle local X = 67.077 // Zone 1 exitpoint circle local Z = 1.677 - // Iterations = 5 + // Iterations = 4 public void CanPerformStabilityInwardsDesignTutorialDesignOptimizedSlopeAndShoulderAdaption_OneLocation() { const string calcDir = "TestStabInwardsBishopDesign"; @@ -804,13 +804,14 @@ Assert.AreEqual(CalculationResult.Succeeded, ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults.DesignResults[0].CalculationResult)); SurfaceLine2 redesignedSurfaceLine = actualDamProjectData.DesignCalculations[0].StabilityDesignResults.RedesignedSurfaceLine; - Assert.AreEqual(1.444, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); - Assert.AreEqual(1.444, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1SafetyFactor, tolerance); - - Assert.AreEqual(39.081, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1EntryPointX, tolerance); - Assert.AreEqual(67.577, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1ExitPointX, tolerance); - Assert.AreEqual(45.387, redesignedSurfaceLine.GetDikeLength(), tolerance); - Assert.AreEqual(5, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.NumberOfIterations); + Assert.AreEqual(1.412, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.SafetyFactor, tolerance); + Assert.AreEqual(1.412, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1SafetyFactor, tolerance); + Assert.AreEqual(50.236, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1EntryPointX, tolerance); + Assert.AreEqual(67.077, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.Zone1ExitPointX, tolerance); + Assert.AreEqual(43.760, redesignedSurfaceLine.GetDikeLength(), tolerance); +// Assert.AreEqual(3.889, redesignedSurfaceLine.DetermineShoulderHeight(), tolerance); +// Assert.AreEqual(4.9, redesignedSurfaceLine.GetDikeHeight(), tolerance); + Assert.AreEqual(4, output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.NumberOfIterations); Assert.AreEqual("", output.Results.CalculationResults.DesignResults[0].StabilityDesignResults.ResultMessage); }