Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r3030 -r3033 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 3030) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 3033) @@ -113,7 +113,7 @@ FillMacroStabilityWrapperInputFromEngine fillMacroStabilityWrapperFromEngine = new FillMacroStabilityWrapperInputFromEngine() { TrafficLoad = trafficLoad, - UpliftVanCalculationGrid = DetermineGridFromSettings(damKernelInput.Location.SurfaceLine) + UpliftVanCalculationGrid = UpliftVanGridCreator.DetermineGridFromSettings(damKernelInput.Location.SurfaceLine) }; // ToDo MWDAM-1373/1374: fill SoilProfile2D @@ -133,37 +133,6 @@ 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; - - upliftVanCalculationGrid.TangentLineAutomaticAtBoundaries = false; - upliftVanCalculationGrid.TangentLineCount = 5; - upliftVanCalculationGrid.TangentLineZTop = - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).Z - 1; - upliftVanCalculationGrid.TangentLineZBottom = - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).Z - 6; - } - - return upliftVanCalculationGrid; - } - private void EnsureSoilProfile2DIsFilled(SoilGeometryProbability subSoilScenario, SurfaceLine2 surfaceLine2, Soil dikeEmbankmentSoil) { var soilProfile2D = subSoilScenario.SoilProfile2D; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj =================================================================== diff -u -r2905 -r3033 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 2905) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 3033) @@ -132,6 +132,7 @@ + Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/UpliftVanGridCreator.cs =================================================================== diff -u --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/UpliftVanGridCreator.cs (revision 0) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/UpliftVanGridCreator.cs (revision 3033) @@ -0,0 +1,62 @@ +// Copyright (C) Stichting Deltares 2019. All rights reserved. +// +// This file is part of the Dam Engine. +// +// The Dam Engine is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Deltares.DamEngine.Data.Geotechnics; + +namespace Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityInwards +{ + public class UpliftVanGridCreator + { + /// Determines the UpliftVan grid from settings. + /// The surface line. + /// + public static 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; + + upliftVanCalculationGrid.TangentLineAutomaticAtBoundaries = false; + upliftVanCalculationGrid.TangentLineCount = 5; + upliftVanCalculationGrid.TangentLineZTop = + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).Z - 1; + upliftVanCalculationGrid.TangentLineZBottom = + surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).Z - 6; + } + + return upliftVanCalculationGrid; + } + } +}