Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfileHelper.cs =================================================================== diff -u -r3238 -r3239 --- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfileHelper.cs (.../SoilProfileHelper.cs) (revision 3238) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfileHelper.cs (.../SoilProfileHelper.cs) (revision 3239) @@ -27,17 +27,37 @@ } else if (soilProfile.TopLevel > top) { - var layer = soilProfile.GetLayerAt(top); + var bottom = RemoveLayersAboveTop(originalSoilProfile1D.LayerCount, soilProfile, top); var topLayer = new SoilLayer1D { TopLevel = top, - Soil = dikeEmbankmentMaterial, + Soil = originalSoilProfile1D.Layers[bottom].Soil, SoilProfile = soilProfile, - BottomLevel = soilProfile.TopLevel + BottomLevel = originalSoilProfile1D.Layers[bottom].BottomLevel }; soilProfile.Layers.Insert(0, topLayer); } + + soilProfile.BottomLevel = originalSoilProfile1D.BottomLevel; return soilProfile; } + + private static int RemoveLayersAboveTop(int layerCount, SoilProfile1D soilProfile, double top) + { + var index = layerCount; + for (int i = layerCount - 1; i >= 0; i--) + { + if (soilProfile.Layers[i].TopLevel > top) + { + soilProfile.Layers.RemoveAt(i); + if (index == layerCount) + { + index = i; + } + } + } + + return index; //soilProfile.Layers[0].TopLevel; + } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r3238 -r3239 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 3238) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 3239) @@ -171,7 +171,7 @@ var sd = kernelInput.DamFailureMechanismeCalculationSpecification.FailureMechanismParametersMStab .MStabParameters.SlipCircleDefinition; - sd.UpliftVanTangentLinesDefinition = TangentLinesDefinition.OnBoundaryLines; + sd.UpliftVanTangentLinesDefinition = TangentLinesDefinition.Specified; PrepareResult prepareResult = kernelWrapper.Prepare(kernelInput, 0, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput); Assert.AreEqual(PrepareResult.Successful, prepareResult);