Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlOutput.cs =================================================================== diff -u -r3127 -r3412 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlOutput.cs (.../FillDamUiFromXmlOutput.cs) (revision 3127) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlOutput.cs (.../FillDamUiFromXmlOutput.cs) (revision 3412) @@ -291,7 +291,7 @@ } if (designResult.StabilityDesignResults.SafetyFactorSpecified) desResult.StabilitySafetyFactor = designResult.StabilityDesignResults.SafetyFactor; if (designResult.StabilityDesignResults.NumberOfIterationsSpecified) desResult.NumberOfIterations = designResult.StabilityDesignResults.NumberOfIterations; - if (designResult.StabilityDesignResults.SafetyFactorSpecified) desResult.StabilityModel = ConversionHelper.ConvertToStabilityModelType(designResult.StabilityDesignResults.StabilityModelType); + if (designResult.StabilityDesignResults.SafetyFactorSpecified || designResult.StabilityDesignResults.SlipCircleDefinition != null) desResult.StabilityModel = ConversionHelper.ConvertToStabilityModelType(designResult.StabilityDesignResults.StabilityModelType); if (designResult.StabilityDesignResults.UpliftSituation != null) { @@ -304,6 +304,38 @@ desResult.Pl4HeadAdjusted = uplift.Pl4HeadAdjusted; desResult.Pl4LocalLocationXMinUplift = uplift.Pl4LocationXMinUplift; } + + if (designResult.StabilityDesignResults.SlipCircleDefinition != null) + { + switch (designResult.StabilityDesignResults.StabilityModelType) + { + case DesignResultStabilityDesignResultsStabilityModelType.Bishop: + var sl = (SlidingCircleMinimumSafetyCurveType) designResult.StabilityDesignResults.SlipCircleDefinition; + if (sl.Center != null) + { + desResult.ActiveCenterPointX = sl.Center.X; + desResult.ActiveCenterPointZ = sl.Center.Z; + desResult.ActiveCenterPointRadius = sl.Radius; + } + break; + case DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan: + var dsl = (DualSlidingCircleMinimumSafetyCurveType) designResult.StabilityDesignResults.SlipCircleDefinition; + if (dsl.ActiveCircleCenter != null) + { + desResult.ActiveCenterPointX = dsl.ActiveCircleCenter.X; + desResult.ActiveCenterPointZ = dsl.ActiveCircleCenter.Z; + desResult.ActiveCenterPointRadius = dsl.ActiveCircleRadius; + } + + if (dsl.PassiveCircleCenter != null) + { + desResult.PassiveCenterPointX = dsl.PassiveCircleCenter.X; + desResult.PassiveCenterPointZ = dsl.PassiveCircleCenter.Z; + desResult.PassiveCenterPointRadius = dsl.PassiveCircleRadius; + } + break; + } + } } } } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportData.cs =================================================================== diff -u -r3129 -r3412 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportData.cs (.../CsvExportData.cs) (revision 3129) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/CsvExportData.cs (.../CsvExportData.cs) (revision 3412) @@ -96,6 +96,12 @@ private string resultMessage = ""; private int numberOfIterations; private MStabModelType? stabilityModel; + private double? activeCenterPointX; + private double? activeCenterPointZ; + private double? activeCenterPointRadius; + private double? passiveCenterPointX; + private double? passiveCenterPointZ; + private double? passiveCenterPointRadius; private ResultEvaluation resultEvaluation = ResultEvaluation.NotEvaluated; private string notes = ""; @@ -1449,7 +1455,68 @@ } } + [CsvExportColumn("ActiveCenterPointX", 97)] + [Format("F3")] + [ReadOnly(true)] [Browsable(false)] + public double? ActiveCenterPointX + { + get { return activeCenterPointX; } + set { activeCenterPointX = value; } + } + + [CsvExportColumn("ActiveCenterPointZ", 98)] + [Format("F3")] + [ReadOnly(true)] + [Browsable(false)] + public double? ActiveCenterPointZ + { + get { return activeCenterPointZ; } + set { activeCenterPointZ = value; } + } + + [CsvExportColumn("ActiveCenterPointRadius", 99)] + [Format("F3")] + [ReadOnly(true)] + [Browsable(false)] + public double? ActiveCenterPointRadius + { + get { return activeCenterPointRadius; } + set { activeCenterPointRadius = value; } + } + + [CsvExportColumn("PassiveCenterPointX", 100)] + [Format("F3")] + [ReadOnly(true)] + [Browsable(false)] + public double? PassiveCenterPointX + { + get { return passiveCenterPointX; } + set { passiveCenterPointX = value; } + } + + [CsvExportColumn("PassiveCenterPointZ", 101)] + [Format("F3")] + [ReadOnly(true)] + [Browsable(false)] + public double? PassiveCenterPointZ + { + get { return passiveCenterPointZ; } + set { passiveCenterPointZ = value; } + } + + [CsvExportColumn("PassiveCenterPointRadius", 102)] + [Format("F3")] + [ReadOnly(true)] + [Browsable(false)] + public double? PassiveCenterPointRadius + { + get { return passiveCenterPointRadius; } + set { passiveCenterPointRadius = value; } + } + + + [Browsable(false)] public Scenario Scenario { get { return scenario; } Index: DamClients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillDamUiFromXmlOutputTests.cs =================================================================== diff -u -r2930 -r3412 --- DamClients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillDamUiFromXmlOutputTests.cs (.../FillDamUiFromXmlOutputTests.cs) (revision 2930) +++ DamClients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillDamUiFromXmlOutputTests.cs (.../FillDamUiFromXmlOutputTests.cs) (revision 3412) @@ -177,16 +177,17 @@ Assert.AreEqual(combinedDamProjectData.DesignCalculations[0].CalculationResult, actualDamProjectData.DesignCalculations[0].CalculationResult); Assert.AreEqual(combinedDamProjectData.DesignCalculations[0].SafetyFactor, actualDamProjectData.DesignCalculations[0].SafetyFactor); Assert.AreEqual(combinedDamProjectData.DesignCalculations[0].LocationName, actualDamProjectData.DesignCalculations[0].LocationName); - + Assert.AreEqual(combinedDamProjectData.DesignCalculations[0].StabilityModel, actualDamProjectData.DesignCalculations[0].StabilityModel); } [Test] - public void SimpleTestStabilityInside() + [TestCase(MStabModelType.Bishop, "OutputFileStabilityBishop.xml")] + [TestCase(MStabModelType.UpliftVan, "OutputFileStabilityUpliftVan.xml")] + public void SimpleTestStabilityInside(MStabModelType mStabModelType, string inputFilename) { - var inputProjectData = CreateInputProjectDataForStability(); - var output = CreateTestOutputForStability(); + var inputProjectData = CreateInputProjectDataForStability(mStabModelType); + var output = CreateTestOutputForStability(mStabModelType); - const string inputFilename = "OutputFileStability.xml"; var combinedDamProjectData = FillDamUiFromXmlOutput.AddOutputToDamProjectData(inputProjectData, output); Assert.AreEqual(4, combinedDamProjectData.DesignCalculations.Count); @@ -199,7 +200,7 @@ Assert.AreNotEqual("", combinedDamProjectData.DesignCalculations[0].ProfileName); Assert.AreNotEqual(null, combinedDamProjectData.DesignCalculations[0].Calculation); Assert.AreNotEqual("", combinedDamProjectData.DesignCalculations[0].Calculation); - Assert.AreEqual(MStabModelType.Bishop, combinedDamProjectData.DesignCalculations[0].StabilityModel); + Assert.AreEqual(mStabModelType, combinedDamProjectData.DesignCalculations[0].StabilityModel); Assert.AreEqual(0, combinedDamProjectData.DesignCalculations[0].SafetyFactor); Assert.AreEqual(null, combinedDamProjectData.DesignCalculations[0].StabilityShoulderHeight); Assert.AreEqual(null, combinedDamProjectData.DesignCalculations[0].DikeLength); @@ -212,7 +213,7 @@ Assert.AreNotEqual("", combinedDamProjectData.DesignCalculations[1].ProfileName); Assert.AreNotEqual(null, combinedDamProjectData.DesignCalculations[1].Calculation); Assert.AreNotEqual("", combinedDamProjectData.DesignCalculations[1].Calculation); - Assert.AreEqual(MStabModelType.Bishop, combinedDamProjectData.DesignCalculations[1].StabilityModel); + Assert.AreEqual(mStabModelType, combinedDamProjectData.DesignCalculations[1].StabilityModel); Assert.AreEqual(1.2, combinedDamProjectData.DesignCalculations[1].SafetyFactor); Assert.AreEqual(null, combinedDamProjectData.DesignCalculations[1].StabilityShoulderHeight); Assert.AreEqual(0.2, combinedDamProjectData.DesignCalculations[1].Pl3HeadAdjusted); @@ -240,12 +241,12 @@ return CreateInputProjectData(spec); } - private DamProjectData CreateInputProjectDataForStability() + private DamProjectData CreateInputProjectDataForStability(MStabModelType mStabModelType) { var spec = new DamFailureMechanismeCalculationSpecification { FailureMechanismSystemType = FailureMechanismSystemType.StabilityInside, - CalculationModel = MStabModelType.Bishop + CalculationModel = mStabModelType }; return CreateInputProjectData(spec); } @@ -310,14 +311,14 @@ return output; } - private Output CreateTestOutputForStability() + private Output CreateTestOutputForStability(MStabModelType mStabModelType) { var output = CreateTestOutput(); for (int i = 0; i < 4; i++) { var surfaceline = CreateSurfaceLine(); var upliftSituation = CreateUpliftSituation(i); - var stabilityResults = CreateDesignResultStability(i, surfaceline, upliftSituation); + var stabilityResults = CreateDesignResultStability(i, surfaceline, upliftSituation, mStabModelType); output.Results.CalculationResults[i].StabilityDesignResults = stabilityResults; } return output; @@ -379,7 +380,7 @@ return pipingdesignResults; } - private static DesignResultStabilityDesignResults CreateDesignResultStability(int i, SurfaceLine surfaceline, UpliftSituation upliftSituation) + private static DesignResultStabilityDesignResults CreateDesignResultStability(int i, SurfaceLine surfaceline, UpliftSituation upliftSituation, MStabModelType mStabModelType) { var stabilityResults = new DesignResultStabilityDesignResults { @@ -389,8 +390,41 @@ NumberOfIterationsSpecified = true, NumberOfIterations = 1 * i, RedesignedSurfaceLine = surfaceline, - UpliftSituation = upliftSituation - }; + UpliftSituation = upliftSituation, + StabilityModelType = ConversionHelper.ConvertToOutputStabilityModelType(mStabModelType) + }; + + switch (mStabModelType) + { + case MStabModelType.Bishop: + var sl = new SlidingCircleMinimumSafetyCurveType(); + sl.Center = new Point2DType() + { + X = 10.1 * (i + 1), + Z = 11.1 * (i + 1) + }; + sl.Radius = 101.1 * (i + 1); + stabilityResults.SlipCircleDefinition = sl; + break; + case MStabModelType.UpliftVan: + var dsl = new DualSlidingCircleMinimumSafetyCurveType(); + dsl.ActiveCircleCenter = new Point2DType() + { + X = 20.2 * (i + 1), + Z = 22.2 * (i + 1) + }; + dsl.ActiveCircleRadius = 202.2 * (i + 1); + dsl.PassiveCircleCenter = new Point2DType() + { + X = 30.3 * (i + 1), + Z = 33.3 * (i + 1) + }; + dsl.PassiveCircleRadius = 303.3 * (i + 1); + stabilityResults.SlipCircleDefinition = dsl; + break; + + } + return stabilityResults; }