Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/PlLinesToWaternetConverter.cs =================================================================== diff -u -r5566 -r5567 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/PlLinesToWaternetConverter.cs (.../PlLinesToWaternetConverter.cs) (revision 5566) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/PlLinesToWaternetConverter.cs (.../PlLinesToWaternetConverter.cs) (revision 5567) @@ -84,13 +84,17 @@ waternet.WaternetLineList.Add(waternetLine); } + double x = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X; + var dummySoil = new Soil("dummy", 0.0, 0.0); + SoilProfile1D soilProfile1DDikeToeAtPolder = SoilProfileHelper.DetermineForSurfaceLineCorrected1DProfileAtX(soilProfile1D, surfaceLine, x, dummySoil); + plLine = plLines.Lines[PlLineType.Pl2]; headLine = CreateLine(plLine, headLine2Name); - if (headLine != null && !IsBelowSoilProfile(soilProfile1D, plLine) && + if (headLine != null && !IsBelowSoilProfile(soilProfile1DDikeToeAtPolder, plLine) && pressureType == IntrusionVerticalWaterPressureType.SemiTimeDependent && penetrationLength > 0) { waternet.HeadLineList.Add(headLine); - double level = soilProfile1D.BottomAquiferLayer.TopLevel + penetrationLength; + double level = soilProfile1DDikeToeAtPolder.BottomAquiferLayer.TopLevel + penetrationLength; WaternetLine waternetLine = CreateWaternetLine(level, xLeft, xRight); waternetLine.Name = waternetLine2Name; waternetLine.HeadLine = headLine; @@ -99,18 +103,18 @@ plLine = plLines.Lines[PlLineType.Pl3]; headLine = CreateLine(plLine, headLine3Name); - if (headLine != null && !IsBelowSoilProfile(soilProfile1D, plLine) && + if (headLine != null && !IsBelowSoilProfile(soilProfile1DDikeToeAtPolder, plLine) && pressureType != IntrusionVerticalWaterPressureType.FullHydroStatic) { waternet.HeadLineList.Add(headLine); - double level = soilProfile1D.BottomAquiferLayer.TopLevel; + double level = soilProfile1DDikeToeAtPolder.BottomAquiferLayer.TopLevel; WaternetLine waternetLine = CreateWaternetLine(level, xLeft, xRight); waternetLine.Name = waternetLine3Name; waternetLine.HeadLine = headLine; waternet.WaternetLineList.Add(waternetLine); } - CreateWaternetLinesForInBetweenAquifers(waternet, soilProfile1D, xLeft, xRight, plLines.Lines[PlLineType.Pl4], pressureType); + CreateWaternetLinesForInBetweenAquifers(waternet, soilProfile1DDikeToeAtPolder, xLeft, xRight, plLines.Lines[PlLineType.Pl4], pressureType); AdjustWaternetLineOfPhreaticLineWhenCoincidingWithOtherWaternetLines(waternet); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r5565 -r5567 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 5565) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 5567) @@ -433,9 +433,7 @@ if (damKernelInput.SubSoilScenario.SoilProfile1D != null) { SurfaceLine2 surfaceLine = damKernelInput.Location.SurfaceLine; - SoilProfile1D soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile2D.GetSoilProfile1D( - damKernelInput.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X); - return PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrationLength, pressureType); + return PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, damKernelInput.SubSoilScenario.SoilProfile1D, surfaceLine, penetrationLength, pressureType); } SoilProfile2D soilProfile2D = damKernelInput.SubSoilScenario.SoilProfile2D;