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);