Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLineCreatorBase.cs
===================================================================
diff -u -r4540 -r5658
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLineCreatorBase.cs (.../SensorPlLineCreatorBase.cs) (revision 4540)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLineCreatorBase.cs (.../SensorPlLineCreatorBase.cs) (revision 5658)
@@ -201,15 +201,10 @@
/// Intersection of line at river with a given Z value.
///
///
- protected double IntersectionXAtRiverWaterLevel(double waterLevel)
+ protected double? IntersectionXAtRiverWaterLevel(double waterLevel)
{
GeometryPoint point = SensorLocation.SurfaceLine.DetermineIntersectionBetweenTaludRiverSideAndWaterLevel(waterLevel);
- if (point == null)
- {
- throw new PlLinesCreatorException("No intersection point found with water level at dike river side");
- }
-
- return point.X;
+ return point?.X;
}
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLine1Creator.cs
===================================================================
diff -u -r5653 -r5658
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLine1Creator.cs (.../SensorPlLine1Creator.cs) (revision 5653)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/PlLinesCreator/SensorPlLine1Creator.cs (.../SensorPlLine1Creator.cs) (revision 5658)
@@ -234,9 +234,6 @@
throw new PlLinesCreatorException("There was an error trying to read the water level", e);
}
- // Waterlevel MUST be above of Dike Toe At River Side, if not, an error is thrown
- SensorLocation.SurfaceLine.CheckWaterLevelIsAboveDikeToeRiverSide(waterLevel);
-
// Add begin boundary
lineConstructor.Insert(new PlLinePoint(XBeginBoundary, waterLevel));
@@ -257,11 +254,20 @@
}
// insert intersection point (at dike river side)
- double xIntersection = IntersectionXAtRiverWaterLevel(waterLevel);
- lineConstructor.Insert(new PlLinePoint(xIntersection, waterLevel)
+ double? xIntersection = IntersectionXAtRiverWaterLevel(waterLevel);
+ if (xIntersection != null)
{
- Name = "Intersection point dike river side"
- });
+ lineConstructor.Insert(new PlLinePoint(xIntersection.Value, waterLevel)
+ {
+ Name = "Intersection point dike river side"
+ });
+ }
+ else
+ {
+ GeometryPoint dikeToeAtRiver = SensorLocation.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver);
+ var point = new PlLinePoint(dikeToeAtRiver.X, dikeToeAtRiver.Z);
+ lineConstructor.Insert(point);
+ }
// insert offset below dike top at river point?
var useLocationAsDataSource = new UseLocationAsDataSource();