Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r4331 -r4411 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 4331) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 4411) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Data; using System.IO; +using System.Linq; using System.Text.RegularExpressions; using Deltares.DamEngine.Calculators.KernelWrappers.Common; using Deltares.DamEngine.Calculators.KernelWrappers.Interfaces; @@ -106,20 +107,34 @@ /// /// The dam kernel input. /// - public BishopCalculationGrid FillBishopCalculationGrid(DamKernelInput damKernelInput) + public BishopCalculationGrid FillBishopCalculationGrid(DamKernelInput damKernelInput) { SlipCircleDefinition slipCircleDefinition = damKernelInput.DamFailureMechanismeCalculationSpecification .FailureMechanismParametersMStab.MStabParameters.SlipCircleDefinition; double minimumCircleDepth = damKernelInput.DamFailureMechanismeCalculationSpecification .FailureMechanismParametersMStab.MStabParameters.CalculationOptions.MinimalCircleDepth; MStabGridPosition gridPosition = damKernelInput.DamFailureMechanismeCalculationSpecification .FailureMechanismParametersMStab.MStabParameters.GridPosition; - BishopCalculationGrid bishopCalculationGrid = BishopGridCreator.DetermineGridsFromSettings(gridPosition, - slipCircleDefinition, damKernelInput.Location.SurfaceLine); + BishopCalculationGrid bishopCalculationGrid = BishopGridCreator.DetermineGridsFromSettings(gridPosition, + slipCircleDefinition, damKernelInput.Location.SurfaceLine); double centerOfLeftGridXCoordinate = (bishopCalculationGrid.GridXLeft + bishopCalculationGrid.GridXRight) * 0.5; + if (bishopCalculationGrid.IsGridsAutomatic) + { + if (damKernelInput.DamFailureMechanismeCalculationSpecification.FailureMechanismSystemType == + FailureMechanismSystemType.StabilityInside) + { + centerOfLeftGridXCoordinate = damKernelInput.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint( + CharacteristicPointType.DikeToeAtPolder).X; + } + else + { + centerOfLeftGridXCoordinate = damKernelInput.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint( + CharacteristicPointType.DikeToeAtRiver).X; + } + } SoilProfile1D soilProfile1DAtCenterOfLeftGridXCoordinate = - damKernelInput.SubSoilScenario.DetermineSoilProfile1DAtX(centerOfLeftGridXCoordinate, damKernelInput.Location.SurfaceLine, - damKernelInput.Location.GetDikeEmbankmentSoil()); + damKernelInput.SubSoilScenario.DetermineSoilProfile1DAtX(centerOfLeftGridXCoordinate, + damKernelInput.Location.SurfaceLine, damKernelInput.Location.GetDikeEmbankmentSoil()); BishopGridCreator.DetermineTangentLines(bishopCalculationGrid, slipCircleDefinition, soilProfile1DAtCenterOfLeftGridXCoordinate, minimumCircleDepth); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityOutputItem.cs =================================================================== diff -u -r4052 -r4411 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityOutputItem.cs (.../MacroStabilityOutputItem.cs) (revision 4052) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityOutputItem.cs (.../MacroStabilityOutputItem.cs) (revision 4411) @@ -55,14 +55,6 @@ public CalculationResult CalculationResult { get; set; } /// - /// Gets or sets the circle surface point left x coordinate - /// - /// - /// The circle surface point left x coordinate - /// - public double CircleSurfacePointLeftXCoordinate { get; set; } - - /// /// Gets or sets the circle surface point right x coordinate /// /// Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperOutput.cs =================================================================== diff -u -r4052 -r4411 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperOutput.cs (.../FillEngineFromMacroStabilityWrapperOutput.cs) (revision 4052) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperOutput.cs (.../FillEngineFromMacroStabilityWrapperOutput.cs) (revision 4411) @@ -95,6 +95,11 @@ { MinimumSafetyCurveBase minimumSafetyCurveBase = kernelOutput.StabilityOutput.MinimumSafetyCurve; FillSlices(minimumSafetyCurveBase, outputItem); + if (outputItem.CalculationResult == CalculationResult.Succeeded && minimumSafetyCurveBase != null && + minimumSafetyCurveBase.Slices != null && minimumSafetyCurveBase.Slices.Any()) + { + outputItem.CircleSurfacePointRightXCoordinate = minimumSafetyCurveBase.Slices.Last().TopRightPoint.X; + } } macroStabilityOutput.StabilityOutputItems.Add(outputItem);