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)]