Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs
===================================================================
diff -u -r5404 -r5627
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs (.../UpliftHelper.cs) (revision 5404)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs (.../UpliftHelper.cs) (revision 5627)
@@ -49,13 +49,16 @@
riverLevelLow = damKernelInput.RiverLevelLow;
}
- var sensorPlLineCreatorSettings = new SensorPlLineCreatorSettings();
- sensorPlLineCreatorSettings.SensorLocation = damKernelInput.Location.SensorLocation;
- sensorPlLineCreatorSettings.DateTime = damKernelInput.TimeStepDateTime;
+ var sensorPlLineCreatorSettings = new SensorPlLineCreatorSettings
+ {
+ SensorLocation = damKernelInput.Location.SensorLocation,
+ DateTime = damKernelInput.TimeStepDateTime
+ };
PlLines plLines = PlLinesHelper.CreatePlLinesForStability(damKernelInput.Location, damKernelInput.SubSoilScenario, riverLevel,
riverLevelLow, sensorPlLineCreatorSettings, out upliftSituation);
- upliftSituation.IsUplift = DetermineIsUplift(plLines, damKernelInput.Location, damKernelInput.SubSoilScenario);
-
+ upliftSituation.IsUplift = DetermineIsUplift(plLines, damKernelInput.Location, damKernelInput.SubSoilScenario, out double xCoordLowestUpliftFactor);
+ upliftSituation.XCoordinateLowestUpliftFactorPoint = xCoordLowestUpliftFactor;
+
return plLines;
}
@@ -65,24 +68,27 @@
/// The pl lines.
/// The location.
/// The sub soil scenario.
+ /// The X co-ordinate of the point with the lowest uplift factor.
/// true if there is uplift
- private bool DetermineIsUplift(PlLines plLines, Location location, SoilGeometryProbability subSoilScenario)
+ private static bool DetermineIsUplift(PlLines plLines, Location location, SoilGeometryProbability subSoilScenario, out double xCoordLowestUpliftFactor)
{
if (plLines == null)
{
+ xCoordLowestUpliftFactor = double.NaN;
return false;
}
double upliftCriterion = location.ModelFactors.UpliftCriterionStability;
SurfaceLine2 surfaceLineWithNewHeight = location.SurfaceLine;
double? upliftFactor = GetLowestUpliftFactor(surfaceLineWithNewHeight,
subSoilScenario.SoilProfile1D, subSoilScenario.FullStiFileName,
- subSoilScenario.SoilProfile2D, plLines, location);
+ subSoilScenario.SoilProfile2D, plLines, location, out xCoordLowestUpliftFactor);
+
return upliftFactor < upliftCriterion;
}
- private double? GetLowestUpliftFactor(SurfaceLine2 surfaceLine, SoilProfile1D soilProfile1D, string soilGeometry2DName,
- SoilProfile2D soilProfile2D, PlLines plLines, Location location)
+ private static double? GetLowestUpliftFactor(SurfaceLine2 surfaceLine, SoilProfile1D soilProfile1D, string soilGeometry2DName,
+ SoilProfile2D soilProfile2D, PlLines plLines, Location location, out double xCoordLowestUpliftFactor)
{
var upliftLocationDeterminator = new UpliftLocationDeterminator
{
@@ -95,7 +101,8 @@
PlLines = plLines,
XSoilGeometry2DOrigin = location.XSoilGeometry2DOrigin
};
- UpliftLocationAndResult upliftLocationAndResult = upliftLocationDeterminator.GetLocationAtWithLowestUpliftFactor();
+ UpliftLocationAndResult upliftLocationAndResult = upliftLocationDeterminator.GetLocationWithLowestUpliftFactor();
+ xCoordLowestUpliftFactor = upliftLocationAndResult.X;
return upliftLocationAndResult?.UpliftFactor;
}
}
\ No newline at end of file