Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs
===================================================================
diff -u -r16fef01c5d2d8ef8d15c652585efa85125ba7b25 -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision 16fef01c5d2d8ef8d15c652585efa85125ba7b25)
+++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoDikeAssessmentSectionCommand.cs (.../AddNewDemoDikeAssessmentSectionCommand.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -101,6 +101,7 @@
var calculation = pipingFailureMechanism.CalculationsGroup.GetPipingCalculations().First();
calculation.InputParameters.SurfaceLine = pipingFailureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001");
calculation.InputParameters.SoilProfile = pipingFailureMechanism.SoilProfiles.First(sl => sl.Name == "AD640M00_Segment_36005_1D2");
+ calculation.InputParameters.PhreaticLevelExit.Mean = 3;
}
}
}
\ No newline at end of file
Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs
===================================================================
diff -u -rb588090d11df233f6913bb2f49e8aa3bf29ebc27 -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision b588090d11df233f6913bb2f49e8aa3bf29ebc27)
+++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoDikeAssessmentSectionCommandTest.cs (.../AddNewDemoDikeAssessmentSectionCommandTest.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -129,12 +129,12 @@
Assert.IsTrue(PipingCalculationService.Validate(calculation));
PipingCalculationService.Calculate(calculation);
Assert.IsTrue(calculation.HasOutput);
- Assert.AreEqual(0.0021, calculation.Output.HeaveFactorOfSafety, 1e-3);
- Assert.AreEqual(-143.3235, calculation.Output.HeaveZValue, 1e-3);
- Assert.AreEqual(4.4072, calculation.Output.UpliftFactorOfSafety, 1e-3);
- Assert.AreEqual(5.6044, calculation.Output.UpliftZValue, 1e-3);
- Assert.AreEqual(0.0016, calculation.Output.SellmeijerFactorOfSafety, 1e-3);
- Assert.AreEqual(-1.6387, calculation.Output.SellmeijerZValue, 1e-3);
+ Assert.AreEqual(99.0, calculation.Output.HeaveFactorOfSafety, 1e-3);
+ Assert.AreEqual(118.627, calculation.Output.HeaveZValue, 1e-3);
+ Assert.AreEqual(99.0, calculation.Output.UpliftFactorOfSafety, 1e-3);
+ Assert.AreEqual(3.655, calculation.Output.UpliftZValue, 1e-3);
+ Assert.AreEqual(-1.56, calculation.Output.SellmeijerFactorOfSafety, 1e-3);
+ Assert.AreEqual(3.478, calculation.Output.SellmeijerZValue, 1e-3);
}
private static void AssertExpectedPipingInput(PipingInput inputParameters)
@@ -158,9 +158,9 @@
Assert.AreEqual("AD640M00_Segment_36005_1D2", inputParameters.SoilProfile.Name);
Assert.AreEqual(3.666, PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(inputParameters).GetDesignValue(), 1e-3);
- Assert.AreEqual(-1.645, PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(inputParameters).GetDesignValue(), 1e-3);
+ Assert.AreEqual(1.355, PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(inputParameters).GetDesignValue(), 1e-3);
Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(inputParameters).GetDesignValue(), 1e-3);
- Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetSeepageLength(inputParameters).GetDesignValue(), 1e-3);
+ Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetSeepageLength(inputParameters).GetDesignValue(), 92.614006456265088);
Assert.AreEqual(0.011, PipingSemiProbabilisticDesignValueFactory.GetDiameter70(inputParameters).GetDesignValue(), 1e-3);
Assert.AreEqual(2.345, PipingSemiProbabilisticDesignValueFactory.GetDarcyPermeability(inputParameters).GetDesignValue(), 1e-3);
Assert.AreEqual(2.345, PipingSemiProbabilisticDesignValueFactory.GetThicknessAquiferLayer(inputParameters).GetDesignValue(), 1e-3);
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs
===================================================================
diff -u -r94417e55fa4f44b35c8b9876c6423a94631df967 -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 94417e55fa4f44b35c8b9876c6423a94631df967)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -19,6 +19,8 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
+using System.Linq;
using Core.Common.Base;
using Ringtoets.Piping.Data.Probabilistics;
@@ -30,6 +32,8 @@
///
public class PipingInput : Observable
{
+ private RingtoetsPipingSurfaceLine surfaceLine;
+
///
/// Initializes a new instance of the class.
///
@@ -194,8 +198,35 @@
///
/// Gets or sets the surface line.
///
- public RingtoetsPipingSurfaceLine SurfaceLine { get; set; }
+ public RingtoetsPipingSurfaceLine SurfaceLine
+ {
+ get
+ {
+ return surfaceLine;
+ }
+ set
+ {
+ surfaceLine = value;
+ UpdateValuesBasedOnSurfaceLine();
+ }
+ }
+ private void UpdateValuesBasedOnSurfaceLine()
+ {
+ var entryPointIndex = Array.IndexOf(surfaceLine.Points.ToArray(), surfaceLine.DikeToeAtRiver);
+ var exitPointIndex = Array.IndexOf(surfaceLine.Points.ToArray(), surfaceLine.DikeToeAtPolder);
+
+ if (entryPointIndex > -1 && exitPointIndex > -1)
+ {
+ var localGeometry = surfaceLine.ProjectGeometryToLZ().ToArray();
+ var entryPointL = localGeometry.ElementAt(entryPointIndex).X;
+ var exitPointL = localGeometry.ElementAt(exitPointIndex).X;
+
+ ExitPointL = exitPointL;
+ SeepageLength.Mean = exitPointL - entryPointL;
+ }
+ }
+
///
/// Gets or sets the profile which contains a 1 dimensional definition of soil layers with properties.
///
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/RingtoetsPipingSurfaceLine.cs
===================================================================
diff -u -r9d1ffc9bd1a9c392c6b832422649a0ad2f5ff59c -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/RingtoetsPipingSurfaceLine.cs (.../RingtoetsPipingSurfaceLine.cs) (revision 9d1ffc9bd1a9c392c6b832422649a0ad2f5ff59c)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/RingtoetsPipingSurfaceLine.cs (.../RingtoetsPipingSurfaceLine.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -182,7 +182,7 @@
/// Thrown when doesn't contain a at
/// .
/// is null.
- public void SetDikeToeAtRiver(Point3D point)
+ public void SetDikeToeAtRiverAt(Point3D point)
{
DikeToeAtRiver = GetPointFromGeometry(point);
}
@@ -194,7 +194,7 @@
/// Thrown when doesn't contain a at
/// .
/// is null.
- public void SetDikeToeAtPolder(Point3D point)
+ public void SetDikeToeAtPolderAt(Point3D point)
{
DikeToeAtPolder = GetPointFromGeometry(point);
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/PipingSurfaceLinesCsvImporter.cs
===================================================================
diff -u -reff889238a2ecfab9aacabe9b99a35c6989006d9 -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/PipingSurfaceLinesCsvImporter.cs (.../PipingSurfaceLinesCsvImporter.cs) (revision eff889238a2ecfab9aacabe9b99a35c6989006d9)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/FileImporter/PipingSurfaceLinesCsvImporter.cs (.../PipingSurfaceLinesCsvImporter.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -375,13 +375,13 @@
TrySetCharacteristicPoint(
characteristicPointsLocation.DikeToeAtRiver,
- readSurfaceLine.SetDikeToeAtRiver,
+ readSurfaceLine.SetDikeToeAtRiverAt,
readSurfaceLine.Name,
RingtoetsPluginResources.CharacteristicPoint_DikeToeAtRiver);
TrySetCharacteristicPoint(
characteristicPointsLocation.DikeToeAtPolder,
- readSurfaceLine.SetDikeToeAtPolder,
+ readSurfaceLine.SetDikeToeAtPolderAt,
readSurfaceLine.Name,
RingtoetsPluginResources.CharacteristicPoint_DikeToeAtPolder);
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs
===================================================================
diff -u -r79e69f1b4b303862f3572d0f6cb60acf63a957e9 -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 79e69f1b4b303862f3572d0f6cb60acf63a957e9)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -1,7 +1,7 @@
using System;
using Core.Common.Base;
-
+using Core.Common.Base.Geometry;
using NUnit.Framework;
using Ringtoets.Piping.Data.Probabilistics;
@@ -63,5 +63,46 @@
Assert.AreEqual(37, inputParameters.BeddingAngle);
Assert.AreEqual(2.08e-4, inputParameters.MeanDiameter70);
}
+
+ [Test]
+ public void SurfaceLine_WithDikeToeDikeSideAndDikeToeRiverSide_SetsExitPointLAndSeePageLength()
+ {
+ // Setup
+ var inputParameters = new PipingInput();
+ RingtoetsPipingSurfaceLine surfaceLine = new RingtoetsPipingSurfaceLine();
+ var firstPointX = 1.0;
+ var secondPointX = 4.0;
+ var point1 = new Point3D { X = firstPointX, Y = 0.0, Z = 2.0 };
+ var point2 = new Point3D { X = secondPointX, Y = 0.0, Z = 1.8 };
+ surfaceLine.SetGeometry(new []
+ {
+ point1,
+ point2,
+ });
+ surfaceLine.SetDikeToeAtRiverAt(point1);
+ surfaceLine.SetDikeToeAtPolderAt(point2);
+
+ // Call
+ inputParameters.SurfaceLine = surfaceLine;
+
+ // Assert
+ Assert.AreEqual(secondPointX - firstPointX, inputParameters.SeepageLength.Mean);
+ Assert.AreEqual(secondPointX - firstPointX, inputParameters.ExitPointL);
+ }
+
+ [Test]
+ public void SurfaceLine_WithoutDikeToeDikeSideAndDikeToeRiverSide_NoChangeForExitPointLAndSeePageLength()
+ {
+ // Setup
+ var inputParameters = new PipingInput();
+ RingtoetsPipingSurfaceLine surfaceLine = new RingtoetsPipingSurfaceLine();
+
+ // Call
+ inputParameters.SurfaceLine = surfaceLine;
+
+ // Assert
+ Assert.AreEqual(Math.Exp(-0.5), inputParameters.SeepageLength.Mean);
+ Assert.AreEqual(0, inputParameters.ExitPointL);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/RingtoetsPipingSurfaceLineTest.cs
===================================================================
diff -u -r9d1ffc9bd1a9c392c6b832422649a0ad2f5ff59c -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/RingtoetsPipingSurfaceLineTest.cs (.../RingtoetsPipingSurfaceLineTest.cs) (revision 9d1ffc9bd1a9c392c6b832422649a0ad2f5ff59c)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/RingtoetsPipingSurfaceLineTest.cs (.../RingtoetsPipingSurfaceLineTest.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -542,7 +542,7 @@
}
[Test]
- public void SetDikeToeAtRiver_PointInGeometry_PointSetFromGeometry()
+ public void SetDikeToeAtRiverAt_PointInGeometry_PointSetFromGeometry()
{
// Setup
var testX = 1.0;
@@ -558,15 +558,15 @@
CreateTestGeometry(testPoint, surfaceLine);
// Call
- surfaceLine.SetDikeToeAtRiver(testPoint);
+ surfaceLine.SetDikeToeAtRiverAt(testPoint);
// Assert
Assert.AreEqual(testPoint, surfaceLine.DikeToeAtRiver);
Assert.AreNotSame(testPoint, surfaceLine.DikeToeAtRiver);
}
[Test]
- public void SetDikeToeAtRiver_GeometryEmpty_ThrowsInvalidOperationException()
+ public void SetDikeToeAtRiverAt_GeometryEmpty_ThrowsInvalidOperationException()
{
// Setup
var random = new Random(21);
@@ -582,7 +582,7 @@
var surfaceLine = new RingtoetsPipingSurfaceLine();
// Call
- TestDelegate test = () => surfaceLine.SetDikeToeAtRiver(testPoint);
+ TestDelegate test = () => surfaceLine.SetDikeToeAtRiverAt(testPoint);
// Assert
var message = string.Format(Resources.RingtoetsPipingSurfaceLine_SetCharacteristicPointAt_Geometry_does_not_contain_point_at_0_1_2_to_assign_as_characteristic_point,
@@ -591,20 +591,20 @@
}
[Test]
- public void SetDikeToeAtRiver_Null_ThrowsArgumentNullException()
+ public void SetDikeToeAtRiverAt_Null_ThrowsArgumentNullException()
{
// Setup
var surfaceLine = new RingtoetsPipingSurfaceLine();
// Call
- TestDelegate test = () => surfaceLine.SetDikeToeAtRiver(null);
+ TestDelegate test = () => surfaceLine.SetDikeToeAtRiverAt(null);
// Assert
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "Cannot find a point in geometry using a null point.");
}
[Test]
- public void SetDikeToeAtPolder_PointInGeometry_PointSetFromGeometry()
+ public void SetDikeToeAtPolderAt_PointInGeometry_PointSetFromGeometry()
{
// Setup
var testX = 1.0;
@@ -620,15 +620,15 @@
CreateTestGeometry(testPoint, surfaceLine);
// Call
- surfaceLine.SetDikeToeAtPolder(testPoint);
+ surfaceLine.SetDikeToeAtPolderAt(testPoint);
// Assert
Assert.AreEqual(testPoint, surfaceLine.DikeToeAtPolder);
Assert.AreNotSame(testPoint, surfaceLine.DikeToeAtPolder);
}
[Test]
- public void SetDikeToeAtPolder_GeometryEmpty_ThrowsInvalidOperationException()
+ public void SetDikeToeAtPolderAt_GeometryEmpty_ThrowsInvalidOperationException()
{
// Setup
var random = new Random(21);
@@ -644,7 +644,7 @@
var surfaceLine = new RingtoetsPipingSurfaceLine();
// Call
- TestDelegate test = () => surfaceLine.SetDikeToeAtPolder(testPoint);
+ TestDelegate test = () => surfaceLine.SetDikeToeAtPolderAt(testPoint);
// Assert
var message = string.Format(Resources.RingtoetsPipingSurfaceLine_SetCharacteristicPointAt_Geometry_does_not_contain_point_at_0_1_2_to_assign_as_characteristic_point,
@@ -653,13 +653,13 @@
}
[Test]
- public void SetDikeToeAtPolder_Null_ThrowsArgumentNullException()
+ public void SetDikeToeAtPolderAt_Null_ThrowsArgumentNullException()
{
// Setup
var surfaceLine = new RingtoetsPipingSurfaceLine();
// Call
- TestDelegate test = () => surfaceLine.SetDikeToeAtPolder(null);
+ TestDelegate test = () => surfaceLine.SetDikeToeAtPolderAt(null);
// Assert
TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "Cannot find a point in geometry using a null point.");
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/RingtoetsPipingSurfaceLinePropertiesTest.cs
===================================================================
diff -u -r9d1ffc9bd1a9c392c6b832422649a0ad2f5ff59c -rb4ce929ce35e4770f3d8c12d14174de79cc5bee8
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/RingtoetsPipingSurfaceLinePropertiesTest.cs (.../RingtoetsPipingSurfaceLinePropertiesTest.cs) (revision 9d1ffc9bd1a9c392c6b832422649a0ad2f5ff59c)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/RingtoetsPipingSurfaceLinePropertiesTest.cs (.../RingtoetsPipingSurfaceLinePropertiesTest.cs) (revision b4ce929ce35e4770f3d8c12d14174de79cc5bee8)
@@ -50,8 +50,8 @@
point1,
point2
});
- surfaceLine.SetDikeToeAtRiver(point1);
- surfaceLine.SetDikeToeAtPolder(point2);
+ surfaceLine.SetDikeToeAtRiverAt(point1);
+ surfaceLine.SetDikeToeAtPolderAt(point2);
surfaceLine.SetDitchDikeSideAt(point1);
surfaceLine.SetBottomDitchDikeSideAt(point1);
surfaceLine.SetBottomDitchPolderSideAt(point2);