Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/DamMacroStabilityOutputItem.cs
===================================================================
diff -u -r999 -r1028
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/DamMacroStabilityOutputItem.cs (.../DamMacroStabilityOutputItem.cs) (revision 999)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/DamMacroStabilityOutputItem.cs (.../DamMacroStabilityOutputItem.cs) (revision 1028)
@@ -38,14 +38,6 @@
public CalculationResult CalculationResult { get; set; }
///
- /// Gets or sets the uplift situation.
- ///
- ///
- /// The uplift situation.
- ///
- public UpliftSituation UpliftSituation { get; set; }
-
- ///
/// Structure holding the resuls per zone
///
public struct ResultsSingleZone
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs
===================================================================
diff -u -r1026 -r1028
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 1026)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/MacroStabilityTests.cs (.../MacroStabilityTests.cs) (revision 1028)
@@ -21,7 +21,6 @@
using System.IO;
using System.Text.RegularExpressions;
-using Deltares.DamEngine.Data.Standard;
using Deltares.DamEngine.Data.Standard.Calculation;
using Deltares.DamEngine.Io;
using Deltares.DamEngine.Io.XmlInput;
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs
===================================================================
diff -u -r1019 -r1028
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 1019)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 1028)
@@ -95,6 +95,11 @@
damKernelInput.SubSoilScenario.StiFileName));
}
+ // Determine whether there is uplift
+ var upliftSituation = UpliftHelper.DetermineStabilityUplift(damKernelInput, true);
+ damMacroStabilityOutput.UpliftSituation = upliftSituation;
+ kernelDataOutput = damMacroStabilityOutput;
+
var damMacroStabilityInput = new DamMacroStabilityInput()
{
DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath,
@@ -264,7 +269,7 @@
LocalZone1EntryPointX = damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointRightXCoordinate,
LocalZone1ExitPointX = damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointLeftXCoordinate,
ResultMessage = resultMessage,
- UpliftSituation = damMacroStabilityOutputItem.UpliftSituation
+ UpliftSituation = damMacroStabilityOutput.UpliftSituation
};
stabilityDesignResults.SafetyFactor = stabilityDesignResults.Zone1SafetyFactor;
if (damMacroStabilityOutputItem.Zone2Results != null)
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj
===================================================================
diff -u -r1009 -r1028
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 1009)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 1028)
@@ -62,6 +62,7 @@
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs
===================================================================
diff -u
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs (revision 0)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs (revision 1028)
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Deltares.DamEngine.Calculators.Uplift;
+using Deltares.DamEngine.Data.General;
+using Deltares.DamEngine.Data.General.PlLines;
+using Deltares.DamEngine.Data.Geotechnics;
+
+namespace Deltares.DamEngine.Calculators.KernelWrappers.Common
+{
+ ///
+ /// Helper for Uplift
+ ///
+ public class UpliftHelper
+ {
+ public static UpliftSituation DetermineStabilityUplift(DamKernelInput damKernelInput, bool useRivelLevelLow)
+ {
+ var location = damKernelInput.Location;
+ var upliftCriterion = damKernelInput.DesignScenario.GetUpliftCriterionStability(location.ModelFactors.UpliftCriterionStability);
+ var riverLevel = damKernelInput.DesignScenario.RiverLevel;
+ double? riverLevelLow = null;
+ if (useRivelLevelLow)
+ {
+ riverLevelLow = damKernelInput.DesignScenario.RiverLevelLow;
+ }
+ var soilGeometry2DName = damKernelInput.SubSoilScenario.FullStiFileName;
+ UpliftSituation upliftSituation;
+ var plLines = PlLinesHelper.CreatePlLinesForStability(location, damKernelInput.SubSoilScenario, riverLevel,
+ soilGeometry2DName, riverLevelLow, out upliftSituation);
+ if (plLines != null)
+ {
+ var surfaceLineWithNewHeight = location.SurfaceLine;
+ double? upliftFactor = GetLowestUpliftFactor(surfaceLineWithNewHeight,
+ damKernelInput.SubSoilScenario.SoilProfile1D, soilGeometry2DName, plLines, location);
+ upliftSituation.IsUplift = (upliftFactor < upliftCriterion);
+ }
+ else
+ {
+ upliftSituation.IsUplift = false;
+ }
+ return upliftSituation;
+ }
+
+ public static double? GetLowestUpliftFactor(SurfaceLine2 surfaceLine, SoilProfile1D soilProfile, string soilGeometry2DName,
+ PLLines plLines, Location location)
+ {
+ var upliftLocationDeterminator = new UpliftLocationDeterminator()
+ {
+ SurfaceLine = surfaceLine,
+ SoilProfile = soilProfile,
+ SoilGeometry2DName = soilGeometry2DName,
+ SoilList = location.SoilList,
+ DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil(),
+ PLLines = plLines,
+ XSoilGeometry2DOrigin = location.XSoilGeometry2DOrigin
+ };
+ UpliftLocationAndResult upliftLocationAndResult = upliftLocationDeterminator.GetLocationAtWithLowestUpliftFactor();
+ return upliftLocationAndResult?.UpliftFactor;
+ }
+
+ }
+}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs
===================================================================
diff -u -r1026 -r1028
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1026)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1028)
@@ -98,7 +98,7 @@
};
// Determine whether there is uplift
- var upliftSituation = DetermineStabilityUplift(damKernelInput);
+ var upliftSituation = UpliftHelper.DetermineStabilityUplift(damKernelInput, false);
damMacroStabilityOutput.UpliftSituation = upliftSituation;
kernelDataOutput = damMacroStabilityOutput;
@@ -170,47 +170,6 @@
return PrepareResult.NotRelevant;
}
- private UpliftSituation DetermineStabilityUplift(DamKernelInput damKernelInput)
- {
- var location = damKernelInput.Location;
- var upliftCriterion = damKernelInput.DesignScenario.GetUpliftCriterionStability(location.ModelFactors.UpliftCriterionStability);
- var riverLevel = damKernelInput.DesignScenario.RiverLevel;
- double? riverLevelLow = null; // Use value only for Outside
- var soilGeometry2DName = damKernelInput.SubSoilScenario.FullStiFileName;
- UpliftSituation upliftSituation;
- var plLines = PlLinesHelper.CreatePlLinesForStability(location, damKernelInput.SubSoilScenario, riverLevel,
- soilGeometry2DName, riverLevelLow, out upliftSituation);
- if (plLines != null)
- {
- var surfaceLineWithNewHeight = location.SurfaceLine;
- double? upliftFactor = GetLowestUpliftFactor(surfaceLineWithNewHeight,
- damKernelInput.SubSoilScenario.SoilProfile1D, soilGeometry2DName, plLines, location);
- upliftSituation.IsUplift = (upliftFactor < upliftCriterion);
- }
- else
- {
- upliftSituation.IsUplift = false;
- }
- return upliftSituation;
- }
-
- private double? GetLowestUpliftFactor(SurfaceLine2 surfaceLine, SoilProfile1D soilProfile, string soilGeometry2DName,
- PLLines plLines, Location location)
- {
- var upliftLocationDeterminator = new UpliftLocationDeterminator()
- {
- SurfaceLine = surfaceLine,
- SoilProfile = soilProfile,
- SoilGeometry2DName = soilGeometry2DName,
- SoilList = location.SoilList,
- DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil(),
- PLLines = plLines,
- XSoilGeometry2DOrigin = location.XSoilGeometry2DOrigin
- };
- UpliftLocationAndResult upliftLocationAndResult = upliftLocationDeterminator.GetLocationAtWithLowestUpliftFactor();
- return upliftLocationAndResult?.UpliftFactor;
- }
-
///
/// Validates the specified kernel data input.
///
@@ -447,8 +406,6 @@
designResult.StabilityDesignResults.LocalZone2ExitPointX = zone2.CircleSurfacePointRightXCoordinate;
designResult.StabilityDesignResults.SafetyFactor = Math.Min(damMacroStabilityOutputItem.Zone1Results.SafetyFactor, zone2.SafetyFactor);
}
-
- designResult.StabilityDesignResults.UpliftSituation = damMacroStabilityOutputItem.UpliftSituation;
}
}
}