Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs =================================================================== diff -u -r838 -r841 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 838) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 841) @@ -42,18 +42,15 @@ /// /// /// - /// /// - /// - /// /// /// /// /// public static XDocument CreateMStabXmlDoc(string mstabProjectFilename, DesignScenario scenario, - SoilGeometryProbability subSoilScenario, double riverLevel, - MStabDesignEmbankment mstabDesignEmbankment, SurfaceLine2 surfaceLine, - double? trafficLoad, double requiredSafetyFactor, FailureMechanismeParamatersMStab failureMechanismeParamatersMStab, + SoilGeometryProbability subSoilScenario, + MStabDesignEmbankment mstabDesignEmbankment, + double requiredSafetyFactor, FailureMechanismeParamatersMStab failureMechanismeParamatersMStab, out List errorMessages) { @@ -104,11 +101,11 @@ // Design options failureMechanismeParamatersMStab.Design = mstabDesignEmbankment; - failureMechanismeParamatersMStab.SurfaceLine = surfaceLine; - failureMechanismeParamatersMStab.RiverLevel = riverLevel; // scenario.RiverLevel; + failureMechanismeParamatersMStab.SurfaceLine = scenario.Location.SurfaceLine; + failureMechanismeParamatersMStab.RiverLevel = scenario.RiverLevel; failureMechanismeParamatersMStab.DikeTableHeight = - scenario.DikeTableHeight ?? surfaceLine.GetDefaultDikeTableHeight() ?? 0; - if (trafficLoad != null) failureMechanismeParamatersMStab.TrafficLoad = trafficLoad.Value; + scenario.DikeTableHeight ?? scenario.Location.SurfaceLine.GetDefaultDikeTableHeight() ?? 0; + failureMechanismeParamatersMStab.TrafficLoad = scenario.Location.StabilityOptions.TrafficLoad ?? 0; // Horizontal balance; TODO: Combine with code in StabilityCalculation if (failureMechanismeParamatersMStab.MStabParameters.Model == MStabModelType.HorizontalBalance) @@ -120,10 +117,10 @@ } failureMechanismeParamatersMStab.MStabParameters.HorizontalBalanceArea = new HorizontalBalanceArea(); failureMechanismeParamatersMStab.MStabParameters.HorizontalBalanceArea.XLeft = - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X; + scenario.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X; failureMechanismeParamatersMStab.MStabParameters.HorizontalBalanceArea.XRight = - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X; - failureMechanismeParamatersMStab.MStabParameters.HorizontalBalanceArea.YTop = riverLevel; + scenario.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X; + failureMechanismeParamatersMStab.MStabParameters.HorizontalBalanceArea.YTop = scenario.RiverLevel; failureMechanismeParamatersMStab.MStabParameters.HorizontalBalanceArea.YBottom = profile1D.InBetweenAquiferLayer?.TopLevel ?? profile1D.BottomAquiferLayer.TopLevel; int planeCount = @@ -134,12 +131,12 @@ } // Zonestype is ZoneAreas; TODO: Combine with code in StabilityCalculation - var dikeTopAtPolder = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder); + var dikeTopAtPolder = scenario.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder); if ( failureMechanismeParamatersMStab.MStabParameters.CalculationOptions.ZonesType.Equals( MStabZonesType.ZoneAreas)) { - double? dikeTableHeight = scenario.DikeTableHeight ?? surfaceLine.GetDefaultDikeTableHeight() ?? null; + double? dikeTableHeight = scenario.DikeTableHeight ?? scenario.Location.SurfaceLine.GetDefaultDikeTableHeight() ?? null; if (!dikeTableHeight.HasValue) throw new DamFailureMechanismeCalculatorException("Surface line has no dike table height."); failureMechanismeParamatersMStab.MStabParameters.ZoneAreas = new MStabZoneAreas @@ -148,8 +145,8 @@ SafetyFactorZone1A = requiredSafetyFactor, SafetyFactorZone1B = requiredSafetyFactor, XCoordinateDikeTopAtPolder = dikeTopAtPolder.X, - XCoordinateDikeTopAtRiver = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X, - XCoordinateStartRestProfile = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X + XCoordinateDikeTopAtRiver = scenario.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X, + XCoordinateStartRestProfile = scenario.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X }; if (scenario.Location.StabilityOptions?.ZoneAreaRestSlopeCrestWidth != null) { @@ -159,7 +156,7 @@ if (failureMechanismeParamatersMStab.MStabParameters.CalculationOptions.ZonesType.Equals(MStabZonesType.ForbiddenZone)) { - failureMechanismeParamatersMStab.MStabParameters.ForbiddenZone = CreateForbiddenZone(scenario, surfaceLine); + failureMechanismeParamatersMStab.MStabParameters.ForbiddenZone = CreateForbiddenZone(scenario, scenario.Location.SurfaceLine); } // Make sure riverlevel is correct with respect to surfaceline @@ -168,8 +165,8 @@ { riverLevelLow = scenario.RiverLevelLow.Value; } - double? riverLevelHigh = riverLevel; - var surfaceLevelOutside = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelOutside); + double? riverLevelHigh = scenario.RiverLevel; + var surfaceLevelOutside = scenario.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelOutside); if (riverLevelHigh < surfaceLevelOutside.Z) { var riverLevelHighIsBelowSurfaceLevelOutside = Path.GetFileName(mstabProjectFilename) + ": " + @@ -182,7 +179,7 @@ var currentSurfaceLine = scenario.GetMostRecentSurfaceLine(subSoilScenario.SoilProfile1D, Path.GetFileName(soilGeometry2DName)); if (currentSurfaceLine == null) { - currentSurfaceLine = surfaceLine; + currentSurfaceLine = scenario.Location.SurfaceLine; } var waterLevel = riverLevelHigh.Value; Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r838 -r841 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 838) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 841) @@ -73,6 +73,7 @@ // if current model is BishopUpliftVan then set to Bishop for proper name/path for inputfile model = MStabModelType.Bishop; } + var damMacroStabilityInput = new DamMacroStabilityInput() { DGeoStabilityExePath = FailureMechanismeParamatersMStab.DGeoStabilityExePath, @@ -233,9 +234,6 @@ var stabilityProjectFilename = kernelDataInput.DGeoStabilityInputFileName; var scenario = damKernelInput.DesignScenario; var subSoilScenario = damKernelInput.SubSoilScenario; - var riverLevel = scenario.RiverLevel; - var surfaceLine = scenario.Location.SurfaceLine; - var trafficLoad = scenario.Location.StabilityOptions.TrafficLoad; var requiredSafetyFactor = scenario.RequiredSafetyFactorStabilityInnerSlope?? scenario.Location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope; if (requiredSafetyFactor == null) { @@ -244,7 +242,7 @@ List errorMessages; XDocument mstabXml = MStabXmlDoc.CreateMStabXmlDoc(stabilityProjectFilename, scenario, subSoilScenario, - riverLevel, null, surfaceLine, trafficLoad, requiredSafetyFactor.Value, + null, requiredSafetyFactor.Value, kernelDataInput.FailureMechanismeParamatersMStab, out errorMessages); mstabXml.Save(stabilityProjectFilename + ".xml"); Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs =================================================================== diff -u -r838 -r841 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 838) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 841) @@ -179,9 +179,6 @@ var stabilityProjectFilename = kernelDataInput.DGeoStabilityInputFileName; var scenario = damKernelInput.DesignScenario; var subSoilScenario = damKernelInput.SubSoilScenario; - var riverLevel = scenario.RiverLevel; - var surfaceLine = scenario.Location.SurfaceLine; - var trafficLoad = scenario.Location.StabilityOptions.TrafficLoad; var requiredSafetyFactor = scenario.RequiredSafetyFactorStabilityOuterSlope?? scenario.Location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope; if (requiredSafetyFactor == null) { @@ -190,7 +187,7 @@ List errorMessages; XDocument mstabXml = MStabXmlDoc.CreateMStabXmlDoc(stabilityProjectFilename, scenario, subSoilScenario, - riverLevel, null, surfaceLine, trafficLoad, requiredSafetyFactor.Value, + null, requiredSafetyFactor.Value, kernelDataInput.FailureMechanismeParamatersMStab, out errorMessages); mstabXml.Save(stabilityProjectFilename + ".xml"); Index: dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityCommon/MStabXmlDocTests.cs =================================================================== diff -u -r838 -r841 --- dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityCommon/MStabXmlDocTests.cs (.../MStabXmlDocTests.cs) (revision 838) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityCommon/MStabXmlDocTests.cs (.../MStabXmlDocTests.cs) (revision 841) @@ -63,9 +63,9 @@ var location = new Location(); var scenario = DamMacroStabilityTestHelper.CreateScenarioForLocation(location, line); scenario.Location.SoildatabaseName = soilDbName; + scenario.Location.StabilityOptions = new StabilityOptions(); + scenario.Location.StabilityOptions.TrafficLoad = 10.0; - var surfaceLine = scenario.Location.SurfaceLine; - var trafficLoad = 10.0; var subSoilScenario = new SoilGeometryProbability(); subSoilScenario.StiFileName = soilGeometry2DName; subSoilScenario.SoilProfileType = SoilProfileType.ProfileTypeStiFile; @@ -79,7 +79,7 @@ MStabDesignEmbankment mStabDesignEmbankment = null; XDocument mstabXml = MStabXmlDoc.CreateMStabXmlDoc(stabilityProjectFilename, scenario, subSoilScenario, - scenario.RiverLevel, mStabDesignEmbankment, surfaceLine, trafficLoad, requiredSafetyFactor, failureMechanismeParamatersMStab, + mStabDesignEmbankment, requiredSafetyFactor, failureMechanismeParamatersMStab, out errorMessages); mstabXml.Save(xmlFileName);