Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r2943 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 2943) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 2960) @@ -22,7 +22,6 @@ using System; using System.Collections.Generic; using System.Data; -using System.Linq; using Deltares.DamEngine.Calculators.DikesDesign; using Deltares.DamEngine.Calculators.KernelWrappers.Common; using Deltares.DamEngine.Calculators.KernelWrappers.Interfaces; @@ -36,8 +35,6 @@ using Deltares.DamEngine.Data.Standard; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.MacroStability.CSharpWrapper; - -using ConversionHelper = Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo.ConversionHelper; using GeometryPoint = Deltares.DamEngine.Data.Geometry.GeometryPoint; using LogMessage = Deltares.DamEngine.Data.Standard.Logging.LogMessage; using LogMessageType = Deltares.DamEngine.Data.Standard.Logging.LogMessageType; @@ -46,7 +43,8 @@ { public class MacroStabilityInwardsKernelWrapper : IKernelWrapper { - //private Deltares.MacroStability.CSharpWrapper.Calculator stabilityCalculator; + private Calculator stabilityCalculator; + private int lastIterationIndex = 0; /// @@ -114,15 +112,14 @@ TrafficLoad = trafficLoad // ToDo MWDAM-1373/1374: fill SoilProfile2D // ToDo MWDAM-1399: add data for calculation grid Uplift Van, connect it to actual engine input - // Todo Check if trafficload is really part of engine input and if so connect this to trafficload in mecrostability common, + }; - // ToDo MWDAM-1356: following line is not working yet, first all necessary input must be declared macroStabilityInput.Input = fillMacroStabilityWrapperFromEngine.CreateMacroStabilityInput(damKernelInput, FailureMechanismParametersMStab, waternet); // KernelModel expectedKernelModel = fillMacroStabilityWrapperFromEngine.CreateKernelModel(); // expectedKernelModel. // var xmlInput = CreateXmlInput(macroStabilityInput, FailureMechanismParametersMStab.EmbankmentDesignParameters); - // return PrepareKernel(xmlInput); + return PrepareKernel(macroStabilityInput.Input); } return PrepareResult.NotRelevant; } @@ -136,38 +133,29 @@ return PrepareResult.NotRelevant; } - // private PrepareResult PrepareKernel(string xmlInput) - // { - // try - // { - // var input = new MacroStabilityKernelDataInput(); - // new Calculator(input) - // // ToDo MWDAM-1356: Not clear yet what parts are required for input. Temporary test code added. - // //macroStabilityCalculator.InitializeForDeterministic(xmlInput); //ToDo: uncomment when input is set - // //return PrepareResult.Successful; //ToDo: uncomment when input is set - // if (tmpPresumePrepareSucceeds) //ToDo: remove the temporary test code when input is set - // { - // return PrepareResult.Successful; - // } - // else - // { - // return PrepareResult.Failed; - // } - // - // } - // catch - // { - // return PrepareResult.Failed; - // } - // } + private PrepareResult PrepareKernel(MacroStability.CSharpWrapper.Input.MacroStabilityInput input) + { + try + { + stabilityCalculator = new Calculator(input); + // For now a simple check to see if any data has been past at all. + var inputAsXml = stabilityCalculator.KernelInputXml; + if (inputAsXml.Length > 10) + { + return PrepareResult.Successful; + } + else + { + return PrepareResult.Failed; + } + + } + catch + { + return PrepareResult.Failed; + } + } - // private string CreateXmlInput(MacroStabilityKernelDataInput macroStabilityKernelDataInput, EmbankmentDesignParameters embankmentDesignParameters) - // { - // string xmlInput = ""; - // //ToDo in MWDAM-1356 - // return xmlInput; - // } - /// /// Validates the specified kernel data input. /// @@ -179,27 +167,9 @@ /// public int Validate(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages) { - if (tmpPresumeInputValid) - { - messages = new List(); - return 0; - } - else - { - messages = new List(); - messages.Add(new LogMessage(LogMessageType.Error, null, "Not implemented yet")); - // Todo MWDAM-1356 : make valid XML, only then following lines can be enabled - // string kernelMessage = macroStabilityCalculator.Validate(); - // ParseValidationResult(kernelMessage, out messages); - MacroStabilityOutput macroStabilityOutput = (MacroStabilityOutput)kernelDataOutput; - var numberOfErrors = messages.Count(mt => mt.MessageType == LogMessageType.Error); - if (numberOfErrors > 0) - { - macroStabilityOutput.CalculationResult = CalculationResult.InvalidInputData; - } - return numberOfErrors; - - } + // Todo implement validation as soon as it has been implemented in the C# wrapper. + messages = new List(); + return 0; } internal void ParseValidationResult(string xmlValidationResult, out List messages) Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperInput.cs =================================================================== diff -u -r2947 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperInput.cs (.../FillEngineFromMacroStabilityWrapperInput.cs) (revision 2947) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperInput.cs (.../FillEngineFromMacroStabilityWrapperInput.cs) (revision 2960) @@ -81,13 +81,13 @@ var lastStage = macroStabilityInput.StabilityModel.ConstructionStages.Last(); TransferSoilProfile2D(lastStage.SoilProfile, lastStage.PreconsolidationStresses); var lastPreConStage = macroStabilityInput.PreprocessingInput.PreConstructionStages.Last(); - TransferSurfaceLine(lastPreConStage.Surfaceline); + TransferSurfaceLine(lastPreConStage.SurfaceLine); TransferWaternet(macroStabilityInput.StabilityModel.ConstructionStages.Last().Waternet); TransferUpliftVanCalculationGrid(macroStabilityInput.StabilityModel.UpliftVanCalculationGrid, macroStabilityInput.PreprocessingInput.SearchAreaConditions); TransferTrafficLoad(macroStabilityInput.StabilityModel.ConstructionStages.Last().UniformLoads); } - private void TransferTrafficLoad(IList kernelUniformLoads) + private void TransferTrafficLoad(ICollection kernelUniformLoads) { TrafficLoad = null; if ((kernelUniformLoads != null) && (kernelUniformLoads.Count > 0)) @@ -99,7 +99,7 @@ kernelUniformLoads.Count)); } - var kernelUniformLoad = kernelUniformLoads[0]; + var kernelUniformLoad = kernelUniformLoads.First(); TrafficLoad = new TrafficLoad() { XStart = kernelUniformLoad.XStart, @@ -130,10 +130,11 @@ }; // Tangentlines are filled from bottom to top as specified by the FillMacroStabilityWrapperInputFromEngine. - IEnumerable tangentLines = kernelSlipPlaneUpliftVan.TangentLines.ToArray(); - UpliftVanCalculationGrid.TangentLineZBottom = tangentLines.First(); - UpliftVanCalculationGrid.TangentLineZTop = tangentLines.Last(); - UpliftVanCalculationGrid.TangentLineCount = tangentLines.Count() - 1; // -1 as the ZTop coordinate is inclusive + // Todo navragen bij Carlos + // IEnumerable tangentLines = kernelSlipPlaneUpliftVan.TangentLines.ToArray(); + // UpliftVanCalculationGrid.TangentLineZBottom = tangentLines.First(); + // UpliftVanCalculationGrid.TangentLineZTop = tangentLines.Last(); + // UpliftVanCalculationGrid.TangentLineCount = tangentLines.Count() - 1; // -1 as the ZTop coordinate is inclusive } private void TransferWaternet(KernelWaternet kernelWaternet) @@ -198,7 +199,7 @@ } } - private void TransferSoils(IList stabilityModelSoils) + private void TransferSoils(ICollection stabilityModelSoils) { SoilList = new SoilList(); foreach (Deltares.MacroStability.CSharpWrapper.Input.Soil kernelSoil in stabilityModelSoils) @@ -223,7 +224,8 @@ ConversionHelper.ConvertToMStabGridPosition(kernelModelStabilityModel.Orientation); } - private void TransferSoilProfile2D(MacroStability.CSharpWrapper.Input.SoilProfile kernelSoilProfile2D, IList preconsolidationStresses) + private void TransferSoilProfile2D(MacroStability.CSharpWrapper.Input.SoilProfile kernelSoilProfile2D, + ICollection preconsolidationStresses) { SoilProfile2D = new SoilProfile2D(); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs =================================================================== diff -u -r2944 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 2944) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 2960) @@ -26,15 +26,15 @@ using Deltares.MacroStability.CSharpWrapper.Input; using CharacteristicPointType = Deltares.DamEngine.Data.Geotechnics.CharacteristicPointType; using WaterPressureInterpolationModel = Deltares.DamEngine.Data.Geotechnics.WaterpressureInterpolationModel; -using CharacteristicPoint = Deltares.MacroStability.CSharpWrapper.Input.CharacteristicPoint; +using CharacteristicPoint = Deltares.MacroStability.CSharpWrapper.Input.CharacteristicPointType; using LogMessageType = Deltares.DamEngine.Data.Standard.Logging.LogMessageType; using ObjectExtensions = Deltares.DamEngine.Data.Standard.ObjectExtensions; using SearchAlgorithm = Deltares.MacroStability.CSharpWrapper.Input.SearchAlgorithm; using MessageType = Deltares.MacroStability.CSharpWrapper.Output.MessageType; using ShearStrengthModel = Deltares.DamEngine.Data.Geotechnics.ShearStrengthModel; using Soil = Deltares.MacroStability.CSharpWrapper.Input.Soil; -using StabilityModelOptionInput = Deltares.MacroStability.CSharpWrapper.Input.StabilityModelOption; -using StabilityModelOptionOutput = Deltares.MacroStability.CSharpWrapper.Output.StabilityModelOption; +using StabilityModelOptionInput = Deltares.MacroStability.CSharpWrapper.Output.StabilityModelOptionType; +using StabilityModelOptionOutput = Deltares.MacroStability.CSharpWrapper.Output.StabilityModelOptionType; using WaterPressureInterpolationModelKernel = Deltares.MacroStability.CSharpWrapper.Input.WaterPressureInterpolationModel; using ShearStrengthModelKernel = Deltares.MacroStability.CSharpWrapper.Input.ShearStrengthModel; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityKernelDataInput.cs =================================================================== diff -u -r2904 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityKernelDataInput.cs (.../MacroStabilityKernelDataInput.cs) (revision 2904) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityKernelDataInput.cs (.../MacroStabilityKernelDataInput.cs) (revision 2960) @@ -20,31 +20,18 @@ // All rights reserved. using Deltares.DamEngine.Calculators.KernelWrappers.Interfaces; -using Deltares.DamEngine.Data.General; -using Deltares.MacroStability.CSharpWrapper; +using MacroStabilityInput = Deltares.MacroStability.CSharpWrapper.Input.MacroStabilityInput; namespace Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityInwards { public class MacroStabilityKernelDataInput : IKernelDataInput { - private Deltares.MacroStability.CSharpWrapper.Input.MacroStabilityInput input = - new Deltares.MacroStability.CSharpWrapper.Input.MacroStabilityInput(); - - /// /// Gets or sets the actual input for the CSharpWrapper. /// /// /// The input. /// - public Deltares.MacroStability.CSharpWrapper.Input.MacroStabilityInput Input - { - get - { - return input; - - } - set { input = value; } - } + public MacroStabilityInput Input { get; set; } = new MacroStabilityInput(); } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs =================================================================== diff -u -r2933 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 2933) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 2960) @@ -25,6 +25,7 @@ using Deltares.MacroStability.CSharpWrapper.Input; 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 LogMessageType = Deltares.DamEngine.Data.Standard.Logging.LogMessageType; @@ -67,30 +68,30 @@ #region ModelType [Test] //[TestCase(StabilityModelOption.Bishop, MStabModelType.BishopWti)] - [TestCase(StabilityModelOption.UpliftVan, MStabModelType.UpliftVanWti)] - public void CanConvertToMStabModelType(StabilityModelOption modelOption, MStabModelType mStabModelType) + [TestCase(MacroStability.CSharpWrapper.Output.StabilityModelOptionType.UpliftVan, MStabModelType.UpliftVanWti)] + public void CanConvertToMStabModelType(MacroStability.CSharpWrapper.Output.StabilityModelOptionType modelOption, MStabModelType mStabModelType) { Assert.AreEqual(mStabModelType, ConversionHelper.ConvertToMStabModelType(modelOption)); } [Test] - [TestCase(MacroStability.CSharpWrapper.Output.StabilityModelOption.Bishop, MStabModelType.BishopWti)] - [TestCase(MacroStability.CSharpWrapper.Output.StabilityModelOption.UpliftVan, MStabModelType.UpliftVanWti)] - public void CanConvertToMStabModelTypeFromOutput(MacroStability.CSharpWrapper.Output.StabilityModelOption modelOption, MStabModelType mStabModelType) + [TestCase(MacroStability.CSharpWrapper.Output.StabilityModelOptionType.Bishop, MStabModelType.BishopWti)] + [TestCase(MacroStability.CSharpWrapper.Output.StabilityModelOptionType.UpliftVan, MStabModelType.UpliftVanWti)] + public void CanConvertToMStabModelTypeFromOutput(MacroStability.CSharpWrapper.Output.StabilityModelOptionType modelOption, MStabModelType mStabModelType) { Assert.AreEqual(mStabModelType, ConversionHelper.ConvertToMStabModelTypeFromOutput(modelOption)); } [Test] - [TestCase(MStabModelType.UpliftVanWti, StabilityModelOption.UpliftVan)] - public void CanConvertToModelOptions(MStabModelType mStabModelType, StabilityModelOption modelOption) + [TestCase(MStabModelType.UpliftVanWti, MacroStability.CSharpWrapper.Output.StabilityModelOptionType.UpliftVan)] + public void CanConvertToModelOptions(MStabModelType mStabModelType, MacroStability.CSharpWrapper.Output.StabilityModelOptionType modelOption) { Assert.AreEqual(modelOption, ConversionHelper.ConvertToModelOptions(mStabModelType)); } [Test] - [TestCase(MStabModelType.UpliftVanWti, MacroStability.CSharpWrapper.Output.StabilityModelOption.UpliftVan)] - public void CanConvertToModelOptionsOutput(MStabModelType mStabModelType, MacroStability.CSharpWrapper.Output.StabilityModelOption modelOption) + [TestCase(MStabModelType.UpliftVanWti, MacroStability.CSharpWrapper.Output.StabilityModelOptionType.UpliftVan)] + public void CanConvertToModelOptionsOutput(MStabModelType mStabModelType, MacroStability.CSharpWrapper.Output.StabilityModelOptionType modelOption) { Assert.AreEqual(modelOption, ConversionHelper.ConvertToModelOptionsOutput(mStabModelType)); } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs =================================================================== diff -u -r2947 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs (.../FillMacroStabilityWrapperInputFromEngine.cs) (revision 2947) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs (.../FillMacroStabilityWrapperInputFromEngine.cs) (revision 2960) @@ -84,8 +84,8 @@ macroStabilityInput.PreprocessingInput.PreConstructionStages.Add(new PreConstructionStage()); // ToDo check whether this is needed. var preConstructionLastStage = macroStabilityInput.PreprocessingInput.PreConstructionStages.Last(); - preConstructionLastStage.Surfaceline = new SurfaceLine(); - TransferSurfaceLine(damKernelInput.Location.SurfaceLine, preConstructionLastStage.Surfaceline); + preConstructionLastStage.SurfaceLine = new SurfaceLine(); + TransferSurfaceLine(damKernelInput.Location.SurfaceLine, preConstructionLastStage.SurfaceLine); lastStage.Waternet = new KernelWaternet(); TransferWaternet(waterNet, lastStage.Waternet); @@ -105,7 +105,7 @@ kernelStabilityInput.Orientation = ConversionHelper.ConvertToGridOrientation(damFailureMechanismParametersMStab.MStabParameters.GridPosition); } - private void TransferSoils(SoilList damSoilList, IList kernelSoils) + private void TransferSoils(SoilList damSoilList, ICollection kernelSoils) { // Transfer all soils if (damSoilList != null) @@ -119,7 +119,8 @@ } } - private void TransferSoilProfile(SoilProfile2D damSoilProfile2D, MacroStability.CSharpWrapper.Input.SoilProfile kernelSoilProfile, IList preconsolidationStresses) + private void TransferSoilProfile(SoilProfile2D damSoilProfile2D, MacroStability.CSharpWrapper.Input.SoilProfile kernelSoilProfile, + ICollection preconsolidationStresses) { // Add points var pointsDictionary = new Dictionary(); @@ -288,10 +289,11 @@ }; // kernelSearchAreaConditions.AutoTangentLines = damUpliftVanCalculationGrid.TangentLineAutomaticAtBoundaries; - kernelUpliftVanCalculationGrid.TangentLines = GetTangentLines(damUpliftVanCalculationGrid.TangentLineZBottom, - damUpliftVanCalculationGrid.TangentLineZTop, - damUpliftVanCalculationGrid.TangentLineCount) - .ToArray(); + //Todo navragen bij Carlos waarom dit nu opeens weg is. + // kernelUpliftVanCalculationGrid.TangentLines = GetTangentLines(damUpliftVanCalculationGrid.TangentLineZBottom, + // damUpliftVanCalculationGrid.TangentLineZTop, + // damUpliftVanCalculationGrid.TangentLineCount) + // .ToArray(); } private static IEnumerable GetTangentLines(double tangentLineZBottom, double tangentLineZTop, int nrOfTangentLines) @@ -305,7 +307,7 @@ } } - private void TransferUniformLoads(TrafficLoad damTrafficLoad, IList kernelUniformLoads) + private void TransferUniformLoads(TrafficLoad damTrafficLoad, ICollection kernelUniformLoads) { if (damTrafficLoad != null) { Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperOutput.cs =================================================================== diff -u -r2904 -r2960 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperOutput.cs (.../FillEngineFromMacroStabilityWrapperOutput.cs) (revision 2904) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillEngineFromMacroStabilityWrapperOutput.cs (.../FillEngineFromMacroStabilityWrapperOutput.cs) (revision 2960) @@ -27,13 +27,20 @@ namespace Deltares.DamEngine.Calculators.KernelWrappers.MacroStabilityCommon.MacroStabilityIo { + /// + /// Fills the engine results from the MacroStabilityWrapper + /// public class FillEngineFromMacroStabilityWrapperOutput { + /// + /// Fills the engine data with results. + /// public static void FillEngineDataWithResults() { + } } }