Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalPulauTekongTests.cs =================================================================== diff -u -r1810 -r1811 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalPulauTekongTests.cs (.../OperationalPulauTekongTests.cs) (revision 1810) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalPulauTekongTests.cs (.../OperationalPulauTekongTests.cs) (revision 1811) @@ -56,8 +56,8 @@ string inputString = File.ReadAllText(inputFileName); 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, "MapForSoilgeometries2D", baseTestDirectory + @"Operational\PulauTekong\PulauTekong.geometries2D.0\"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"Operational\PulauTekong\PulauTekong0.soilmaterials.mdb"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", baseTestDirectory + @"PulauTekong.geometries2D.0\"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"PulauTekong0.soilmaterials.mdb"); EngineInterface engineInterface = new EngineInterface(inputString); Assert.IsNotNull(engineInterface.DamProjectData); string outputString = engineInterface.Run(); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesOperational/OperationalCalculator.cs =================================================================== diff -u -r1697 -r1811 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesOperational/OperationalCalculator.cs (.../OperationalCalculator.cs) (revision 1697) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesOperational/OperationalCalculator.cs (.../OperationalCalculator.cs) (revision 1811) @@ -126,7 +126,15 @@ var sensorValues = values[entry.DateTime][location]; if (!ContainsMissingValues(sensorValues, series.MissVal)) { - var soiProfileProbability = location.Segment.GetMostProbableSoilGeometryProbability(damProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType); + FailureMechanismSystemType soilProbabilityFailureMechanismSystemType = damProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismSystemType; + if (soilProbabilityFailureMechanismSystemType == FailureMechanismSystemType.StabilityOutside) + { + // Note: as segments and thus SubSoilScenario are generally divided into Piping versus Stability, + // the actual SegmentFailureMechanismType would be set to StabilityInside rather than StabilityOutside + // So for StabilityOutside lookup the StabilityInside profile + soilProbabilityFailureMechanismSystemType = FailureMechanismSystemType.StabilityInside; + } + var soiProfileProbability = location.Segment.GetMostProbableSoilGeometryProbability(soilProbabilityFailureMechanismSystemType); var projectPath = damProjectData.ProjectPath != "" ? damProjectData.ProjectPath : Directory.GetCurrentDirectory(); var calculationMessages = new List(); operationalCalculatorTasks.Add(new OperationalCalculatorTask() @@ -323,7 +331,8 @@ case FailureMechanismSystemType.HorizontalBalance: throw new NotImplementedException(); case FailureMechanismSystemType.StabilityOutside: - throw new NotImplementedException(); + parameter = TimeSerieParameters.StabilityOutsideFactor.ToString(); + break; case FailureMechanismSystemType.StabilityInside: parameter = TimeSerieParameters.StabilityInsideFactor.ToString(); break;