Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r6479 -r6483 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6479) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6483) @@ -48,22 +48,13 @@ public class MacroStabilityInwardsKernelWrapper : IKernelWrapper { - private readonly MacroStabilityCommonHelper macroStabilityCommonHelper; private MacroStabilityInterface stabilityCalculator; private MacroStabilityInterface stabilityCalculatorForSecondCalculation; private string fileNameForCalculation; private string fileNameForSecondCalculation; private int lastIterationIndex; /// - /// Initializes a new instance of the class. - /// - public MacroStabilityInwardsKernelWrapper() - { - macroStabilityCommonHelper = new MacroStabilityCommonHelper(); - } - - /// /// Gets or sets the failure mechanism parameters for MStab. /// /// @@ -228,7 +219,7 @@ macroStabilityKernelDataInput.MStabParameters.Model = StabilityModelType.Bishop; } - macroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, + MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, macroStabilityKernelDataInput.MStabParameters, macroStabilityKernelDataInput.WaterNet, macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, @@ -240,7 +231,7 @@ { macroStabilityKernelDataInput.Input.StabilityModel.ModelOption = StabilityModelOption.UpliftVan; macroStabilityKernelDataInput.MStabParameters.Model = StabilityModelType.UpliftVan; - macroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, + MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, macroStabilityKernelDataInput.MStabParameters, macroStabilityKernelDataInput.WaterNet, macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r6482 -r6483 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 6482) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 6483) @@ -44,6 +44,7 @@ using Deltares.MacroStability.Io.XmlOutput; using Deltares.MacroStability.Io.XmlValidationOutput; using CharacteristicPointType = Deltares.DamEngine.Data.Geotechnics.CharacteristicPointType; +using ConversionHelper = Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo.ConversionHelper; using MacroStabilityOutput = Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityInwards.MacroStabilityOutput; using Point2D = Deltares.DamEngine.Data.Geometry.Point2D; using Soil = Deltares.DamEngine.Data.Geotechnics.Soil; @@ -54,7 +55,7 @@ /// /// Class with helper methods for the Macro Stability Wrappers. /// -public class MacroStabilityCommonHelper +public static class MacroStabilityCommonHelper { /// /// Combines the surface line with the SoilProfile1D or the SoilProfile2D. @@ -414,7 +415,7 @@ /// /// /// - public void PerformStabilityCalculation(DamKernelInput damKernelInput, MStabParameters mStabParameters, + public static void PerformStabilityCalculation(DamKernelInput damKernelInput, MStabParameters mStabParameters, Waternet waterNet, double xCoordinateLowestUpliftFactorPoint, MacroStabilityOutput macroStabilityOutput, string fileName, MacroStabilityInterface calculator, out List errorMessages) @@ -433,6 +434,7 @@ string outputFileName = fileName.Replace(".skx", ".out.xml"); File.WriteAllText(outputFileName, outputAsXml); FillEngineFromMacroStabilityKernelOutput.FillDamProjectDataFromKernelModel(output, macroStabilityOutput, out List allMessages); + macroStabilityOutput.CalculationResult = ConversionHelper.ConvertToDamResultType(result); macroStabilityOutput.StabilityOutputItems[^1].CalculationPath = Path.GetDirectoryName(fileName); macroStabilityOutput.StabilityOutputItems[^1].ProjectName = Path.GetFileName(fileName); errorMessages = allMessages.Where(logMessage => logMessage.MessageType == LogMessageType.Error).ToList(); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs =================================================================== diff -u -r6404 -r6483 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 6404) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 6483) @@ -27,9 +27,11 @@ using Deltares.DamEngine.Data.Standard.Logging; using Deltares.MacroStability.CSharpWrapper.Input; using Deltares.MacroStability.CSharpWrapper.Output; +using Deltares.MacroStability.Data; using WaterPressureInterpolationModel = Deltares.DamEngine.Data.Geotechnics.WaterpressureInterpolationModel; using CharacteristicPoint = Deltares.MacroStability.CSharpWrapper.Input.CharacteristicPointType; using CharacteristicPointType = Deltares.DamEngine.Data.Geotechnics.CharacteristicPointType; +using SearchAlgorithm = Deltares.MacroStability.CSharpWrapper.Input.SearchAlgorithm; using WaterPressureInterpolationModelKernel = Deltares.MacroStability.CSharpWrapper.Input.WaterPressureInterpolationModel; using ShearStrengthModelKernel = Deltares.MacroStability.CSharpWrapper.ShearStrengthModelType; using Soil = Deltares.MacroStability.CSharpWrapper.Input.Soil; @@ -38,6 +40,53 @@ public static class ConversionHelper { + + /// + /// Converts result type from MacroStability kernel to Dam Engine result type + /// using a translation table for mapping between enums. + /// + /// The MacroStability kernel calculation result + /// The corresponding Dam Engine calculation result + public static CalculationResult ConvertToDamResultType(Result result) + { + var translationTable = new Dictionary + { + { + Result.NoRun, CalculationResult.NoRun + }, + { + Result.Succeeded, CalculationResult.Succeeded + }, + { + Result.NoInput, CalculationResult.NoInput + }, + { + Result.NoLicense, CalculationResult.NoLicense + }, + { + Result.UserAbort, CalculationResult.UserAbort + }, + { + Result.InvalidInputStructure, CalculationResult.InvalidInputStructure + }, + { + Result.InvalidInputData, CalculationResult.InvalidInputData + }, + { + Result.RunFailed, CalculationResult.RunFailed + }, + { + Result.UnexpectedError, CalculationResult.UnexpectedError + } + }; + return translationTable[result]; + } + + /// + /// Converts the calculation result type from external kernel format to the internal Dam Engine format + /// + /// The external result type to convert + /// The corresponding Dam Engine calculation result type public static CalculationResult ConvertToDamResultType(CalculationResultType calculationResult) { var translationTable = new Dictionary @@ -73,6 +122,12 @@ return translationTable[calculationResult]; } + /// + /// Converts a calculation result from the MacroStability kernel to its corresponding MacroStability result type + /// using a predefined translation table. + /// + /// The calculation result from the MacroStability kernel + /// The corresponding MacroStability result type public static CalculationResultType ConvertToMacroStabilityResultType(CalculationResult calculationResult) { var translationTable = new Dictionary Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityOutwards/MacroStabilityOutwardsKernelWrapper.cs =================================================================== diff -u -r6479 -r6483 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityOutwards/MacroStabilityOutwardsKernelWrapper.cs (.../MacroStabilityOutwardsKernelWrapper.cs) (revision 6479) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityOutwards/MacroStabilityOutwardsKernelWrapper.cs (.../MacroStabilityOutwardsKernelWrapper.cs) (revision 6483) @@ -48,19 +48,10 @@ /// public class MacroStabilityOutwardsKernelWrapper : IKernelWrapper { - readonly MacroStabilityCommonHelper macroStabilityCommonHelper; private MacroStabilityInterface stabilityCalculator; private string fileNameForCalculation; /// - /// Initializes a new instance of the class. - /// - public MacroStabilityOutwardsKernelWrapper() - { - macroStabilityCommonHelper = new MacroStabilityCommonHelper(); - } - - /// /// Gets or sets the failure mechanism parameters for mstab. /// /// @@ -167,7 +158,7 @@ MacroStabilityCommonHelper.ThrowWhenMacroStabilityKernelInputNull(macroStabilityKernelDataInput); MacroStabilityCommonHelper.ThrowWhenMacroStabilityKernelOutputNull(macroStabilityOutput); - macroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, + MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, macroStabilityKernelDataInput.MStabParameters, macroStabilityKernelDataInput.WaterNet, macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, Fisheye: Tag 6483 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityKernelInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs =================================================================== diff -u -r6404 -r6483 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 6404) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 6483) @@ -27,18 +27,34 @@ using Deltares.MacroStability.CSharpWrapper; using Deltares.MacroStability.CSharpWrapper.Input; using Deltares.MacroStability.CSharpWrapper.Output; +using Deltares.MacroStability.Data; using KellermanSoftware.CompareNetObjects; using NUnit.Framework; using CharacteristicPoint = Deltares.MacroStability.CSharpWrapper.Input.CharacteristicPointType; using CharacteristicPointType = Deltares.DamEngine.Data.Geotechnics.CharacteristicPointType; using ConversionHelper = Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo.ConversionHelper; +using SearchAlgorithm = Deltares.MacroStability.CSharpWrapper.Input.SearchAlgorithm; using Soil = Deltares.MacroStability.CSharpWrapper.Input.Soil; namespace Deltares.DamEngine.Calculators.Tests.KernelWrappers.MacroStabilityCommon; [TestFixture] public class ConversionHelperTests { + [TestCase(Result.NoInput, CalculationResult.NoInput)] + [TestCase(Result.NoRun, CalculationResult.NoRun)] + [TestCase(Result.Succeeded, CalculationResult.Succeeded)] + [TestCase(Result.InvalidInputData, CalculationResult.InvalidInputData)] + [TestCase(Result.InvalidInputStructure, CalculationResult.InvalidInputStructure)] + [TestCase(Result.NoLicense, CalculationResult.NoLicense)] + [TestCase(Result.RunFailed, CalculationResult.RunFailed)] + [TestCase(Result.UnexpectedError, CalculationResult.UnexpectedError)] + [TestCase(Result.UserAbort, CalculationResult.UserAbort)] + public void CanConvertToMacroStabilityResultType(CalculationResult calculationResult, Result result) + { + Assert.That(ConversionHelper.ConvertToDamResultType(result), Is.EqualTo(calculationResult)); + } + [TestCase(CalculationResult.NoInput, CalculationResultType.NoInput)] [TestCase(CalculationResult.NoRun, CalculationResultType.NoRun)] [TestCase(CalculationResult.Succeeded, CalculationResultType.Succeeded)]