Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r3025 -r3029 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 3025) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 3029) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.Data; +using System.IO; using System.Linq; using Deltares.DamEngine.Calculators.DikesDesign; using Deltares.DamEngine.Calculators.KernelWrappers.Common; @@ -112,7 +113,7 @@ FillMacroStabilityWrapperInputFromEngine fillMacroStabilityWrapperFromEngine = new FillMacroStabilityWrapperInputFromEngine() { TrafficLoad = trafficLoad, - UpliftVanCalculationGrid = null, + UpliftVanCalculationGrid = DetermineGridFromSettings(damKernelInput.Location.SurfaceLine) }; // ToDo MWDAM-1373/1374: fill SoilProfile2D @@ -132,6 +133,30 @@ return PrepareResult.NotRelevant; } + private MacroStabilityCommon.UpliftVanCalculationGrid DetermineGridFromSettings(SurfaceLine2 surfaceLine) + { + var upliftVanCalculationGrid = new MacroStabilityCommon.UpliftVanCalculationGrid(); + if (surfaceLine != null) + { + upliftVanCalculationGrid.IsAuto = false; + upliftVanCalculationGrid.LeftGridXCount = 3; + upliftVanCalculationGrid.LeftGridXLeft = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X + 2; + upliftVanCalculationGrid.LeftGridXRight = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X + 5; + upliftVanCalculationGrid.LeftGridZCount = 3; + upliftVanCalculationGrid.LeftGridZTop = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z + 6; + upliftVanCalculationGrid.LeftGridZBottom = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z + 0.2; + + upliftVanCalculationGrid.RightGridXCount = 3; + upliftVanCalculationGrid.RightGridXLeft = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X + 10; + upliftVanCalculationGrid.RightGridXRight = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).X - 5; + upliftVanCalculationGrid.RightGridZCount = 3; + upliftVanCalculationGrid.RightGridZTop = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).Z + 2; + upliftVanCalculationGrid.RightGridZBottom = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).Z + 2; + } + + return upliftVanCalculationGrid; + } + private void EnsureSoilProfile2DIsFilled(SoilGeometryProbability subSoilScenario, SurfaceLine2 surfaceLine2, Soil dikeEmbankmentSoil) { var soilProfile2D = subSoilScenario.SoilProfile2D; @@ -163,6 +188,7 @@ stabilityCalculator = new Calculator(input); // For now a simple check to see if any data has been past at all. var inputAsXml = stabilityCalculator.KernelInputXml; + File.WriteAllText("TestfileFromPrepare.xml", inputAsXml); if (inputAsXml.Length > 10) { return PrepareResult.Successful;