Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs =================================================================== diff -u -r3077 -r3088 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs (.../FillMacroStabilityWrapperInputFromEngine.cs) (revision 3077) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs (.../FillMacroStabilityWrapperInputFromEngine.cs) (revision 3088) @@ -30,7 +30,6 @@ using Waternet = Deltares.DamEngine.Data.Geometry.Waternet; using Deltares.MacroStability.CSharpWrapper.Input; using CharacteristicPointType = Deltares.DamEngine.Data.Geotechnics.CharacteristicPointType; -using HeadLine = Deltares.DamEngine.Data.Geometry.HeadLine; using KernelUpliftVanCalculationGrid = Deltares.MacroStability.CSharpWrapper.UpliftVanCalculationGrid; using KernelWaternet = Deltares.MacroStability.CSharpWrapper.Waternet; using KernelMacroStabilityInput = Deltares.MacroStability.CSharpWrapper.Input.MacroStabilityInput; @@ -95,10 +94,13 @@ var bottom = damKernelInput.SubSoilScenario.SoilProfile2D.Geometry.MinGeometryPointsZ; var slipCircleDefinition = damKernelInput.DamFailureMechanismeCalculationSpecification .FailureMechanismParametersMStab.MStabParameters.SlipCircleDefinition; + + + SearchAreaConditions preprocessingSearchAreaConditions = macroStabilityInput.PreprocessingInput.SearchAreaConditions; TransferUpliftVanCalculationGridSettings(slipCircleDefinition, top, bottom, - macroStabilityInput.PreprocessingInput.SearchAreaConditions); + preprocessingSearchAreaConditions); TransferUpliftVanCalculationGrid(UpliftVanCalculationGrid, macroStabilityInput.StabilityModel.UpliftVanCalculationGrid, - macroStabilityInput.PreprocessingInput.SearchAreaConditions); + preprocessingSearchAreaConditions.AutoTangentLines); lastStage.UniformLoads = new List(); // ToDo check whether this is needed. TransferUniformLoads(TrafficLoad, lastStage.UniformLoads); return macroStabilityInput; @@ -283,12 +285,10 @@ private void TransferUpliftVanCalculationGrid(UpliftVanCalculationGrid damUpliftVanCalculationGrid, KernelUpliftVanCalculationGrid kernelUpliftVanCalculationGrid, - SearchAreaConditions kernelSearchAreaConditions) + bool isAutoTangentLines) { if (damUpliftVanCalculationGrid == null) throw new ArgumentNullException(nameof(damUpliftVanCalculationGrid)); if (kernelUpliftVanCalculationGrid == null) throw new ArgumentNullException(nameof(kernelUpliftVanCalculationGrid)); - // if (kernelSearchAreaConditions == null) throw new ArgumentNullException(nameof(kernelSearchAreaConditions)); - // damUpliftVanCalculationGrid.IsGridsAutomatic = kernelSearchAreaConditions.AutoSearchArea; kernelUpliftVanCalculationGrid.LeftGrid = new CalculationGrid { @@ -310,32 +310,12 @@ GridZBottom = damUpliftVanCalculationGrid.RightGridZBottom }; - kernelSearchAreaConditions.AutoSearchArea = damUpliftVanCalculationGrid.IsGridsAutomatic; - kernelSearchAreaConditions.AutoTangentLines = damUpliftVanCalculationGrid.IsTangentLinesAutomatic; - if (kernelSearchAreaConditions.AutoTangentLines) + if(!isAutoTangentLines) { - kernelSearchAreaConditions.TangentLineNumber = damUpliftVanCalculationGrid.TangentLineCount; - kernelSearchAreaConditions.TangentLineZTop = damUpliftVanCalculationGrid.TangentLineZTop; - kernelSearchAreaConditions.TangentLineZBottom = damUpliftVanCalculationGrid.TangentLineZBottom; - - } - else - { kernelUpliftVanCalculationGrid.TangentLines = damUpliftVanCalculationGrid.TangentLineLevels.ToArray(); } } - private static IEnumerable GetTangentLines(double tangentLineZBottom, double tangentLineZTop, int nrOfTangentLines) - { - double interval = (tangentLineZTop - tangentLineZBottom) / nrOfTangentLines; - double tangentCoordinate = tangentLineZBottom; - while (tangentCoordinate <= tangentLineZTop) - { - yield return tangentCoordinate; - tangentCoordinate += interval; - } - } - private void TransferUniformLoads(TrafficLoad damTrafficLoad, ICollection kernelUniformLoads) { if (damTrafficLoad != null) Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityIoTests.cs =================================================================== diff -u -r3077 -r3088 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityIoTests.cs (.../MacroStabilityIoTests.cs) (revision 3077) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/MacroStabilityIoTests.cs (.../MacroStabilityIoTests.cs) (revision 3088) @@ -76,7 +76,6 @@ } [Test] - [Category(Categories.WorkInProgress)] // Check validation of grid public void GivenDamEngineDataModelWhenGoingToAndFromCSharpWrapperForInputTheDataIsEqual() { // Given DamEngine data (DamProjectData) @@ -119,10 +118,12 @@ CompareSoilProfile2D(expectedSoilProfile2D, fillEngineFromMacroStabilityWrapperInput.SoilProfile2D); CompareSurfaceLine(expectedSurfaceLine2D, fillEngineFromMacroStabilityWrapperInput.SurfaceLine2); CompareTrafficLoad(expectedTrafficLoad, fillEngineFromMacroStabilityWrapperInput.TrafficLoad); - var expectedUpliftVanCalculationGridSettings = expectedParametersMStab.MStabParameters.SlipCircleDefinition; + SlipCircleDefinition expectedUpliftVanCalculationGridSettings = expectedParametersMStab.MStabParameters.SlipCircleDefinition; CompareUpliftVanCalculationGridSettings(expectedUpliftVanCalculationGridSettings, fillEngineFromMacroStabilityWrapperInput.SlipCircleDefinition); - CompareUpliftVanCalculationGrid(expectedUpliftVanCalculationGrid, fillEngineFromMacroStabilityWrapperInput.UpliftVanCalculationGrid); + + bool isAutoTangentLine = expectedUpliftVanCalculationGridSettings.UpliftVanTangentLinesDefinition == TangentLinesDefinition.Specified; + CompareUpliftVanCalculationGrid(expectedUpliftVanCalculationGrid, fillEngineFromMacroStabilityWrapperInput.UpliftVanCalculationGrid, isAutoTangentLine); CompareWaternet(expectedWaternet, fillEngineFromMacroStabilityWrapperInput.Waternet); //Todo : add and or implement comparer per item as these are added to the code } @@ -221,7 +222,7 @@ Assert.AreEqual(0, result.Differences.Count, "Differences found read/write kernel Traffic Load"); } - private void CompareUpliftVanCalculationGridSettings(SlipCircleDefinition expectedSlipCircleDefinition, + private static void CompareUpliftVanCalculationGridSettings(SlipCircleDefinition expectedSlipCircleDefinition, SlipCircleDefinition actualSlipCircleDefinition) { Assert.AreEqual(expectedSlipCircleDefinition.GridSizeDetermination, actualSlipCircleDefinition.GridSizeDetermination); @@ -231,8 +232,8 @@ } - private void CompareUpliftVanCalculationGrid(UpliftVanCalculationGrid expectedSlipPlaneUpliftVan, - UpliftVanCalculationGrid actualSlipPlaneUpliftVan) + private static void CompareUpliftVanCalculationGrid(UpliftVanCalculationGrid expectedSlipPlaneUpliftVan, + UpliftVanCalculationGrid actualSlipPlaneUpliftVan, bool isAutoTangentLine) { Assert.AreEqual(expectedSlipPlaneUpliftVan.LeftGridXLeft, actualSlipPlaneUpliftVan.LeftGridXLeft); Assert.AreEqual(expectedSlipPlaneUpliftVan.LeftGridXRight, actualSlipPlaneUpliftVan.LeftGridXRight); @@ -248,9 +249,10 @@ Assert.AreEqual(expectedSlipPlaneUpliftVan.RightGridXCount, actualSlipPlaneUpliftVan.RightGridXCount); Assert.AreEqual(expectedSlipPlaneUpliftVan.RightGridZCount, actualSlipPlaneUpliftVan.RightGridZCount); - Assert.AreEqual(expectedSlipPlaneUpliftVan.TangentLineZTop, actualSlipPlaneUpliftVan.TangentLineZTop); - Assert.AreEqual(expectedSlipPlaneUpliftVan.TangentLineZBottom, actualSlipPlaneUpliftVan.TangentLineZBottom); - Assert.AreEqual(expectedSlipPlaneUpliftVan.TangentLineCount, actualSlipPlaneUpliftVan.TangentLineCount); + if (!isAutoTangentLine) + { + CollectionAssert.AreEqual(expectedSlipPlaneUpliftVan.TangentLineLevels, actualSlipPlaneUpliftVan.TangentLineLevels); + } } private static void CompareWaternet(Waternet expectedWaternet, Waternet actualWaternet) Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperInput.cs =================================================================== diff -u -r3077 -r3088 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperInput.cs (.../FillEngineFromMacroStabilityWrapperInput.cs) (revision 3077) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperInput.cs (.../FillEngineFromMacroStabilityWrapperInput.cs) (revision 3088) @@ -96,8 +96,10 @@ var lastPreConStage = macroStabilityInput.PreprocessingInput.PreConstructionStages.Last(); TransferSurfaceLine(lastPreConStage.SurfaceLine); TransferWaternet(macroStabilityInput.StabilityModel.ConstructionStages.Last().Waternet); - TransferUpliftVanCalculationGridSettings(macroStabilityInput.PreprocessingInput.SearchAreaConditions); - TransferUpliftVanCalculationGrid(macroStabilityInput.StabilityModel.UpliftVanCalculationGrid, macroStabilityInput.PreprocessingInput.SearchAreaConditions); + + SearchAreaConditions preprocessingSearchAreaConditions = macroStabilityInput.PreprocessingInput.SearchAreaConditions; + TransferUpliftVanCalculationGridSettings(preprocessingSearchAreaConditions); + TransferUpliftVanCalculationGrid(macroStabilityInput.StabilityModel.UpliftVanCalculationGrid, preprocessingSearchAreaConditions); TransferTrafficLoad(macroStabilityInput.StabilityModel.ConstructionStages.Last().UniformLoads); } @@ -142,20 +144,20 @@ RightGridZBottom = kernelSlipPlaneUpliftVan.RightGrid.GridZBottom }; - if (kernelSlipPlaneUpliftVan.TangentLines != null) + if (kernelSlipPlaneUpliftVan.TangentLines != null && !kernelSearchAreaConditions.AutoTangentLines) { - IEnumerable tangentLines = kernelSlipPlaneUpliftVan.TangentLines.ToArray(); - UpliftVanCalculationGrid.TangentLineLevels = tangentLines.ToList(); + UpliftVanCalculationGrid.TangentLineLevels = kernelSlipPlaneUpliftVan.TangentLines.ToList(); } } private void TransferUpliftVanCalculationGridSettings(SearchAreaConditions kernelSearchAreaConditions) { - slipCircleDefinition = new SlipCircleDefinition {GridSizeDetermination = GridSizeDetermination.Specified}; - if (kernelSearchAreaConditions.AutoSearchArea) + slipCircleDefinition = new SlipCircleDefinition { - slipCircleDefinition.GridSizeDetermination = GridSizeDetermination.Automatic; - } + GridSizeDetermination = kernelSearchAreaConditions.AutoSearchArea + ? GridSizeDetermination.Automatic + : GridSizeDetermination.Specified + }; if (kernelSearchAreaConditions.AutoTangentLines) {