Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs =================================================================== diff -u -r5475 -r5495 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 5475) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 5495) @@ -24,6 +24,7 @@ using System.IO; using System.Linq; using System.Threading; +using Deltares.DamEngine.Calculators.KernelWrappers.Assemblers; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; @@ -45,71 +46,6 @@ private const string mapTestFiles = @"TestFiles\"; private const string tutorialStability2D = @"TestFiles\InputTutorialStability2D.xml"; - /// Test for different segmentFailureMechanismType - /// The soil probabilities are set tot the specified segmentFailureMechanismType - [TestCase(ConversionHelper.InputSegmentFailureMechanismStability)] - [TestCase(ConversionHelper.InputSegmentFailureMechanismAll)] - public void TestRunMacroStabilityTutorialDesignBishop(int segmentFailureMechanismType) - { - // Based on ".data\DamEngineTestProjects\DAM Tutorial Design\DAM Tutorial Design.damx" - // with Dam Classic rev.1059 - // Set Analysis type to "No adaption" - // Select 1st location (DWP_1) - // Set Calculation Options: Stability Inside - Bishop - // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design - // with Dam Classic rev.833 - const string calcDir = "TestStabInwardsBishop"; - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } - - Directory.CreateDirectory(calcDir); - - string inputString = File.ReadAllText(tutorialStability2D); - string[] locations = ["DWP_1"]; - inputString = XmlAdapter.SelectLocations(inputString, locations); - - inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used - inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used - inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", segmentFailureMechanismType.ToString()); - - Output output = GeneralHelper.RunAfterInputValidation(inputString); - - Assert.Multiple(() => - { - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.309).Within(tolerance)); - - // NumberOfIterations=0 - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.NumberOfIterations, Is.EqualTo(0)); - // ResultMessage "" - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.ResultMessage, Is.EqualTo("")); - - // Check that a line is specified - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.RedesignedSurfaceLine, Is.Not.Null); - - // Profile name = DWP_1.sti - Assert.That(output.Results.CalculationResults[0].ProfileName, Is.EqualTo("DWP_1.stix")); - }); - - // Uplift - UpliftSituation upliftSituation = output.Results.CalculationResults[0].StabilityDesignResults.UpliftSituation; - Assert.That(upliftSituation, Is.Not.Null); - Assert.Multiple(() => - { - Assert.That(upliftSituation.IsUplift, Is.EqualTo(true)); - Assert.That(upliftSituation.Pl3MinUplift, Is.EqualTo(1.135).Within(tolerance)); - Assert.That(upliftSituation.Pl3HeadAdjusted, Is.EqualTo(4.400).Within(tolerance)); - Assert.That(upliftSituation.Pl3LocationXMinUplift, Is.EqualTo(60.640).Within(tolerance)); - Assert.That(upliftSituation.Pl4MinUplift, Is.EqualTo(0.0).Within(tolerance)); - Assert.That(upliftSituation.Pl4HeadAdjusted, Is.EqualTo(0.0).Within(tolerance)); - Assert.That(upliftSituation.Pl4LocationXMinUplift, Is.EqualTo(0.0).Within(tolerance)); - - // Calculation Result - Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult), Is.EqualTo(CalculationResult.Succeeded)); - }); - } - [Test, Category(Categories.Slow)] public void TestRunMacroStabilityTutorialDesignUpliftVan() { @@ -220,7 +156,6 @@ Assert.That(result.StabilityDesignResults.UpliftSituation, Is.Not.Null); Assert.That(result.StabilityDesignResults.StabilityModelType, Is.EqualTo(DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan)); Assert.That(result.BaseFileName, Is.EqualTo("Loc(DWP_1)_Sce(1)_Pro(DWP_1_stix)")); - }); Assert.Multiple(() => { @@ -244,7 +179,7 @@ string inputString = File.ReadAllText(tutorialStability2D); string[] locations = ["DWP_22"]; inputString = XmlAdapter.SelectLocations(inputString, locations); - + inputString = XmlAdapter.ChangeStabilityInputModel(inputString, InputStabilityModelType.BishopUpliftVan); inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used @@ -486,45 +421,6 @@ Assert.That(output.Results.CalculationResults.First().StabilityDesignResults.SafetyFactor, Is.EqualTo(1.366).Within(tolerance)); } - [TestCase("SlopeAdaptionBeforeShoulderAdaption", 1.4, 1.515, 5)] - [TestCase("OptimizedSlopeAndShoulderAdaption", 1.4, 1.581, 4)] - public void GivenTutorialDesignDwp1_WhenRunWithGeometryAdaption_ThenGivesExpectedResults(string designMethod, - double requiredSafetyFactor, double actualSafetyFactor, int iterationCount) - { - // Create xml with Tutorial project - // Select location DWP_1 - // Calculation options: Stability Inside - Bishop - string calcDir = "TestStabInwardsBishop_AdaptGeometry_" + designMethod + requiredSafetyFactor.ToString(CultureInfo.InvariantCulture); - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } - - // calcDir = Path.GetFullPath(calcDir); - // Directory.CreateDirectory(calcDir); - string inputString = File.ReadAllText(tutorialStability2D); - string[] locations = ["DWP_1"]; - inputString = XmlAdapter.SelectLocations(inputString, locations); - inputString = XmlAdapter.ChangeValueInXml(inputString, "FailureMechanismSystemType", ConversionHelper.ConvertToInputFailureMechanismSystemType( - FailureMechanismSystemType.StabilityInside).ToString()); - inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used - inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used - inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", - ConversionHelper.InputSegmentFailureMechanismStability.ToString()); - inputString = XmlAdapter.ChangeValueInXml(inputString, "AnalysisType", "AdaptGeometry"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "StabilityDesignMethod", designMethod); - inputString = XmlAdapter.ChangeValueInXml(inputString, "RequiredSafetyFactorStabilityInnerSlope", - requiredSafetyFactor.ToString(CultureInfo.InvariantCulture)); - File.WriteAllText(calcDir + "_InputFile.xml", inputString); - Output output = GeneralHelper.RunAfterInputValidation(inputString, true); - Assert.Multiple(() => - { - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.GreaterThanOrEqualTo(requiredSafetyFactor)); - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(actualSafetyFactor).Within(tolerance)); - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.NumberOfIterations, Is.EqualTo(iterationCount)); - }); - } - [Test] [Category(Categories.Slow)] [Category(Categories.WorkInProgress)] @@ -825,7 +721,7 @@ CheckCalculationResults( output.Results.CalculationResults[2], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, expectedSafetyFactor1, true, CalculationResult.Succeeded); - + CheckCalculationResults( output.Results.CalculationResults[3], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.624, true, CalculationResult.Succeeded); @@ -835,7 +731,7 @@ CheckCalculationResults( output.Results.CalculationResults[5], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, expectedSafetyFactor2, true, CalculationResult.Succeeded); - + CheckCalculationResults( output.Results.CalculationResults[6], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.682, false, CalculationResult.Succeeded); @@ -911,7 +807,7 @@ CheckCalculationResults( output.Results.CalculationResults[2], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, 1.682, false, CalculationResult.Succeeded); - + CheckCalculationResults( output.Results.CalculationResults[3], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.624, false, CalculationResult.Succeeded); @@ -921,7 +817,7 @@ CheckCalculationResults( output.Results.CalculationResults[5], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, 1.624, false, CalculationResult.Succeeded); - + CheckCalculationResults( output.Results.CalculationResults[6], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.682, false, CalculationResult.Succeeded); @@ -961,6 +857,116 @@ } } + /// Test for different segmentFailureMechanismType + /// The soil probabilities are set tot the specified segmentFailureMechanismType + [TestCase(ConversionHelper.InputSegmentFailureMechanismStability)] + [TestCase(ConversionHelper.InputSegmentFailureMechanismAll)] + public void TestRunMacroStabilityTutorialDesignBishop(int segmentFailureMechanismType) + { + // Based on ".data\DamEngineTestProjects\DAM Tutorial Design\DAM Tutorial Design.damx" + // with Dam Classic rev.1059 + // Set Analysis type to "No adaption" + // Select 1st location (DWP_1) + // Set Calculation Options: Stability Inside - Bishop + // Expected results are determined by running dam\dam clients\DamUI\trunk\data\DamEngineTestProjects\DAM Tutorial Design + // with Dam Classic rev.833 + const string calcDir = "TestStabInwardsBishop"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + + Directory.CreateDirectory(calcDir); + + string inputString = File.ReadAllText(tutorialStability2D); + string[] locations = ["DWP_1"]; + inputString = XmlAdapter.SelectLocations(inputString, locations); + + inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used + inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used + inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", segmentFailureMechanismType.ToString()); + + Output output = GeneralHelper.RunAfterInputValidation(inputString); + + Assert.Multiple(() => + { + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.309).Within(tolerance)); + + // NumberOfIterations=0 + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.NumberOfIterations, Is.EqualTo(0)); + // ResultMessage "" + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.ResultMessage, Is.EqualTo("")); + + // Check that a line is specified + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.RedesignedSurfaceLine, Is.Not.Null); + + // Profile name = DWP_1.sti + Assert.That(output.Results.CalculationResults[0].ProfileName, Is.EqualTo("DWP_1.stix")); + }); + + // Uplift + UpliftSituation upliftSituation = output.Results.CalculationResults[0].StabilityDesignResults.UpliftSituation; + Assert.That(upliftSituation, Is.Not.Null); + Assert.Multiple(() => + { + Assert.That(upliftSituation.IsUplift, Is.EqualTo(true)); + Assert.That(upliftSituation.Pl3MinUplift, Is.EqualTo(1.135).Within(tolerance)); + Assert.That(upliftSituation.Pl3HeadAdjusted, Is.EqualTo(4.400).Within(tolerance)); + Assert.That(upliftSituation.Pl3LocationXMinUplift, Is.EqualTo(60.640).Within(tolerance)); + Assert.That(upliftSituation.Pl4MinUplift, Is.EqualTo(0.0).Within(tolerance)); + Assert.That(upliftSituation.Pl4HeadAdjusted, Is.EqualTo(0.0).Within(tolerance)); + Assert.That(upliftSituation.Pl4LocationXMinUplift, Is.EqualTo(0.0).Within(tolerance)); + + // Calculation Result + Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult), Is.EqualTo(CalculationResult.Succeeded)); + }); + } + + [TestCase("DWP_1", "SlopeAdaptionBeforeShoulderAdaption", CalculationResult.Succeeded, 1.4, 1.515, 5)] + [TestCase("DWP_1", "OptimizedSlopeAndShoulderAdaption",CalculationResult.Succeeded, 1.4, 1.581, 4)] + [TestCase("DWP_2", "SlopeAdaptionBeforeShoulderAdaption", CalculationResult.RunFailed, 1.5, 1.365, 14)] + [TestCase("DWP_2", "OptimizedSlopeAndShoulderAdaption", CalculationResult.RunFailed, 1.5, 1.113, 17)] + public void GivenTutorialDesign_WhenSpecifiedLocationRunWithGeometryAdaption_ThenGivesExpectedResults(string locationId, string designMethod, + CalculationResult calculationResult, double requiredSafetyFactor, double actualSafetyFactor, int iterationCount) + { + // Create xml with Tutorial project + // Select location DWP_1 + // Calculation options: Stability Inside - Bishop + string calcDir = $"TestStabInwardsBishop_AdaptGeometry_{locationId}_{designMethod}_{requiredSafetyFactor.ToString(CultureInfo.InvariantCulture)}"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + + // calcDir = Path.GetFullPath(calcDir); + // Directory.CreateDirectory(calcDir); + string inputString = File.ReadAllText(tutorialStability2D); + string[] locations = [locationId]; + inputString = XmlAdapter.SelectLocations(inputString, locations); + inputString = XmlAdapter.ChangeValueInXml(inputString, "FailureMechanismSystemType", ConversionHelper.ConvertToInputFailureMechanismSystemType( + FailureMechanismSystemType.StabilityInside).ToString()); + inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used + inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used + inputString = XmlAdapter.ChangeValueInXml(inputString, "SegmentFailureMechanismType", + ConversionHelper.InputSegmentFailureMechanismStability.ToString()); + inputString = XmlAdapter.ChangeValueInXml(inputString, "AnalysisType", "AdaptGeometry"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "StabilityDesignMethod", designMethod); + inputString = XmlAdapter.ChangeValueInXml(inputString, "RequiredSafetyFactorStabilityInnerSlope", + requiredSafetyFactor.ToString(CultureInfo.InvariantCulture)); + File.WriteAllText(calcDir + "_InputFile.xml", inputString); + Output output = GeneralHelper.RunAfterInputValidation(inputString); + Assert.Multiple(() => + { + Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult), Is.EqualTo(calculationResult)); + if (calculationResult == CalculationResult.Succeeded) + { + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.GreaterThanOrEqualTo(requiredSafetyFactor)); + } + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(actualSafetyFactor).Within(tolerance)); + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.NumberOfIterations, Is.EqualTo(iterationCount)); + }); + } + private static Output GetOutputStringForProject(string analysisType, bool isSuccessful) { // Create xml with Tutorial project @@ -985,13 +991,12 @@ inputString = XmlAdapter.ChangeValueInXml(inputString, "AnalysisType", analysisType); inputString = XmlAdapter.ChangeValueInXml(inputString, "DikeTableHeight", "5.9"); inputString = XmlAdapter.ChangeValueInXml(inputString, "RiverLevel", "5.5"); - + return GeneralHelper.RunAfterInputValidation(inputString, isSuccessful); } private static void CheckCalculationResults(DesignResult output, string locationName, string profileName, DesignResultStabilityDesignResultsStabilityModelType model, double safetyFactor, bool isUplift, CalculationResult result) { - Assert.Multiple(() => { Assert.That(output.LocationName, Is.EqualTo(locationName)); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r5443 -r5495 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 5443) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 5495) @@ -209,8 +209,8 @@ var designResult = new DesignResult(damKernelInput.DamFailureMechanismeCalculationSpecification, designScenario, damKernelInput.SubSoilScenario.SoilProfile1D, soilProfile2DName) { - // initialize as failed - CalculationResult = CalculationResult.RunFailed, + // Initialize to the result of the designScenario + CalculationResult = designScenario.CalculationResult, StabilityDesignResults = new StabilityDesignResults() }; var stabilityDesignResults = new StabilityDesignResults @@ -232,25 +232,29 @@ { designResult.BaseFileName = Path.GetFileNameWithoutExtension(macroStabilityOutputItem.ProjectName); designResult.CalculationSubDir = macroStabilityOutputItem.CalculationPath; - designResult.CalculationResult = macroStabilityOutputItem.CalculationResult; designResult.StabilityDesignResults.StabilityModelType = macroStabilityOutputItem.StabilityModelType; - if (designResult.CalculationResult == CalculationResult.Succeeded) + if (macroStabilityOutputItem.CalculationResult == CalculationResult.Succeeded) { designResult.StabilityDesignResults.SafetyFactor = macroStabilityOutputItem.SafetyFactor; + + designResult.StabilityDesignResults.ActiveCenterPoint = + macroStabilityOutputItem.ActiveCenterPoint; + designResult.StabilityDesignResults.ActiveCenterPointRadius = + macroStabilityOutputItem.ActiveCenterPointRadius; + designResult.StabilityDesignResults.ResultSlices = macroStabilityOutputItem.ResultSlices; + if (macroStabilityOutputItem.StabilityModelType == MStabModelType.UpliftVan || + macroStabilityOutputItem.StabilityModelType == MStabModelType.BishopUpliftVan) + { + designResult.StabilityDesignResults.PassiveCenterPoint = + macroStabilityOutputItem.PassiveCenterPoint; + designResult.StabilityDesignResults.PassiveCenterPointRadius = + macroStabilityOutputItem.PassiveCenterPointRadius; + } } - designResult.StabilityDesignResults.ActiveCenterPoint = - macroStabilityOutputItem.ActiveCenterPoint; - designResult.StabilityDesignResults.ActiveCenterPointRadius = - macroStabilityOutputItem.ActiveCenterPointRadius; - designResult.StabilityDesignResults.ResultSlices = macroStabilityOutputItem.ResultSlices; - if (macroStabilityOutputItem.StabilityModelType == MStabModelType.UpliftVan || - macroStabilityOutputItem.StabilityModelType == MStabModelType.BishopUpliftVan) + if (designResult.CalculationResult == CalculationResult.Succeeded) { - designResult.StabilityDesignResults.PassiveCenterPoint = - macroStabilityOutputItem.PassiveCenterPoint; - designResult.StabilityDesignResults.PassiveCenterPointRadius = - macroStabilityOutputItem.PassiveCenterPointRadius; + designResult.CalculationResult = macroStabilityOutputItem.CalculationResult; } } @@ -384,11 +388,11 @@ macroStabilityOutput.CalculationResult = CalculationResult.UnexpectedError; messages.Add(new LogMessage(LogMessageType.Error, null, exceptionDuringCalculation.Message)); } - + try { MacroStabilityOutputItem stabilityOutputItem = macroStabilityOutput.StabilityOutputItems[^1]; - + switch (stabilityOutputItem.StabilityModelType) { case MStabModelType.Bishop: @@ -424,15 +428,15 @@ IntrusionVerticalWaterPressureType? pressureType = damKernelInput.Location.IntrusionVerticalWaterPressure; ThrowWhenSoilProfile2DIsNull(damKernelInput.SubSoilScenario); - + if (damKernelInput.SubSoilScenario.SoilProfile1D != null) { SurfaceLine2 surfaceLine = damKernelInput.Location.SurfaceLine; SoilProfile1D soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile2D.GetSoilProfile1D( damKernelInput.Location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder).X); return PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile1D, surfaceLine, penetrationLength, pressureType); } - + SoilProfile2D soilProfile2D = damKernelInput.SubSoilScenario.SoilProfile2D; return PlLinesToWaternetConverter.CreateWaternetBasedOnPlLines(plLines, soilProfile2D, penetrationLength, pressureType); } @@ -444,11 +448,11 @@ /// The surface line. /// The dike embankment soil. /// Thrown when no SoilProfile2D is defined - private static void CombineSoilProfile2DWithSurfaceLine(SoilGeometryProbability subSoilScenario, SurfaceLine2 surfaceLine2, + private static void CombineSoilProfile2DWithSurfaceLine(SoilGeometryProbability subSoilScenario, SurfaceLine2 surfaceLine2, Soil dikeEmbankmentSoil) { ValidateForCombineSoilProfile2DWithSurfaceLine(subSoilScenario, surfaceLine2, dikeEmbankmentSoil); - + subSoilScenario.SoilProfile2D = SoilProfile2DSurfaceLineHelper.CombineSurfaceLineWithSoilProfile2D(surfaceLine2.Geometry, subSoilScenario.SoilProfile2D, dikeEmbankmentSoil, 0); } @@ -604,8 +608,8 @@ case MStabModelType.UpliftVan: resultStixWrite.FillCalculatedDualCircle(macroStabilityOutputItem.ActiveCenterPoint.X, macroStabilityOutputItem.ActiveCenterPoint.Z, - macroStabilityOutputItem.ActiveCenterPointRadius, - macroStabilityOutputItem.PassiveCenterPoint.X, + macroStabilityOutputItem.ActiveCenterPointRadius, + macroStabilityOutputItem.PassiveCenterPoint.X, macroStabilityOutputItem.PassiveCenterPoint.Z); break; case MStabModelType.Bishop: @@ -614,6 +618,7 @@ macroStabilityOutputItem.ActiveCenterPointRadius); break; } + StixFileWrite(resultStixWrite, fileNameForCalculationAsStix, input); } @@ -632,7 +637,7 @@ return Path.Combine(Path.GetDirectoryName(fileNameForCalc) ?? string.Empty, $"{Path.GetFileNameWithoutExtension(fileNameForCalc)}_{suffix}{extension}"); } - + private static void ThrowWhenSoilProfile2DIsNull(SoilGeometryProbability subSoilScenario) { if (subSoilScenario.SoilProfile2D == null)