Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 2791)
@@ -125,7 +125,7 @@
// bij zeedijken en de maatgevende hoogwaterstand (MHW bij rivierdijken) en de waterstand binnendijks ter plaatse van het uittredepunt,
// rekening houdend met zeespiegelrijzing etc.(zie paragraaf 3.7.2). In dien ter plaatse van het uittreepunt of de opbarstlocatie
// geen vrije waterstand heerst kan gerekend worden met het maaiveldniveau, rekening houdend met eventuele maaiveld daling (zie paragraaf 3.7.2)."
- var referenceLevel = Math.Max(location.PolderLevel, surfaceLevel);
+ var referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, surfaceLevel);
kernelDataInput = new DamPipingBlighInput()
{
HRiver = waterLevel,
@@ -303,7 +303,7 @@
// The following 2 parameters are dependent on the position of the point and have to be recalculated for the current point
double dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, point.Z); // point.Z is surfacelevel
damPipingBlighInput.DTotal = dCoverLayer;
- double referenceLevel = Math.Max(location.PolderLevel, point.Z); // point.Z is surfacelevel
+ double referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, point.Z); // point.Z is surfacelevel
damPipingBlighInput.HExit = referenceLevel;
// Calculate the piping safety factor using the level of the given point
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Sensors/SensorPLLineCreatorTest.cs
===================================================================
diff -u -r2718 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Sensors/SensorPLLineCreatorTest.cs (.../SensorPLLineCreatorTest.cs) (revision 2718)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Sensors/SensorPLLineCreatorTest.cs (.../SensorPLLineCreatorTest.cs) (revision 2791)
@@ -23,6 +23,7 @@
using System.Collections.Generic;
using System.Linq;
using Deltares.DamEngine.Calculators.PlLinesCreator;
+using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.General.PlLines;
using Deltares.DamEngine.Data.General.Sensors;
@@ -122,11 +123,7 @@
CharacteristicPoints = { GeometryMustContainPoint = true },
Geometry = new GeometryPointString()
};
- var location = new Location("test")
- {
- RiverLevel = 1,
- PolderLevel = 1
- };
+ var location = CreateProperLocation("test", 1, 1);
location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.LocationData;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.LocationData;
@@ -231,11 +228,7 @@
},
Geometry = new GeometryPointString()
};
- var location = new Location("test")
- {
- RiverLevel = 5,
- PolderLevel = polderLevel
- };
+ var location = CreateProperLocation("test", 5, polderLevel);
location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.LocationData;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.LocationData;
@@ -298,11 +291,7 @@
CharacteristicPoints = { GeometryMustContainPoint = true },
Geometry = new GeometryPointString()
};
- var location = new Location("test")
- {
- RiverLevel = riverLevel,
- PolderLevel = -1
- };
+ var location = CreateProperLocation("test", riverLevel, -1);
location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.LocationData;
@@ -364,9 +353,9 @@
};
var location = new Location("test")
{
- RiverLevel = 5,
- PolderLevel = -1
+ RiverLevel = 5
};
+ location.Scenarios[0].PolderLevel = -1;
location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = DataSourceTypeSensors.LocationData;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.LocationData;
@@ -457,11 +446,7 @@
},
Geometry = new GeometryPointString()
};
- var location = new Location("test")
- {
- RiverLevel = 1,
- PolderLevel = 1
- };
+ var location = CreateProperLocation("test", 1, 1);
location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.Ignore;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.Ignore;
@@ -547,6 +532,17 @@
Assert.AreEqual(expectedZValueP4, p4.Z);
}
+ private Location CreateProperLocation(string name, double riverLevel, double polderLevel)
+ {
+ var location = new Location(name)
+ {
+ RiverLevel = riverLevel
+ };
+ var scenario = new DesignScenario {PolderLevel = polderLevel};
+ location.Scenarios.Add(scenario);
+ return location;
+ }
+
[Test]
public void CreatePlLinePl1_DikeHasDitch_ResultsAreAsExpected()
{
@@ -558,13 +554,10 @@
},
Geometry = new GeometryPointString()
};
- var location = new Location("test")
- {
- RiverLevel = 1, PolderLevel = 1
- };
- #region Setup
+ var location = CreateProperLocation("test", 1, 1);
+ #region Setup
- location.AddSensorLocation();
+ location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.Ignore;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.Ignore;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = DataSourceTypeSensors.Ignore;
@@ -656,13 +649,10 @@
},
Geometry = new GeometryPointString()
};
- var location = new Location("test")
- {
- RiverLevel = waterLevel, PolderLevel = polderLevel
- };
- #region Setup
+ var location = CreateProperLocation("test", 1, polderLevel);
+ #region Setup
- location.AddSensorLocation();
+ location.AddSensorLocation();
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = DataSourceTypeSensors.Ignore;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = DataSourceTypeSensors.Ignore;
location.SensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = DataSourceTypeSensors.Ignore;
@@ -749,11 +739,8 @@
},
Geometry = new GeometryPointString()
};
- var location = new Location("test")
+ var location = CreateProperLocation("test", waterLevel, waterLevel);
{
- RiverLevel = waterLevel, PolderLevel = waterLevel
- };
- {
location.AddSensorLocation();
location.SensorLocation.SourceTypePl3 = DataSourceTypeSensors.Sensor;
location.SensorLocation.SourceTypePl1WaterLevelAtRiver = DataSourceTypeSensors.LocationData;
@@ -825,11 +812,8 @@
},
Geometry = new GeometryPointString()
};
- var location = new Location("test")
+ var location = CreateProperLocation("test", 1, 1);
{
- RiverLevel = 1.0, PolderLevel = 1.0
- };
- {
location.AddSensorLocation();
location.SensorLocation.SourceTypePl3 = DataSourceTypeSensors.Sensor;
location.SensorLocation.SourceTypePl1WaterLevelAtRiver = DataSourceTypeSensors.Sensor;
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Design/DesignScenario.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Design/DesignScenario.cs (.../DesignScenario.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Design/DesignScenario.cs (.../DesignScenario.cs) (revision 2791)
@@ -110,6 +110,15 @@
}
}
+ ///
+ /// Gets or sets the polder level.
+ ///
+ ///
+ /// The polder level.
+ ///
+ public double PolderLevel { get; set; }
+
+
[Browsable(false)]
public StringCollection Errors { get; private set; }
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/PlLinesHelper.cs
===================================================================
diff -u -r2111 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/PlLinesHelper.cs (.../PlLinesHelper.cs) (revision 2111)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/PlLinesHelper.cs (.../PlLinesHelper.cs) (revision 2791)
@@ -115,7 +115,7 @@
IsUseLowWaterLevel = (waterLevelRiverLow != null),
WaterLevelRiverHigh = waterLevel,
SurfaceLine = location.SurfaceLine,
- WaterLevelPolder = location.PolderLevel,
+ WaterLevelPolder = location.Scenarios[0].PolderLevel,
HeadInPlLine2 = location.HeadPl2,
HeadInPlLine3 = location.HeadPl3,
HeadInPlLine4 = location.HeadPl4,
@@ -164,7 +164,7 @@
{
WaterLevelRiverHigh = waterLevel,
SurfaceLine = location.SurfaceLine,
- WaterLevelPolder = location.PolderLevel,
+ WaterLevelPolder = location.Scenarios[0].PolderLevel,
HeadInPlLine2 = location.HeadPl2,
HeadInPlLine3 = location.HeadPl3,
HeadInPlLine4 = location.HeadPl4,
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineAdapterTest.cs
===================================================================
diff -u -r1970 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineAdapterTest.cs (.../SurfaceLineAdapterTest.cs) (revision 1970)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineAdapterTest.cs (.../SurfaceLineAdapterTest.cs) (revision 2791)
@@ -42,7 +42,7 @@
[ExpectedException(typeof(ArgumentNullException))]
public void ThrowsAnExceptionWhenSurfaceLineIsNull()
{
- new StubSurfaceLineAdapter(null, location);
+ new StubSurfaceLineAdapter(null, location, 0);
}
[Test]
@@ -61,7 +61,7 @@
surfaceLine.EnsurePoint(1, 0);
surfaceLine.EnsurePoint(2, 0);
surfaceLine.EnsurePoint(3, 0);
- new StubSurfaceLineAdapter(surfaceLine, location);
+ new StubSurfaceLineAdapter(surfaceLine, location, 0);
}
[Test]
@@ -80,7 +80,7 @@
surfaceLine1.EnsurePointOfType(0, 0, CharacteristicPointType.DikeTopAtRiver);
surfaceLine1.EnsurePointOfType(0, 0, CharacteristicPointType.DikeTopAtPolder);
surfaceLine1.EnsurePointOfType(0, 0, CharacteristicPointType.DikeToeAtPolder);
- new StubSurfaceLineAdapter(surfaceLine1, location);
+ new StubSurfaceLineAdapter(surfaceLine1, location, 0);
}
[Test]
@@ -102,7 +102,7 @@
surfaceLine1.EnsurePointOfType(p2.X, p2.Z, CharacteristicPointType.DikeTopAtRiver);
surfaceLine1.EnsurePointOfType(p3.X, p3.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine1.EnsurePointOfType(p1.X, p1.Z, CharacteristicPointType.DikeToeAtPolder);
- new StubSurfaceLineAdapter(surfaceLine1, location);
+ new StubSurfaceLineAdapter(surfaceLine1, location, 0);
}
[Test]
@@ -128,13 +128,13 @@
surfaceLine1.EnsurePointOfType(p4.X, p4.Z, CharacteristicPointType.ShoulderBaseInside);
surfaceLine1.EnsurePointOfType(p5.X, p5.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine1.EnsurePointOfType(p1.X, p1.Z, CharacteristicPointType.DikeToeAtPolder);
- new StubSurfaceLineAdapter(surfaceLine1, location);
+ new StubSurfaceLineAdapter(surfaceLine1, location, 0);
}
class StubSurfaceLineAdapter : SurfaceLineAdapter
{
- public StubSurfaceLineAdapter(SurfaceLine2 surfaceLine, Location location)
- : base(surfaceLine, location)
+ public StubSurfaceLineAdapter(SurfaceLine2 surfaceLine, Location location, double scenarioPolderLevel)
+ : base(surfaceLine, location, scenarioPolderLevel)
{
}
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Sensors/SensorLocationTests.cs
===================================================================
diff -u -r1970 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Sensors/SensorLocationTests.cs (.../SensorLocationTests.cs) (revision 1970)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Sensors/SensorLocationTests.cs (.../SensorLocationTests.cs) (revision 2791)
@@ -20,6 +20,7 @@
// All rights reserved.
using System.Collections.Generic;
+using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.General.Sensors;
using NUnit.Framework;
@@ -304,7 +305,7 @@
const double testValue = 1.1;
var sensorValues = new Dictionary { { sensor, testValue } };
var sensorLocation = CreateValidSensorLocation();
- location.PolderLevel = testValue;
+ location.Scenarios[0].PolderLevel = testValue;
sensorLocation.SourceTypePl1WaterLevelAtPolder = DataSourceTypeSensors.LocationData;
@@ -512,7 +513,10 @@
///
private SensorLocation CreateValidSensorLocation()
{
- var factory = new SensorFactory();
+ var factory = new SensorFactory();
+ var scenario = new DesignScenario();
+
+ location.Scenarios.Add(scenario);
var sensorLocation = factory.CreateSensorLocation(location);
return sensorLocation;
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 2791)
@@ -3198,8 +3198,6 @@
private LocationWaternetOptionsPhreaticLineCreationMethod phreaticLineCreationMethodField;
- private double polderLevelField;
-
private double headPl2Field;
private bool headPl2FieldSpecified;
@@ -3229,17 +3227,6 @@
///
[System.Xml.Serialization.XmlAttributeAttribute()]
- public double PolderLevel {
- get {
- return this.polderLevelField;
- }
- set {
- this.polderLevelField = value;
- }
- }
-
- ///
- [System.Xml.Serialization.XmlAttributeAttribute()]
public double HeadPl2 {
get {
return this.headPl2Field;
@@ -3544,6 +3531,8 @@
private double requiredSafetyFactorPipingField;
+ private double polderLevelField;
+
///
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Id {
@@ -3796,6 +3785,17 @@
this.requiredSafetyFactorPipingField = value;
}
}
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double PolderLevel {
+ get {
+ return this.polderLevelField;
+ }
+ set {
+ this.polderLevelField = value;
+ }
+ }
}
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineShoulderAdapter.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineShoulderAdapter.cs (.../SurfaceLineShoulderAdapter.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineShoulderAdapter.cs (.../SurfaceLineShoulderAdapter.cs) (revision 2791)
@@ -38,8 +38,9 @@
///
///
///
+ ///
///
- public SurfaceLineShoulderAdapter(SurfaceLine2 surfaceLine, Location location) : base(surfaceLine, location)
+ public SurfaceLineShoulderAdapter(SurfaceLine2 surfaceLine, Location location, double scenarioPolderLevel) : base(surfaceLine, location, scenarioPolderLevel)
{
if (!surfaceLine.HasAnnotation(CharacteristicPointType.SurfaceLevelInside))
throw new SurfaceLineAdapterException();
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityCommon/DamMacroStabilityTestHelper.cs
===================================================================
diff -u -r2722 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityCommon/DamMacroStabilityTestHelper.cs (.../DamMacroStabilityTestHelper.cs) (revision 2722)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityCommon/DamMacroStabilityTestHelper.cs (.../DamMacroStabilityTestHelper.cs) (revision 2791)
@@ -51,6 +51,8 @@
public static Location CreateLocation(SurfaceLine2 surfaceLine)
{
Location location = new Location();
+ var scenario = new DesignScenario();
+ location.Scenarios.Add(scenario);
location.Name = "LocationName";
location.DikeEmbankmentMaterial = "OB1";
location.ShoulderEmbankmentMaterial = "OB2";
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijerVnk/DamPipingSellmeijerVnkKernelWrapper.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijerVnk/DamPipingSellmeijerVnkKernelWrapper.cs (.../DamPipingSellmeijerVnkKernelWrapper.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijerVnk/DamPipingSellmeijerVnkKernelWrapper.cs (.../DamPipingSellmeijerVnkKernelWrapper.cs) (revision 2791)
@@ -124,7 +124,7 @@
// bij zeedijken en de maatgevende hoogwaterstand (MHW bij rivierdijken) en de waterstand binnendijks ter plaatse van het uittredepunt,
// rekening houdend met zeespiegelrijzing etc.(zie paragraaf 3.7.2). In dien ter plaatse van het uittreepunt of de opbarstlocatie
// geen vrije waterstand heerst kan gerekend worden met het maaiveldniveau, rekening houdend met eventuele maaiveld daling (zie paragraaf 3.7.2)."
- var referenceLevel = Math.Max(location.PolderLevel, surfaceLevel);
+ var referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, surfaceLevel);
Soil inBetweenAquiferlayerSoil = soilProfile1D.BottomAquiferLayer.Soil;
double inBetweenAquiferlayerHeight;
@@ -144,7 +144,7 @@
{
HRiver = waterLevel,
HExit = referenceLevel,
- PolderLevel = location.PolderLevel,
+ PolderLevel = location.Scenarios[0].PolderLevel,
Rc = defaultFluidisationGradient,
DTotal = dCoverLayer,
SeepageLength = seepageLength,
@@ -304,7 +304,7 @@
// The following 2 parameters are dependent on the position of the point and have to be recalculated for the current point
double dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, point.Z); // point.Z is surfacelevel
damPipingInput.DTotal = dCoverLayer;
- double referenceLevel = Math.Max(location.PolderLevel, point.Z); // point.Z is surfacelevel
+ double referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, point.Z); // point.Z is surfacelevel
damPipingInput.HExit = referenceLevel;
// Calculate the piping safety factor using the level of the given point
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineShoulderAdapterTest.cs
===================================================================
diff -u -r1970 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineShoulderAdapterTest.cs (.../SurfaceLineShoulderAdapterTest.cs) (revision 1970)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineShoulderAdapterTest.cs (.../SurfaceLineShoulderAdapterTest.cs) (revision 2791)
@@ -55,7 +55,7 @@
surfaceLine.EnsurePointOfType(pointAtTopRiver.X, pointAtTopRiver.Z, CharacteristicPointType.DikeTopAtRiver);
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
}
///
@@ -83,7 +83,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var constructNewSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(0, 0, false);
Assert.IsNotNull(constructNewSurfaceLine);
}
@@ -117,7 +117,7 @@
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
Assert.IsNull(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside));
Assert.IsNull(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside));
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
Assert.IsNotNull(adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside));
Assert.IsNotNull(adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside));
@@ -150,7 +150,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.67;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
double expectedShoulderHeight = Math.Min(shoulderHeight, surfaceLineAdapter.MaxShoulderLevel - pointAtToePolder.Z);
@@ -186,7 +186,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -220,7 +220,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
double expectedShoulderHeight = Math.Min(shoulderHeight, (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z));
var expectedPoint = new GeometryPoint(
@@ -256,7 +256,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedZ = pointAtTopPolder.Z;
var actualZ = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside).Z;
@@ -287,7 +287,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
double expectedShoulderHeight = Math.Min(shoulderHeight, (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z));
double expectedShoulderBaseX = pointAtTopPolder.X + (1 - expectedShoulderHeight);
@@ -321,7 +321,7 @@
surfaceLine.EnsurePointOfType(4, 0.5, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(5, 0, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.67;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.66, 0.67);
@@ -351,7 +351,7 @@
surfaceLine.EnsurePointOfType(4, 1.5, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(5, 1, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 1, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
surfaceLineAdapter.MaxShoulderLevel = 0.67 + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(6.00, 1);
@@ -390,7 +390,7 @@
surfaceLine.EnsurePointOfType(4, 0.5, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(5, 0, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(10, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(2.857, 1.0);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -432,7 +432,7 @@
surfaceLine.EnsurePoint(extraPoint2.X, extraPoint2.Z);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelOutside.X, pointAtSurfaceLevelOutside.Z, CharacteristicPointType.SurfaceLevelOutside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
double xToePolder = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X;
double xSurfaceLevelInside = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).X;
@@ -497,7 +497,7 @@
const int shoulderHeight = 1;
Assert.IsNull(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside));
Assert.IsNull(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside));
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
EvaluateAdaptedSurfaceLineWithSkewedSurfaceLevelInside(surfaceLine, adaptedSurfaceLine, shoulderHeight, shoulderLength);
}
@@ -513,7 +513,7 @@
surfaceLine.SortPoints();
Assert.IsNull(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside));
Assert.IsNull(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside));
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
Assert.AreEqual(7, surfaceLine.Geometry.Points.Count);
Assert.AreEqual(8, adaptedSurfaceLine.Geometry.Points.Count);
@@ -541,7 +541,7 @@
var location = new Location();
const int shoulderLength = 2;
const int shoulderHeight = 1;
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
EvaluateAdaptedSurfaceLineWithSkewedSurfaceLevelInside(surfaceLine, adaptedSurfaceLine, shoulderHeight, shoulderLength);
}
@@ -558,7 +558,7 @@
surfaceLine.EnsurePoint(12, 0.5);
surfaceLine.EnsurePoint(14, -0.5);
surfaceLine.SortPoints();
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
Assert.AreEqual(12, surfaceLine.Geometry.Points.Count);
Assert.AreEqual(9, adaptedSurfaceLine.Geometry.Points.Count);
@@ -577,7 +577,7 @@
surfaceLine.EnsurePointOfType(pointTrafficLoadInside.X, pointTrafficLoadInside.Z, CharacteristicPointType.TrafficLoadInside);
const int shoulderLength = 2;
const int shoulderHeight = 1;
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPointTrafficLoadOutside = new GeometryPoint { X = 9.5, Z = 1.0 };
var expectedPointTrafficLoadInside = new GeometryPoint { X = 10.5, Z = 1.0 };
@@ -619,7 +619,7 @@
surfaceLine.EnsurePointOfType(ditchBottomAtPolderSide.X, ditchBottomAtPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(ditchTopAtPolderSide.X, ditchTopAtPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -678,7 +678,7 @@
surfaceLine.EnsurePointOfType(ditchBottomAtPolderSide.X, ditchBottomAtPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(ditchTopAtPolderSide.X, ditchTopAtPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -739,7 +739,7 @@
surfaceLine.EnsurePointOfType(ditchTopAtPolderSide.X, ditchTopAtPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePoint(inBetweenPointAtSurfaceLevelInside.X, inBetweenPointAtSurfaceLevelInside.Z);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -790,7 +790,7 @@
surfaceLine.EnsurePointOfType(apoint.X, apoint.Z, null);
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -856,7 +856,7 @@
surfaceLine.EnsurePointOfType(apoint3.X, apoint3.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
Assert.AreEqual(12, surfaceLine.Geometry.Points.Count);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -928,7 +928,7 @@
surfaceLine.EnsurePointOfType(apoint3.X, apoint3.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
Assert.AreEqual(12, surfaceLine.Geometry.Count);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -986,7 +986,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var line = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
}
@@ -1016,7 +1016,7 @@
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z,
CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var line = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
}
@@ -1059,7 +1059,7 @@
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(apoint3.X, apoint3.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var line = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
}
@@ -1089,7 +1089,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = location.NewMaxHeightShoulderAsFraction *
(surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) +
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
@@ -1126,7 +1126,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
double expectedShoulderHeight = Math.Min(shoulderHeight, (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z));
var expectedPoint = new GeometryPoint(3, expectedShoulderHeight);
@@ -1161,7 +1161,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = maxFractionOfDikeHeightForShoulderHeight * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z -
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
@@ -1197,7 +1197,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.8 * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z -
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
@@ -1239,7 +1239,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.5 * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z -
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
@@ -1284,7 +1284,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.5 * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z -
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
@@ -1325,7 +1325,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.5 * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z -
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
surfaceLineAdapter.SlopeOfNewShoulder = 2;
@@ -1368,7 +1368,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0);
surfaceLineAdapter.MaxShoulderLevel = 0.5 * (surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z -
surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z) + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).Z;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
@@ -1412,7 +1412,7 @@
surfaceLine.EnsurePointOfType(apoint.X, apoint.Z, null);
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -1477,7 +1477,7 @@
surfaceLine.EnsurePointOfType(apoint.X, apoint.Z, null);
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -1543,7 +1543,7 @@
surfaceLine.EnsurePointOfType(apoint.X, apoint.Z, null);
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, 0) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
}
@@ -1564,7 +1564,7 @@
location.UseNewMinDistanceDikeToeStartDitch = true;
location.NewMinDistanceDikeToeStartDitch = 1;
location.UseNewDitchDefinition = true;
- location.PolderLevel = -0.2;
+ var polderLevel = -0.2;
location.NewSlopeAngleDitch = 1;
location.NewDepthDitch = 1.8;
location.NewWidthDitchBottom = 2;
@@ -1590,7 +1590,7 @@
surfaceLine.EnsurePointOfType(apoint.X, apoint.Z, null);
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, polderLevel) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
var expectedPoint = new GeometryPoint(3.5, 1);
var actualPoint = adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -1635,7 +1635,7 @@
location.UseNewMinDistanceDikeToeStartDitch = true;
location.NewMinDistanceDikeToeStartDitch = 1;
location.UseNewDitchDefinition = true;
- location.PolderLevel = 20.2;
+ var polderLevel = 20.2;
location.NewSlopeAngleDitch = 1;
location.NewDepthDitch = 1.8;
location.NewWidthDitchBottom = 2;
@@ -1661,7 +1661,7 @@
surfaceLine.EnsurePointOfType(apoint.X, apoint.Z, null);
surfaceLine.EnsurePointOfType(apoint2.X, apoint2.Z, null);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location) { SlopeOfNewShoulder = 2 };
+ var surfaceLineAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, polderLevel) { SlopeOfNewShoulder = 2 };
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
}
}
Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForDamProjectData.cs
===================================================================
diff -u -r2523 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForDamProjectData.cs (.../FactoryForDamProjectData.cs) (revision 2523)
+++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForDamProjectData.cs (.../FactoryForDamProjectData.cs) (revision 2791)
@@ -22,6 +22,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.General.Sensors;
@@ -347,7 +348,7 @@
location.ModelParametersForPlLines.PlLineCreationMethod = (PlLineCreationMethod)i;
location.IntrusionVerticalWaterPressure = (IntrusionVerticalWaterPressureType)i;
location.DistanceToEntryPoint = 1.2 * i + 0.56;
- location.PolderLevel = 1.0 * i + 0.11;
+ location.Scenarios[0].PolderLevel = 1.0 * i + 0.11;
location.ModelParametersForPlLines.DampingFactorPl4 = 1.0 * i + 0.12;
location.ModelParametersForPlLines.DampingFactorPl3 = 1.0 * i + 0.13;
location.ModelParametersForPlLines.PenetrationLength = 1.0 * i + 0.14;
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorCombinedSlopeAndShoulderAdaption.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorCombinedSlopeAndShoulderAdaption.cs (.../DesignCalculatorCombinedSlopeAndShoulderAdaption.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorCombinedSlopeAndShoulderAdaption.cs (.../DesignCalculatorCombinedSlopeAndShoulderAdaption.cs) (revision 2791)
@@ -113,7 +113,7 @@
location.StabilityShoulderGrowSlope, surfaceLine, limitPointForShoulderDesign, out shoulderHeight, out shoulderLength);
// Create new shoulder
- var surfaceLineShoulderAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineShoulderAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, designScenario.PolderLevel);
surfaceLineShoulderAdapter.MaxShoulderLevel = maxShoulderLevel;
surfaceLine = surfaceLineShoulderAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
@@ -128,7 +128,7 @@
else if (designAdvise == DesignAdvise.SlopeInwards)
{
// If exit point of circle is in the slope (inward) of the dike or the top of the shoulder then adapt slope
- var surfaceLineSlopeAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineSlopeAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, designScenario.PolderLevel);
surfaceLine = surfaceLineSlopeAdapter.ConstructNewSurfaceLine(location.StabilitySlopeAdaptionDeltaX);
var validationError = surfaceLine.Validate().FirstOrDefault(vr => vr.MessageType == ValidationResultType.Error);
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineHeightAdapter.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineHeightAdapter.cs (.../SurfaceLineHeightAdapter.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineHeightAdapter.cs (.../SurfaceLineHeightAdapter.cs) (revision 2791)
@@ -36,7 +36,8 @@
///
///
///
- public SurfaceLineHeightAdapter(SurfaceLine2 surfaceLine, Location location) : base(surfaceLine, location)
+ ///
+ public SurfaceLineHeightAdapter(SurfaceLine2 surfaceLine, Location location, double scenarioPolderLevel) : base(surfaceLine, location, scenarioPolderLevel)
{
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorFirstSlopeAdaptionThenShoulderAdaption.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorFirstSlopeAdaptionThenShoulderAdaption.cs (.../DesignCalculatorFirstSlopeAdaptionThenShoulderAdaption.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorFirstSlopeAdaptionThenShoulderAdaption.cs (.../DesignCalculatorFirstSlopeAdaptionThenShoulderAdaption.cs) (revision 2791)
@@ -115,7 +115,7 @@
iterationIndex++;
DesignCalculatorUtils.ThrowWhenMaxIterationsExceeded(iterationIndex, maxRedesignIterations);
- var surfaceLineSlopeAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineSlopeAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, designScenario.PolderLevel);
// The parameter for ConstructNewSurfaceLineBySlope is the tangent of the slope, so use reciproce value
surfaceLine = surfaceLineSlopeAdapter.ConstructNewSurfaceLineBySlope(1 / coTangent);
currentCoTangent = coTangent;
@@ -154,7 +154,7 @@
out shoulderHeight, out shoulderLength);
// Create new shoulder
- var surfaceLineShoulderAdapter = new SurfaceLineShoulderAdapter(surfaceLine, designScenario.Location);
+ var surfaceLineShoulderAdapter = new SurfaceLineShoulderAdapter(surfaceLine, designScenario.Location, designScenario.PolderLevel);
surfaceLineShoulderAdapter.MaxShoulderLevel = maxShoulderLevel;
surfaceLineShoulderAdapter.SlopeOfNewShoulder = currentCoTangent;
surfaceLine = surfaceLineShoulderAdapter.ConstructNewSurfaceLine(shoulderLength, shoulderHeight, false);
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapperTests.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapperTests.cs (.../DamMacroStabilityOutwardsKernelWrapperTests.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapperTests.cs (.../DamMacroStabilityOutwardsKernelWrapperTests.cs) (revision 2791)
@@ -246,7 +246,7 @@
{
characteristicPoint.Z = characteristicPoint.Z - 3;
}
- location.PolderLevel = -11;
+ location.Scenarios[0].PolderLevel = -11;
}
location.StabilityOptions = new StabilityOptions
{
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineSlopeAdapter.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineSlopeAdapter.cs (.../SurfaceLineSlopeAdapter.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineSlopeAdapter.cs (.../SurfaceLineSlopeAdapter.cs) (revision 2791)
@@ -38,8 +38,9 @@
///
///
///
- public SurfaceLineSlopeAdapter(SurfaceLine2 surfaceLine, Location location)
- : base(surfaceLine, location)
+ ///
+ public SurfaceLineSlopeAdapter(SurfaceLine2 surfaceLine, Location location, double scenarioPolderLevel)
+ : base(surfaceLine, location, scenarioPolderLevel)
{
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs
===================================================================
diff -u -r2695 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs (.../WtiPipingSellmeijerRevisedKernelWrapper.cs) (revision 2695)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs (.../WtiPipingSellmeijerRevisedKernelWrapper.cs) (revision 2791)
@@ -301,7 +301,7 @@
// The following 2 parameters are dependent on the position of the point and have to be recalculated for the current point
double dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, point.Z); // point.Z is surfacelevel
damPipingInput.DTotal = dCoverLayer;
- double referenceLevel = Math.Max(location.PolderLevel, point.Z); // point.Z is surfacelevel
+ double referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, point.Z); // point.Z is surfacelevel
damPipingInput.HExit = referenceLevel;
// Initialize result as no run.
damPipingOutput.CalculationResult = CalculationResult.NoRun;
@@ -441,7 +441,7 @@
// bij zeedijken en de maatgevende hoogwaterstand (MHW bij rivierdijken) en de waterstand binnendijks ter plaatse van het uittredepunt,
// rekening houdend met zeespiegelrijzing etc.(zie paragraaf 3.7.2). In dien ter plaatse van het uittreepunt of de opbarstlocatie
// geen vrije waterstand heerst kan gerekend worden met het maaiveldniveau, rekening houdend met eventuele maaiveld daling (zie paragraaf 3.7.2)."
- var referenceLevel = Math.Max(location.PolderLevel, surfaceLevel);
+ var referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, surfaceLevel);
Soil inBetweenAquiferlayerSoil = soilProfile1D.BottomAquiferLayer.Soil;
if (soilProfile1D.InBetweenAquiferLayer != null)
@@ -456,7 +456,7 @@
{
rExit = 1 - location.ModelParametersForPlLines.DampingFactorPl4;
}
- var effectiveThicknessCalculator = CreateEffectiveThicknessCalculator(soilProfile1D, surfaceLine, location.PolderLevel,
+ var effectiveThicknessCalculator = CreateEffectiveThicknessCalculator(soilProfile1D, surfaceLine, location.Scenarios[0].PolderLevel,
Physics.UnitWeightOfwater, xExit);
effectiveThicknessCalculator.Calculate();
var effectiveStress = effectiveThicknessCalculator.EffectiveStress;
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorShoulderPerPoint.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorShoulderPerPoint.cs (.../DesignCalculatorShoulderPerPoint.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorShoulderPerPoint.cs (.../DesignCalculatorShoulderPerPoint.cs) (revision 2791)
@@ -120,7 +120,7 @@
{
// Adapt the surfaceline for the finally required shoulder dimensions.
double maxShoulderLevel = CalculateMaximumShoulderLevel(surfaceLine, 1.0); // no limit to height of shoulder
- var surfaceLineShoulderAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location);
+ var surfaceLineShoulderAdapter = new SurfaceLineShoulderAdapter(surfaceLine, location, designScenario.PolderLevel);
surfaceLineShoulderAdapter.MaxShoulderLevel = maxShoulderLevel;
newSurfaceLine = surfaceLineShoulderAdapter.ConstructNewSurfaceLine(desiredShoulderLength, desiredShoulderHeight, true);
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityHorizontalBalance/DamMacroStabilityHorizontalBalanceKernelWrapperTests.cs
===================================================================
diff -u -r2723 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityHorizontalBalance/DamMacroStabilityHorizontalBalanceKernelWrapperTests.cs (.../DamMacroStabilityHorizontalBalanceKernelWrapperTests.cs) (revision 2723)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityHorizontalBalance/DamMacroStabilityHorizontalBalanceKernelWrapperTests.cs (.../DamMacroStabilityHorizontalBalanceKernelWrapperTests.cs) (revision 2791)
@@ -95,7 +95,7 @@
var location = DamMacroStabilityTestHelper.CreateLocation(line);
var scenario = DamMacroStabilityTestHelper.CreateScenario(location);
scenario.RiverLevel = 4.0;
- scenario.Location.PolderLevel = -1.0;
+ scenario.Location.Scenarios[0].PolderLevel = -1.0;
scenario.Location.StabilityOptions = new StabilityOptions
{
TrafficLoad = cTrafficLoad
@@ -271,7 +271,7 @@
{
characteristicPoint.Z = characteristicPoint.Z - 3;
}
- location.PolderLevel = -11;
+ location.Scenarios[0].PolderLevel = -11;
}
var scenario = DamMacroStabilityTestHelper.CreateScenario(location);
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineAdapter.cs
===================================================================
diff -u -r1965 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineAdapter.cs (.../SurfaceLineAdapter.cs) (revision 1965)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/SurfaceLineAdapter.cs (.../SurfaceLineAdapter.cs) (revision 2791)
@@ -67,19 +67,22 @@
protected double trafficLoadWidth;
protected bool hasTrafficLoad;
protected bool isTrafficLoadOnCrest = false;
+ protected double polderLevel;
const double offset = 100.0;
///
/// Constructor
///
///
///
- protected SurfaceLineAdapter(SurfaceLine2 surfaceLine, Location location)
+ ///
+ protected SurfaceLineAdapter(SurfaceLine2 surfaceLine, Location location, double scenarioPolderLevel)
{
ThrowWhenSurfaceLineIsNull(surfaceLine);
ThrowWhenSurfaceLineDoesNotSatisfyToSpecification(surfaceLine);
this.surfaceLine = surfaceLine.FullDeepClone();
- this.Location = location;
+ Location = location;
+ polderLevel = scenarioPolderLevel;
RetainTrafficLoad();
}
@@ -412,7 +415,7 @@
res.XAtDike = xDitchDike;
res.ZAtDike = surfaceLine.Geometry.GetZatX(res.XAtDike);
// Depth of the ditch is defined towards PolderLevel
- res.ZBottom = Location.PolderLevel - Location.NewDepthDitch;
+ res.ZBottom = polderLevel - Location.NewDepthDitch;
res.XBottomAtDike = xDitchDike + (res.ZAtDike - res.ZBottom)*Location.NewSlopeAngleDitch;
res.XBottomAtPolder = res.XBottomAtDike + Location.NewWidthDitchBottom;
var line = new Line
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 2791)
@@ -496,7 +496,6 @@
var waternetOptions = new LocationWaternetOptions();
waternetOptions.PhreaticLineCreationMethod = ConversionHelper.ConvertToInputPhreaticLineCreationMethod(location.ModelParametersForPlLines.PlLineCreationMethod);
waternetOptions.IntrusionVerticalWaterPressure = ConversionHelper.ConvertToInputIntrusionVerticalWaterPressure(location.IntrusionVerticalWaterPressure ?? IntrusionVerticalWaterPressureType.Standard);
- waternetOptions.PolderLevel = location.PolderLevel;
waternetOptions.DampingFactorPl3 = location.ModelParametersForPlLines.DampingFactorPl3;
waternetOptions.DampingFactorPl4 = location.ModelParametersForPlLines.DampingFactorPl4;
waternetOptions.PenetrationLength = location.ModelParametersForPlLines.PenetrationLength;
@@ -550,8 +549,8 @@
var designScenario = location.Scenarios[j];
var inputDesignScenario = new LocationDesignScenario();
inputDesignScenario.RiverLevel = designScenario.RiverLevel;
-
inputDesignScenario.Id = designScenario.LocationScenarioID;
+ inputDesignScenario.PolderLevel = designScenario.PolderLevel;
inputDesignScenario.RiverLevelLowSpecified = designScenario.RiverLevelLow.HasValue;
inputDesignScenario.RiverLevelLow = designScenario.RiverLevelLow ?? 0.0;
inputDesignScenario.DikeTableHeightSpecified = designScenario.DikeTableHeight.HasValue;
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineHeightAdapterTest.cs
===================================================================
diff -u -r1970 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineHeightAdapterTest.cs (.../SurfaceLineHeightAdapterTest.cs) (revision 1970)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineHeightAdapterTest.cs (.../SurfaceLineHeightAdapterTest.cs) (revision 2791)
@@ -50,7 +50,7 @@
surfaceLine.EnsurePointOfType(2, 1, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(3, 0, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var constructNewSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(1);
Assert.IsNotNull(constructNewSurfaceLine);
}
@@ -79,7 +79,7 @@
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
{
var newPointAtToeRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver);
@@ -112,7 +112,7 @@
surfaceLine.EnsurePointOfType(pointAtTopRiver.X, pointAtTopRiver.Z, CharacteristicPointType.DikeTopAtRiver);
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
double oldSlope = TanSlopeInside(surfaceLine);
double newSlope = TanSlopeInside(newSurfaceLine);
@@ -141,7 +141,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var actualPoint = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
var expectedPoint = new GeometryPoint { X = 2, Z = 2 };
@@ -170,7 +170,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.IsFalse(newSurfaceLine.Geometry.Points.Any(p => p.LocationEquals(pointAtTopRiver)));
}
@@ -198,7 +198,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var actualPoint = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder);
var expectedPoint = new GeometryPoint { X = 3, Z = 2 };
@@ -227,7 +227,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.IsFalse(newSurfaceLine.Geometry.Points.Any(p => p.LocationEquals(pointAtTopPolder)));
}
@@ -254,7 +254,7 @@
surfaceLine.EnsurePointOfType(pointAtTopPolder.X, pointAtTopPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var actualPoint = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder);
var expectedPoint = new GeometryPoint { X = 13 };
@@ -284,7 +284,7 @@
surfaceLine.EnsurePointOfType(4, 0.5, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(5, 0, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedPoint = new GeometryPoint() { X = 7, Z = 0 }; //
var actualPoint = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder);
@@ -318,7 +318,7 @@
surfaceLine.EnsurePointOfType(pointAtShoulderTop.X, pointAtShoulderTop.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.IsNull(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside));
Assert.IsNull(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside));
@@ -356,7 +356,7 @@
surfaceLine.EnsurePointOfType(pointAtShoulderTop.X, pointAtShoulderTop.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.IsTrue(pointAtToePolder.LocationEquals(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder)));
}
@@ -388,7 +388,7 @@
surfaceLine.EnsurePointOfType(pointAtShoulderTop.X, pointAtShoulderTop.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.IsTrue(pointAtShoulderTop.LocationEquals(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderTopInside)));
}
@@ -420,7 +420,7 @@
surfaceLine.EnsurePointOfType(pointAtShoulderTop.X, pointAtShoulderTop.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(pointAtToePolder.X, pointAtToePolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointAtSurfaceLevelInside.X, pointAtSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedPoint = new GeometryPoint { X = 4.5, Z = 1 };
var actualPoint = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.ShoulderBaseInside);
@@ -438,7 +438,7 @@
{
throw new SurfaceLineException(validationError.Text);
}
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
validationError = newSurfaceLine.Validate().FirstOrDefault(vr => vr.MessageType == ValidationResultType.Error);
if (validationError != null)
@@ -457,7 +457,7 @@
var location = new Location();
const double cTolerance = 0.0000001;
const double newDikeHeight = 19.2;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.AreEqual(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z, newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.TrafficLoadOutside).Z, cTolerance);
Assert.AreEqual(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z, newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.TrafficLoadInside).Z, cTolerance);
@@ -492,7 +492,7 @@
surfaceLine.EnsurePointOfType(pointDikeTopAtPolder.X, pointDikeTopAtPolder.Z, CharacteristicPointType.DikeTopAtPolder);
surfaceLine.EnsurePointOfType(pointDikeToeAtPolder.X, pointDikeToeAtPolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.AreEqual(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z, newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.TrafficLoadOutside).Z);
Assert.AreEqual(newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z, newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.TrafficLoadInside).Z);
@@ -545,7 +545,7 @@
const double cTolerance = 0.001;
const double newDikeHeight = 4.0;
Assert.AreEqual(10, surfaceLine.Geometry.Points.Count);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.AreEqual(6, newSurfaceLine.Geometry.Points.Count);
Assert.AreEqual(7.3333, newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X, cTolerance);
@@ -580,7 +580,7 @@
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 1;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -616,7 +616,7 @@
surfaceLine.EnsurePointOfType(100, 0, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 0.8;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -655,7 +655,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 3;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -691,7 +691,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 2;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -727,7 +727,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 1.5;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -769,7 +769,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeSlopeInside = true;
location.NewDikeSlopeInside = 0.5;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -805,7 +805,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeSlopeInside = true;
location.NewDikeSlopeInside = 2;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 2, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -844,7 +844,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeSlopeOutside = true;
location.NewDikeSlopeOutside = 2;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 1.5, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -880,7 +880,7 @@
surfaceLine.EnsurePointOfType(100, -1, CharacteristicPointType.SurfaceLevelInside);
location.UseNewDikeSlopeOutside = true;
location.NewDikeSlopeOutside = 0.5;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 3, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -920,7 +920,7 @@
location.NewDikeSlopeInside = 2;
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 1.5;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 1.5, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -969,7 +969,7 @@
location.NewDikeSlopeInside = 0.5;
location.UseNewDikeTopWidth = true;
location.NewDikeTopWidth = 1.5;
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
var expectedNewTopRiver = new GeometryPoint() { X = 1.5, Z = 2 };
var actualNewTopRiver = newSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver);
@@ -992,10 +992,11 @@
const double newDikeHeight = 19.0;
var pointSurfaceLevelInside = new GeometryPoint { X = 40, Z = 12 }; // Set surfacelevelinside just beside ditch to force exception
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineHeightAdapter(surfaceLine, location, 0);
var newSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(newDikeHeight);
Assert.Null(newSurfaceLine);
}
+
///
/// Determines the tan slope inside.
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Sensors/SensorLocation.cs
===================================================================
diff -u -r2113 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Sensors/SensorLocation.cs (.../SensorLocation.cs) (revision 2113)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Sensors/SensorLocation.cs (.../SensorLocation.cs) (revision 2791)
@@ -250,9 +250,9 @@
///
public double PolderLevel
{
- get { return Location.PolderLevel; }
+ get { return Location.Scenarios.First().PolderLevel; }
}
-
+
///
/// Gets the head PL3.
///
@@ -431,7 +431,7 @@
if (memberName == MemberNames.PolderLevel)
{
if (SourceTypePl1WaterLevelAtPolder == DataSourceTypeSensors.LocationData)
- return Location.PolderLevel;
+ return Location.Scenarios[0].PolderLevel;
if (SourceTypePl1WaterLevelAtPolder == DataSourceTypeSensors.Sensor)
return sensorValues[sensor];
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineSlopeAdapterTest.cs
===================================================================
diff -u -r1970 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineSlopeAdapterTest.cs (.../SurfaceLineSlopeAdapterTest.cs) (revision 1970)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/DikesDesign/SurfaceLineSlopeAdapterTest.cs (.../SurfaceLineSlopeAdapterTest.cs) (revision 2791)
@@ -64,7 +64,7 @@
public void ConstructNewSurfaceLineReturnsANewSurfaceLine()
{
var surfaceLine = CreateSimpleDike();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
var constructNewSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(1);
Assert.IsNotNull(constructNewSurfaceLine);
}
@@ -76,7 +76,7 @@
var surfaceLine = CreateSimpleDike();
var pointDikeToeAtPolder = new GeometryPoint { X = 3, Z = 0 };
surfaceLine.EnsurePointOfType(pointDikeToeAtPolder.X, pointDikeToeAtPolder.Z, CharacteristicPointType.DikeToeAtPolder);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(1.0);
var expectedPointDikeToeAtPolder = new GeometryPoint { X = 4, Z = 0 };
Assert.IsTrue(expectedPointDikeToeAtPolder.LocationEquals(adaptedSurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder)));
@@ -104,7 +104,7 @@
surfaceLine.EnsurePointOfType(pointShoulderTopInside.X, pointShoulderTopInside.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(pointDikeToeAtPolder.X, pointDikeToeAtPolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double deltaX = 1.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(deltaX);
var expectedPointShoulderBaseInside = new GeometryPoint { X = pointShoulderBaseInside.X + deltaX, Z = pointShoulderBaseInside.Z };
@@ -143,7 +143,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double deltaX = 1.0;
const double deltaXDitch = 3;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(deltaX);
@@ -191,7 +191,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double deltaX = 1.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(deltaX);
var expectedPointShoulderBaseInside = new GeometryPoint { X = pointShoulderBaseInside.X + deltaX, Z = pointShoulderBaseInside.Z };
@@ -218,7 +218,7 @@
var surfaceLine = CreateSimpleDike();
surfaceLine.EnsurePoint(2.5, 0.4); // in between point on inside slope
surfaceLine.SortPoints();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(1.0);
var expectedPointDikeToeAtPolder = new GeometryPoint { X = 4, Z = 0 };
Assert.AreEqual(6, surfaceLine.Geometry.Count);
@@ -264,7 +264,7 @@
surfaceLine.EnsurePointOfType(pointTrafficLoadOutside.X, pointTrafficLoadOutside.Z, CharacteristicPointType.TrafficLoadOutside);
surfaceLine.EnsurePointOfType(pointTrafficLoadInside.X, pointTrafficLoadInside.Z, CharacteristicPointType.TrafficLoadInside);
surfaceLine.SortPoints();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double deltaX = 1.0;
SurfaceLine2 adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(deltaX);
GeometryPoint expectedPointTrafficLoadOutside = new GeometryPoint { X = 7, Z = 2.5 };
@@ -278,7 +278,7 @@
surfaceLine.EnsurePointOfType(pointTrafficLoadOutside.X, pointTrafficLoadOutside.Z, CharacteristicPointType.TrafficLoadOutside);
surfaceLine.EnsurePointOfType(pointTrafficLoadInside.X, pointTrafficLoadInside.Z, CharacteristicPointType.TrafficLoadInside);
surfaceLine.SortPoints();
- surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLine(deltaX);
expectedPointTrafficLoadOutside = new GeometryPoint { X = 9.5, Z = 1.25 };
expectedPointTrafficLoadInside = new GeometryPoint { X = 10.5, Z = 1.0 };
@@ -296,23 +296,23 @@
public void IsExceptionThrownIfSlopeDoesNotIntersectSurfaceLine()
{
var surfaceLine = CreateSimpleDike();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
surfaceLineAdapter.ConstructNewSurfaceLineBySlope(0);
}
[Test]
public void IsNotExceptionThrownIfSlopeEqualsTheCurrentSlope()
{
var surfaceLine = CreateSimpleDike();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
Assert.IsNotNull(surfaceLineAdapter.ConstructNewSurfaceLineBySlope(1.0));
}
[Test]
public void ConstructNewSurfaceLineBySlopeReturnsANewSurfaceLine()
{
var surfaceLine = CreateSimpleDike();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
Assert.IsNotNull(surfaceLineAdapter.ConstructNewSurfaceLineBySlope(0.9));
}
@@ -321,7 +321,7 @@
public void AdaptedSimpleDikeLineBySlopeHasCorrectNewToeDikeAtPolder()
{
var surfaceLine = CreateSimpleDike();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 3.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
var expectedPointDikeToeAtPolder = new GeometryPoint { X = 5, Z = 0 };
@@ -350,7 +350,7 @@
surfaceLine.EnsurePointOfType(pointShoulderTopInside.X, pointShoulderTopInside.Z, CharacteristicPointType.ShoulderTopInside);
surfaceLine.EnsurePointOfType(pointDikeToeAtPolder.X, pointDikeToeAtPolder.Z, CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 4.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
const double deltaX = 4.0;
@@ -388,7 +388,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 4.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
const double deltaX = 4.0;
@@ -434,7 +434,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 4.0;
surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
}
@@ -469,7 +469,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 4.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
const double deltaX = 4.0;
@@ -520,7 +520,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 2.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
const double deltaX = 1.0;
@@ -572,7 +572,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 2.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
var expectedNewPoint = new GeometryPoint { X = pointShoulderTopInside.X, Z = pointShoulderTopInside.Z };
@@ -623,7 +623,7 @@
surfaceLine.EnsurePointOfType(pointBottomDitchPolderSide.X, pointBottomDitchPolderSide.Z, CharacteristicPointType.BottomDitchPolderSide);
surfaceLine.EnsurePointOfType(pointDitchPolderSide.X, pointDitchPolderSide.Z, CharacteristicPointType.DitchPolderSide);
surfaceLine.EnsurePointOfType(pointSurfaceLevelInside.X, pointSurfaceLevelInside.Z, CharacteristicPointType.SurfaceLevelInside);
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 2.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
const double deltaX = 4.0; // from pointShoulderTopInside
@@ -652,7 +652,7 @@
var pointDikeToeAtPolder = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder);
surfaceLine.EnsurePoint(2.5, 0.4); // in between point on inside slope
surfaceLine.SortPoints();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 4.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
const double deltaX = 3.0;
@@ -700,7 +700,7 @@
surfaceLine.EnsurePointOfType(pointTrafficLoadOutside.X, pointTrafficLoadOutside.Z, CharacteristicPointType.TrafficLoadOutside);
surfaceLine.EnsurePointOfType(pointTrafficLoadInside.X, pointTrafficLoadInside.Z, CharacteristicPointType.TrafficLoadInside);
surfaceLine.SortPoints();
- var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ var surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
const double slopeTangent = 1.0 / 4.0;
var adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
var expectedPointTrafficLoadOutside = new GeometryPoint { X = 7, Z = 2.75 };
@@ -714,7 +714,7 @@
surfaceLine.EnsurePointOfType(pointTrafficLoadOutside.X, pointTrafficLoadOutside.Z, CharacteristicPointType.TrafficLoadOutside);
surfaceLine.EnsurePointOfType(pointTrafficLoadInside.X, pointTrafficLoadInside.Z, CharacteristicPointType.TrafficLoadInside);
surfaceLine.SortPoints();
- surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location);
+ surfaceLineAdapter = new SurfaceLineSlopeAdapter(surfaceLine, location, 0);
adaptedSurfaceLine = surfaceLineAdapter.ConstructNewSurfaceLineBySlope(slopeTangent);
expectedPointTrafficLoadOutside = new GeometryPoint { X = 10.0, Z = 2.0 };
expectedPointTrafficLoadInside = new GeometryPoint { X = 13, Z = 1.25 };
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Sensors/SensorFactory.cs
===================================================================
diff -u -r1974 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Sensors/SensorFactory.cs (.../SensorFactory.cs) (revision 1974)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Sensors/SensorFactory.cs (.../SensorFactory.cs) (revision 2791)
@@ -21,6 +21,7 @@
using System;
using System.Collections.Generic;
+using System.Linq;
using Deltares.DamEngine.Data.Standard;
namespace Deltares.DamEngine.Data.General.Sensors
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 2791)
@@ -21,7 +21,6 @@
using System;
using System.Collections.Generic;
-using System.Dynamic;
using System.Linq;
using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.General.Gauges;
@@ -71,7 +70,6 @@
private double pLLineOffsetBelowDikeTopAtPolder = 1.5;
private double pLLineOffsetBelowDikeTopAtRiver = 0.5;
private double pLLineOffsetBelowShoulderBaseInside = 0.1;
- private double polderLevel;
private bool redesignDikeHeight = true;
private bool redesignDikeShoulder = true;
private double scenarioRiverLevel;
@@ -1173,24 +1171,6 @@
#region Waterlevels
///
- /// Gets or sets the polder level.
- ///
- ///
- /// The polder level.
- ///
- public virtual double PolderLevel
- {
- get
- {
- return polderLevel;
- }
- set
- {
- polderLevel = value;
- }
- }
-
- ///
/// Gets or sets the river level.
///
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 2791)
@@ -128,7 +128,7 @@
// bij zeedijken en de maatgevende hoogwaterstand (MHW bij rivierdijken) en de waterstand binnendijks ter plaatse van het uittredepunt,
// rekening houdend met zeespiegelrijzing etc.(zie paragraaf 3.7.2). In dien ter plaatse van het uittreepunt of de opbarstlocatie
// geen vrije waterstand heerst kan gerekend worden met het maaiveldniveau, rekening houdend met eventuele maaiveld daling (zie paragraaf 3.7.2)."
- var referenceLevel = Math.Max(location.PolderLevel, surfaceLevel);
+ var referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, surfaceLevel);
Soil inBetweenAquiferlayerSoil = soilProfile1D.BottomAquiferLayer.Soil;
if (soilProfile1D.InBetweenAquiferLayer != null)
@@ -317,7 +317,7 @@
// The following 2 parameters are dependent on the position of the point and have to be recalculated for the current point
double dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, point.Z); // point.Z is surfacelevel
damPipingInput.DTotal = dCoverLayer;
- double referenceLevel = Math.Max(location.PolderLevel, point.Z); // point.Z is surfacelevel
+ double referenceLevel = Math.Max(location.Scenarios[0].PolderLevel, point.Z); // point.Z is surfacelevel
damPipingInput.HExit = referenceLevel;
// Calculate the piping safety factor using the level of the given point
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs
===================================================================
diff -u -r2635 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs (.../DesignCalculator.cs) (revision 2635)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs (.../DesignCalculator.cs) (revision 2791)
@@ -187,7 +187,7 @@
orgLocationSurfaceLine = location.SurfaceLine.FullDeepClone();
// Redesign the surfaceline to the desired Dike Table Height
var surfaceLineHeightAdapter =
- new SurfaceLineHeightAdapter(location.SurfaceLine, location);
+ new SurfaceLineHeightAdapter(location.SurfaceLine, location, designScenario.PolderLevel);
SurfaceLine2 adaptedSurfaceLine =
surfaceLineHeightAdapter.ConstructNewSurfaceLine(
designScenario.DikeTableHeight ??
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r2575 -r2791
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 2575)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 2791)
@@ -500,7 +500,6 @@
var waternetOptions = inputLocation.WaternetOptions;
location.ModelParametersForPlLines.PlLineCreationMethod = ConversionHelper.ConvertToPhreaticLineCreationMethod(waternetOptions.PhreaticLineCreationMethod);
location.IntrusionVerticalWaterPressure = ConversionHelper.ConvertToIntrusionVerticalWaterPressure(waternetOptions.IntrusionVerticalWaterPressure);
- location.PolderLevel = waternetOptions.PolderLevel;
location.ModelParametersForPlLines.DampingFactorPl3 = waternetOptions.DampingFactorPl3;
location.ModelParametersForPlLines.DampingFactorPl4 = waternetOptions.DampingFactorPl4;
location.ModelParametersForPlLines.PenetrationLength = waternetOptions.PenetrationLength;
@@ -558,6 +557,7 @@
var designScenario = new DesignScenario();
var inputLocationDesignScenario = inputLocation.DesignScenarios[j];
designScenario.LocationScenarioID = inputLocationDesignScenario.Id;
+ designScenario.PolderLevel = inputLocationDesignScenario.PolderLevel;
designScenario.RiverLevel = inputLocationDesignScenario.RiverLevel;
designScenario.RiverLevelLow = (inputLocationDesignScenario.RiverLevelLowSpecified ? (double?)inputLocationDesignScenario.RiverLevelLow : null);
designScenario.DikeTableHeight = (inputLocationDesignScenario.DikeTableHeightSpecified ? (double?)inputLocationDesignScenario.DikeTableHeight : null);