Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r6492 -r6493 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6492) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6493) @@ -135,25 +135,25 @@ macroStabilityInput.XCoordinateLowestUpliftFactorPoint = upliftSituation.XCoordinateLowestUpliftFactorPoint; macroStabilityInput.DamKernelInput = damKernelInput; macroStabilityInput.MStabParameters = damKernelInput.DamFailureMechanismeCalculationSpecification.FailureMechanismParametersMStab.MStabParameters; - macroStabilityInput.Input = FillMacroStabilityKernelInputFromEngine.CreateFullInputModel(damKernelInput, FailureMechanismParametersMStab.MStabParameters, + macroStabilityInput.Input = FillMacroStabilityKernelInputFromEngine.CreateFullInputModel(damKernelInput, FailureMechanismParametersMStab.MStabParameters, waterNet, macroStabilityInput.XCoordinateLowestUpliftFactorPoint); fileNameForCalculation = MacroStabilityCommonHelper.GetStabilityInputFileName(damKernelInput, iterationIndex, FailureMechanismParametersMStab.MStabParameters.Model); MacroStabilityXmlSerialization.SaveInputAsXmlFile(fileNameForCalculation, macroStabilityInput.Input); stabilityCalculator = new MacroStabilityInterface(macroStabilityInput.Input); - + PrepareResult firstPrepareResult = MacroStabilityCommonHelper.PrepareKernel(stabilityCalculator, fileNameForCalculation); if (isBishopUpliftVan && upliftSituation.IsUplift && firstPrepareResult == PrepareResult.Successful) { model = StabilityModelType.UpliftVan; - FailureMechanismParametersMStab.MStabParameters.Model = model; + FailureMechanismParametersMStab.MStabParameters.Model = model; macroStabilityInput.WaterNet = waterNet; macroStabilityInput.XCoordinateLowestUpliftFactorPoint = upliftSituation.XCoordinateLowestUpliftFactorPoint; macroStabilityInput.DamKernelInput = damKernelInput; macroStabilityInput.MStabParameters = damKernelInput.DamFailureMechanismeCalculationSpecification.FailureMechanismParametersMStab.MStabParameters; macroStabilityInput.Input = FillMacroStabilityKernelInputFromEngine.CreateFullInputModel(damKernelInput, FailureMechanismParametersMStab.MStabParameters, waterNet, macroStabilityInput.XCoordinateLowestUpliftFactorPoint); fileNameForSecondCalculation = MacroStabilityCommonHelper.GetStabilityInputFileName(damKernelInput, iterationIndex, FailureMechanismParametersMStab.MStabParameters.Model); - + // reset model FailureMechanismParametersMStab.MStabParameters.Model = StabilityModelType.BishopUpliftVan; @@ -219,10 +219,10 @@ macroStabilityKernelDataInput.MStabParameters.Model = StabilityModelType.Bishop; } - MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, - macroStabilityKernelDataInput.MStabParameters, - macroStabilityKernelDataInput.WaterNet, - macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, + MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, + macroStabilityKernelDataInput.MStabParameters, + macroStabilityKernelDataInput.WaterNet, + macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, macroStabilityOutput, fileNameForCalculation, stabilityCalculator, out messages); AddFileNameToLogMessages(messages, fileNameForCalculation); @@ -231,25 +231,16 @@ { macroStabilityKernelDataInput.Input.StabilityModel.ModelOption = StabilityModelOption.UpliftVan; macroStabilityKernelDataInput.MStabParameters.Model = StabilityModelType.UpliftVan; - MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, - macroStabilityKernelDataInput.MStabParameters, - macroStabilityKernelDataInput.WaterNet, - macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, + MacroStabilityCommonHelper.PerformStabilityCalculation(macroStabilityKernelDataInput.DamKernelInput, + macroStabilityKernelDataInput.MStabParameters, + macroStabilityKernelDataInput.WaterNet, + macroStabilityKernelDataInput.XCoordinateLowestUpliftFactorPoint, macroStabilityOutput, fileNameForSecondCalculation, stabilityCalculatorForSecondCalculation, out messages); AddFileNameToLogMessages(messages, fileNameForSecondCalculation); } } - private void AddFileNameToLogMessages(List messages, string fileName) - { - fileName = Path.GetFileNameWithoutExtension(fileName); - foreach (LogMessage logMessage in messages) - { - logMessage.Message = fileName + ": " + logMessage.Message; - } - } - /// /// Fills the design results with the kernel output. /// @@ -274,11 +265,11 @@ MacroStabilityOutputItem macroStabilityOutputItem = ProperMacroStabilityResultsItem(macroStabilityOutput, 0); AddDesignResult(damKernelInput, designScenario, designResults, macroStabilityOutputItem, macroStabilityOutput); - + bool isBishopUpliftVan = FailureMechanismParametersMStab.MStabParameters.Model == StabilityModelType.BishopUpliftVan; if (isBishopUpliftVan) { - bool isUplift = true; + var isUplift = true; macroStabilityOutputItem = ProperMacroStabilityResultsItem(macroStabilityOutput, 1); AddDesignResult(damKernelInput, designScenario, designResults, macroStabilityOutputItem, macroStabilityOutput); // If no uplift therefore no UpliftVan calculation was made. So add a fictive (empty) design result. @@ -397,7 +388,7 @@ // Check if the factor of safety is achieved double fosAchieved = leadingStabilityOutputItem.SafetyFactor; - double exitPointXCoordinate = leadingStabilityOutputItem.ResultSlices[^1].TopRightPoint.X; + double exitPointXCoordinate = leadingStabilityOutputItem.ResultSlices[^1].TopRightPoint.X; //#Bka was leadingStabilityOutputItem.CircleSurfacePointRightXCoordinate but that is not filled yet by Tom; Point2D limitPointForShoulderDesign = damKernelInput.Location.SurfaceLine.GetLimitPointForShoulderDesign(); evaluationMessage = string.Format(Resources.FactorAchievedVsFactorRequired, fosAchieved, fosRequired); @@ -487,6 +478,15 @@ } } + private void AddFileNameToLogMessages(List messages, string fileName) + { + fileName = Path.GetFileNameWithoutExtension(fileName); + foreach (LogMessage logMessage in messages) + { + logMessage.Message = fileName + ": " + logMessage.Message; + } + } + private static void AddDesignResultNoRun(DamKernelInput damKernelInput, DesignScenario designScenario, List designResults, MacroStabilityOutput macroStabilityOutput) { DesignResult designResultUpliftNoRun = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); @@ -498,12 +498,13 @@ { designResultUpliftNoRun.CalculationSubDir = designResults.Count == 1 ? designResults[0].CalculationSubDir.Replace(StabilityModelType.Bishop.ToString(), StabilityModelType.UpliftVan.ToString()) : ""; } + designResults.Add(designResultUpliftNoRun); } private void AddDesignResult(DamKernelInput damKernelInput, DesignScenario designScenario, List designResults, MacroStabilityOutputItem macroStabilityOutputItem, MacroStabilityOutput macroStabilityOutput) { - if (macroStabilityOutputItem != null) + if (macroStabilityOutputItem != null) { DesignResult designResult = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); MacroStabilityCommonHelper.FillDesignResult(macroStabilityOutputItem, designResult, lastIterationIndex); @@ -514,6 +515,7 @@ SoilGeometryProbability subSoilScenario = damKernelInput.SubSoilScenario; designResult.StabilityDesignResults.ResultMessage = designScenario.GetResultMessage(subSoilScenario.SoilProfile1D, subSoilScenario.SoilProfile2D); } + designResults.Add(designResult); } } @@ -533,9 +535,11 @@ if (stabilityOutputItems[0].ResultSlices == null) { return null; - } + } + return stabilityOutputItems[0]; } + return stabilityOutputItems[0].SafetyFactor < stabilityOutputItems[1].SafetyFactor ? stabilityOutputItems[0] : stabilityOutputItems[1]; }