Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.nl-NL.resx =================================================================== diff -u -r1129 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.nl-NL.resx (.../Resources.nl-NL.resx) (revision 1129) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.nl-NL.resx (.../Resources.nl-NL.resx) (revision 1174) @@ -180,6 +180,9 @@ De buitenwaartse waterstand ({0}) ligt onder het buitenwaartse maaiveld ({1}). + + Niet alle benodigde data is aanwezig + De onderste laag is geen watervoerende laag in grondprofiel '{0}'. Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.Designer.cs =================================================================== diff -u -r1141 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1141) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1174) @@ -190,7 +190,7 @@ } /// - /// Looks up a localized string similar to Location {0}, subsoil scenario '{1}': This calculation in not relevant and thus skipped.. + /// Looks up a localized string similar to Location {0}, subsoil scenario '{1}', design scenario '{2}': This calculation in not relevant and thus skipped.. /// internal static string DesignCalculatorIrrelevant { get { @@ -208,7 +208,7 @@ } /// - /// Looks up a localized string similar to Location {0}, subsoil scenario '{1}'': The preparation for this calculation failed.. + /// Looks up a localized string similar to Location {0}, subsoil scenario '{1}', design scenario '{2}': The preparation for this calculation failed.. /// internal static string DesignCalculatorPrepareError { get { @@ -217,7 +217,7 @@ } /// - /// Looks up a localized string similar to Validation failed for location '{0}', subsoil scenario '{1}'. + /// Looks up a localized string similar to Validation failed for location '{0}', subsoil scenario '{1}', design scenario '{2}'. /// internal static string DesignCalculatorValidationFailed { get { @@ -253,6 +253,15 @@ } /// + /// Looks up a localized string similar to Not all required data is available. + /// + internal static string MStabXmlDoc_NotAllDataAvailable { + get { + return ResourceManager.GetString("MStabXmlDoc_NotAllDataAvailable", resourceCulture); + } + } + + /// /// Looks up a localized string similar to The deepest layer is not an aquifer in soilprofile '{0}'.. /// internal static string NoBottomAquiferLayer { Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.resx =================================================================== diff -u -r1141 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.resx (.../Resources.resx) (revision 1141) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/Properties/Resources.resx (.../Resources.resx) (revision 1174) @@ -136,7 +136,7 @@ Requested kernel not implemented yet - Validation failed for location '{0}', subsoil scenario '{1}' + Validation failed for location '{0}', subsoil scenario '{1}', design scenario '{2}' No input object defined for Bligh @@ -157,10 +157,10 @@ Required safety factor must be specified - Location {0}, subsoil scenario '{1}': This calculation in not relevant and thus skipped. + Location {0}, subsoil scenario '{1}', design scenario '{2}': This calculation in not relevant and thus skipped. - Location {0}, subsoil scenario '{1}'': The preparation for this calculation failed. + Location {0}, subsoil scenario '{1}', design scenario '{2}': The preparation for this calculation failed. The use of Zone Areas is not allowed for stability outside. @@ -249,4 +249,7 @@ Factor achieved = {0:0.000}, Factor required = {1:0.000}. + + Not all required data is available + \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs =================================================================== diff -u -r1137 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs (.../RegionalScenariosCalculation.cs) (revision 1137) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs (.../RegionalScenariosCalculation.cs) (revision 1174) @@ -120,14 +120,16 @@ calculationMessages.Add(new LogMessage(LogMessageType.Info, null, string.Format(Resources.DesignCalculatorIrrelevant, location.Name, - soilGeometryProbability.ToString()))); + soilGeometryProbability.ToString(), + ""))); // TODO #The correct regional scenario ID? } if (prepareResult == PrepareResult.Failed) { calculationMessages.Add(new LogMessage(LogMessageType.Error, null, string.Format(Resources.DesignCalculatorPrepareError, location.Name, - soilGeometryProbability.ToString()))); + soilGeometryProbability.ToString(), + ""))); // TODO #The correct regional scenario ID? } } return kernelWrapper;//calculationMessages; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs =================================================================== diff -u -r1155 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs (.../DesignCalculator.cs) (revision 1155) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs (.../DesignCalculator.cs) (revision 1174) @@ -109,14 +109,16 @@ calculationMessages.Add(new LogMessage(LogMessageType.Info, null, string.Format(Resources.DesignCalculatorIrrelevant, location.Name, - soiProfileProbability.ToString()))); + soiProfileProbability.ToString(), + designScenario.LocationScenarioID))); } if (prepareResult == PrepareResult.Failed) { calculationMessages.Add(new LogMessage(LogMessageType.Error, null, string.Format(Resources.DesignCalculatorPrepareError, location.Name, - soiProfileProbability.ToString()))); + soiProfileProbability.ToString(), + designScenario.LocationScenarioID))); } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs =================================================================== diff -u -r1150 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 1150) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 1174) @@ -26,7 +26,6 @@ using Deltares.DamEngine.Calculators.KernelWrappers.Common; using Deltares.DamEngine.Calculators.KernelWrappers.DamMacroStabilityCommon.Assemblers; using Deltares.DamEngine.Calculators.Properties; -using Deltares.DamEngine.Data.Design; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.Standard.Logging; @@ -57,14 +56,18 @@ /// /// Create XML definition for Stability calculation /// - /// - /// - /// - /// - /// - /// - /// + /// The mstab project filename. + /// The location. + /// The river level high. + /// The river level low. + /// The sub soil scenario. + /// The mstab design embankment. + /// The required safety factor. + /// The input failure mechanism parameters m stab. + /// The error messages. /// + /// + /// public static XDocument CreateMStabXmlDoc(string mstabProjectFilename, Location location, double riverLevelHigh, @@ -190,13 +193,8 @@ errorMessages.Add(logMessage); } - // TODO #The folloing line shoukld be resolved for design - // var currentSurfaceLine = scenario.GetMostRecentSurfaceLine(subSoilScenario.SoilProfile1D, Path.GetFileName(soilGeometry2DName)); - SurfaceLine2 currentSurfaceLine = null; - if (currentSurfaceLine == null) - { - currentSurfaceLine = location.SurfaceLine; - } + // Note: In the design loop the location.SurfaceLine has to be set to the most recent redesigned surfaceline + var currentSurfaceLine = location.SurfaceLine; var waterLevel = riverLevelHigh; UpliftSituation upliftSituation; @@ -212,7 +210,7 @@ subSoilScenario.SoilProfile1D, soilGeometry2DName, failureMechanismParametersMStab.PlLines, location); double upliftCriterion = location.ModelFactors.UpliftCriterionStability.Value; - bool isUplift = !(upliftLocationAndResult == null) && + bool isUplift = (upliftLocationAndResult != null) && (upliftLocationAndResult.UpliftFactor < upliftCriterion); double xCoordinateLastUpliftPoint = isUplift ? upliftLocationAndResult.X @@ -226,7 +224,7 @@ if (!failureMechanismParametersMStab.IsComplete) { - throw new Exception("Not all required data is available"); + throw new Exception(Resources.MStabXmlDoc_NotAllDataAvailable); } DamMStabAssembler assembler = new DamMStabAssembler(); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorSingle.cs =================================================================== diff -u -r1151 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorSingle.cs (.../DesignCalculatorSingle.cs) (revision 1151) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorSingle.cs (.../DesignCalculatorSingle.cs) (revision 1174) @@ -62,7 +62,8 @@ locationCalculationMessages.Add(new LogMessage(LogMessageType.Error, null, string.Format(Resources.DesignCalculatorValidationFailed, damKernelInput.Location.Name, - damKernelInput.SubSoilScenario.ToString()))); + damKernelInput.SubSoilScenario.ToString(), + designScenario.LocationScenarioID))); locationCalculationMessages.AddRange(validationMessages); } else Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj =================================================================== diff -u -r1151 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 1151) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/Deltares.DamEngine.Calculators.csproj (.../Deltares.DamEngine.Calculators.csproj) (revision 1174) @@ -179,7 +179,9 @@ Resources.Designer.cs Designer - + + Designer + Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r1163 -r1174 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1163) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1174) @@ -114,7 +114,7 @@ model, FailureMechanismParametersMStab.ProjectWorkingPath); // if not, only Bishop calculation so leave SecondModel empty. } - + kernelDataInput = damMacroStabilityInput; // When BishopUpliftVan is performed, make sure the first one is Bishop @@ -195,7 +195,7 @@ /// The return messages. public void Execute(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages) { - DamMacroStabilityOutput damMacroStabilityOutput = (DamMacroStabilityOutput) kernelDataOutput; + DamMacroStabilityOutput damMacroStabilityOutput = (DamMacroStabilityOutput)kernelDataOutput; messages = new List(); var input = (DamMacroStabilityInput)kernelDataInput; @@ -214,7 +214,7 @@ { damMacroStabilityOutput.StabilityOutputItems.Add(stabilityOutputItem); } - + // now check if second calculation for BishopUpliftVan is needed, if so perform it. if (bishopUpliftVan) { @@ -262,41 +262,41 @@ var calculator = StabilityCalculator(kernelDataInput); try { - calculator.Calculate(); + calculator.Calculate(); - // get (first) results - var results = calculator.GetResults(); - if (results.Count > 0) - { - var stabilityOutputItem = new DamMacroStabilityOutputItem(); - var zone1 = new DamMacroStabilityOutputItem.ResultsSingleZone + // get (first) results + var results = calculator.GetResults(); + if (results.Count > 0) { - SafetyFactor = results[0].Zone1.SafetyFactor, - CircleSurfacePointLeftXCoordinate = results[0].Zone1.CircleSurfacePointLeftXCoordinate, - CircleSurfacePointRightXCoordinate = results[0].Zone1.CircleSurfacePointRightXCoordinate, - }; - stabilityOutputItem.Zone1Results = zone1; - if (results[0].Zone2 != null) - { - var zone2Result = results[0].Zone2.Value; - var zone2 = new DamMacroStabilityOutputItem.ResultsSingleZone + var stabilityOutputItem = new DamMacroStabilityOutputItem(); + var zone1 = new DamMacroStabilityOutputItem.ResultsSingleZone { - SafetyFactor = zone2Result.SafetyFactor, - CircleSurfacePointLeftXCoordinate = zone2Result.CircleSurfacePointLeftXCoordinate, - CircleSurfacePointRightXCoordinate = zone2Result.CircleSurfacePointRightXCoordinate, + SafetyFactor = results[0].Zone1.SafetyFactor, + CircleSurfacePointLeftXCoordinate = results[0].Zone1.CircleSurfacePointLeftXCoordinate, + CircleSurfacePointRightXCoordinate = results[0].Zone1.CircleSurfacePointRightXCoordinate, }; - stabilityOutputItem.Zone2Results = zone2; + stabilityOutputItem.Zone1Results = zone1; + if (results[0].Zone2 != null) + { + var zone2Result = results[0].Zone2.Value; + var zone2 = new DamMacroStabilityOutputItem.ResultsSingleZone + { + SafetyFactor = zone2Result.SafetyFactor, + CircleSurfacePointLeftXCoordinate = zone2Result.CircleSurfacePointLeftXCoordinate, + CircleSurfacePointRightXCoordinate = zone2Result.CircleSurfacePointRightXCoordinate, + }; + stabilityOutputItem.Zone2Results = zone2; + } + return stabilityOutputItem; } - return stabilityOutputItem; + return null; } - return null; - } catch (Exception e) { var message = new LogMessage { MessageType = LogMessageType.Info, Message = e.Message }; messages.Add(message); var stabilityOutputItem = - new DamMacroStabilityOutputItem {CalculationResult = CalculationResult.UnexpectedError}; + new DamMacroStabilityOutputItem { CalculationResult = CalculationResult.UnexpectedError }; return stabilityOutputItem; } } @@ -420,7 +420,7 @@ else if (designResults[1].CalculationResult == CalculationResult.NoRun) { // No uplift therefore no UpliftVan calculation was made. Present Bishop result. - designResults.Add(designResults[0]); + designResults.Add(designResults[0]); } else { @@ -492,20 +492,20 @@ designResult.CalculationResult = damMacroStabilityOutputItem.CalculationResult; if (designResult.CalculationResult == CalculationResult.Succeeded) { - designResult.StabilityDesignResults.Zone1SafetyFactor = - damMacroStabilityOutputItem.Zone1Results.SafetyFactor; - designResult.StabilityDesignResults.LocalZone1EntryPointX = - damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointLeftXCoordinate; - designResult.StabilityDesignResults.LocalZone1ExitPointX = - damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointRightXCoordinate; + designResult.StabilityDesignResults.Zone1SafetyFactor = + damMacroStabilityOutputItem.Zone1Results.SafetyFactor; + designResult.StabilityDesignResults.LocalZone1EntryPointX = + damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointLeftXCoordinate; + designResult.StabilityDesignResults.LocalZone1ExitPointX = + damMacroStabilityOutputItem.Zone1Results.CircleSurfacePointRightXCoordinate; - designResult.StabilityDesignResults.SafetyFactor = designResult.StabilityDesignResults.Zone1SafetyFactor; - if (damMacroStabilityOutputItem.Zone2Results != null) - { + designResult.StabilityDesignResults.SafetyFactor = designResult.StabilityDesignResults.Zone1SafetyFactor; + if (damMacroStabilityOutputItem.Zone2Results != null) + { var zone2 = (DamMacroStabilityOutputItem.ResultsSingleZone)damMacroStabilityOutputItem.Zone2Results; - designResult.StabilityDesignResults.Zone2SafetyFactor = zone2.SafetyFactor; - designResult.StabilityDesignResults.LocalZone2EntryPointX = zone2.CircleSurfacePointLeftXCoordinate; - designResult.StabilityDesignResults.LocalZone2ExitPointX = zone2.CircleSurfacePointRightXCoordinate; + designResult.StabilityDesignResults.Zone2SafetyFactor = zone2.SafetyFactor; + designResult.StabilityDesignResults.LocalZone2EntryPointX = zone2.CircleSurfacePointLeftXCoordinate; + designResult.StabilityDesignResults.LocalZone2ExitPointX = zone2.CircleSurfacePointRightXCoordinate; } } }