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