Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs =================================================================== diff -u -r1246 -r1327 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 1246) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityOutwards/DamMacroStabilityOutwardsKernelWrapper.cs (.../DamMacroStabilityOutwardsKernelWrapper.cs) (revision 1327) @@ -74,54 +74,63 @@ /// public PrepareResult Prepare(DamKernelInput damKernelInput, int iterationIndex, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput) { - var damMacroStabilityOutput = new DamMacroStabilityOutput() + try { - StabilityOutputItems = new List(), - CalculationResult = CalculationResult.NoRun - }; - kernelDataOutput = damMacroStabilityOutput; - // 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 check for both types. - if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.StabilityOutside || - damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.StabilityInside) - { - // Make sure the gridposition is Left. - FailureMechanismParametersMStab.MStabParameters.GridPosition = MStabGridPosition.Left; + var damMacroStabilityOutput = new DamMacroStabilityOutput() + { + StabilityOutputItems = new List(), + CalculationResult = CalculationResult.NoRun + }; + kernelDataOutput = damMacroStabilityOutput; + // 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 check for both types. + if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.StabilityOutside || + damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.StabilityInside) + { + // Make sure the gridposition is Left. + FailureMechanismParametersMStab.MStabParameters.GridPosition = MStabGridPosition.Left; - FailureMechanismParametersMStab.ProjectWorkingPath = damKernelInput.CalculationDir; + FailureMechanismParametersMStab.ProjectWorkingPath = damKernelInput.CalculationDir; - if (damKernelInput.SubSoilScenario.SoilProfileType == SoilProfileType.ProfileTypeStiFile) - { - damKernelInput.SubSoilScenario.FullStiFileName = Path.Combine(damKernelInput.ProjectDir, - Path.Combine(damKernelInput.Location.StabilityOptions.SoilGeometries2DPath, - damKernelInput.SubSoilScenario.StiFileName)); - } + if (damKernelInput.SubSoilScenario.SoilProfileType == SoilProfileType.ProfileTypeStiFile) + { + damKernelInput.SubSoilScenario.FullStiFileName = Path.Combine(damKernelInput.ProjectDir, + Path.Combine(damKernelInput.Location.StabilityOptions.SoilGeometries2DPath, + damKernelInput.SubSoilScenario.StiFileName)); + } - // Determine whether there is uplift - var upliftSituation = UpliftHelper.DetermineStabilityUplift(damKernelInput, true); - damMacroStabilityOutput.UpliftSituation = upliftSituation; - kernelDataOutput = damMacroStabilityOutput; + // Determine whether there is uplift + var upliftSituation = UpliftHelper.DetermineStabilityUplift(damKernelInput, true); + damMacroStabilityOutput.UpliftSituation = upliftSituation; + kernelDataOutput = damMacroStabilityOutput; - var damMacroStabilityInput = new DamMacroStabilityInput() - { - DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath, - DGeoStabilityInputFileName = DamMacroStabilityUtils.GetStabilityInputFileName(damKernelInput, iterationIndex, - FailureMechanismParametersMStab.MStabParameters.Model, FailureMechanismParametersMStab.ProjectWorkingPath), - FailureMechanismParametersMStab = FailureMechanismParametersMStab - }; - kernelDataInput = damMacroStabilityInput; - - // Write xml file - XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); + var damMacroStabilityInput = new DamMacroStabilityInput() + { + DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath, + DGeoStabilityInputFileName = DamMacroStabilityUtils.GetStabilityInputFileName(damKernelInput, iterationIndex, + FailureMechanismParametersMStab.MStabParameters.Model, FailureMechanismParametersMStab.ProjectWorkingPath), + FailureMechanismParametersMStab = FailureMechanismParametersMStab + }; + kernelDataInput = damMacroStabilityInput; - // Use xml file to create sti file - CreateStiFile(xmlDocument); + // Write xml file + XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); - return PrepareResult.Successful; + // Use xml file to create sti file + CreateStiFile(xmlDocument); + + return PrepareResult.Successful; + } + kernelDataInput = null; + return PrepareResult.NotRelevant; } - kernelDataInput = null; - return PrepareResult.NotRelevant; + catch (Exception) + { + kernelDataInput = null; + kernelDataOutput = null; + return PrepareResult.Failed; + } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs =================================================================== diff -u -r1237 -r1327 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 1237) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 1327) @@ -58,25 +58,34 @@ public PrepareResult Prepare(DamKernelInput damKernelInput, int iterationIndex, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput) { - var damPipingOutput = new DamPipingSellmeijer4ForcesOutput() + try { - FoSp = defaultMaxReturnValue - }; - kernelDataOutput = damPipingOutput; - if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping) + var damPipingOutput = new DamPipingSellmeijer4ForcesOutput() + { + FoSp = defaultMaxReturnValue + }; + kernelDataOutput = damPipingOutput; + if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping) + { + var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D; + var location = damKernelInput.Location; + double waterLevel = damKernelInput.RiverLevelHigh; + UpliftSituation upliftSituation; + var plLines = PlLinesHelper.CreatePlLinesForPiping(location, soilProfile1D, waterLevel, + damKernelInput.DamFailureMechanismeCalculationSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType, + out upliftSituation); + EvaluateUpliftSituation(damKernelInput, out kernelDataInput, plLines, waterLevel, damPipingOutput); + return PrepareResult.Successful; + } + kernelDataInput = null; + return PrepareResult.NotRelevant; + } + catch (Exception) { - var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D; - var location = damKernelInput.Location; - double waterLevel = damKernelInput.RiverLevelHigh; - UpliftSituation upliftSituation; - var plLines = PlLinesHelper.CreatePlLinesForPiping(location, soilProfile1D, waterLevel, - damKernelInput.DamFailureMechanismeCalculationSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType, - out upliftSituation); - EvaluateUpliftSituation(damKernelInput, out kernelDataInput, plLines, waterLevel, damPipingOutput); - return PrepareResult.Successful; + kernelDataInput = null; + kernelDataOutput = null; + return PrepareResult.Failed; } - kernelDataInput = null; - return PrepareResult.NotRelevant; } private static void EvaluateUpliftSituation(DamKernelInput damKernelInput, out IKernelDataInput kernelDataInput, Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs =================================================================== diff -u -r1237 -r1327 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 1237) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 1327) @@ -60,28 +60,37 @@ /// public PrepareResult Prepare(DamKernelInput damKernelInput, int iterationIndex, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput) { - var damPipingBlighOutput = new DamPipingBlighOutput() + try { - CalculationResult = CalculationResult.NoRun, - FoSp = defaultMaxReturnValue - }; - kernelDataOutput = damPipingBlighOutput; - if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping) - { - var damPipingBlighInput = new DamPipingBlighInput(); + var damPipingBlighOutput = new DamPipingBlighOutput() + { + CalculationResult = CalculationResult.NoRun, + FoSp = defaultMaxReturnValue + }; + kernelDataOutput = damPipingBlighOutput; + if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping) + { + var damPipingBlighInput = new DamPipingBlighInput(); - var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D; - var location = damKernelInput.Location; - double waterLevel = damKernelInput.RiverLevelHigh; - UpliftSituation upliftSituation; - PlLines plLines = PlLinesHelper.CreatePlLinesForPiping(location, soilProfile1D, waterLevel, - damKernelInput.DamFailureMechanismeCalculationSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType, - out upliftSituation); - EvaluateUpliftSituation(damKernelInput, out kernelDataInput, plLines, damPipingBlighInput, waterLevel, damPipingBlighOutput); - return PrepareResult.Successful; + var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D; + var location = damKernelInput.Location; + double waterLevel = damKernelInput.RiverLevelHigh; + UpliftSituation upliftSituation; + PlLines plLines = PlLinesHelper.CreatePlLinesForPiping(location, soilProfile1D, waterLevel, + damKernelInput.DamFailureMechanismeCalculationSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType, + out upliftSituation); + EvaluateUpliftSituation(damKernelInput, out kernelDataInput, plLines, damPipingBlighInput, waterLevel, damPipingBlighOutput); + return PrepareResult.Successful; + } + kernelDataInput = null; + return PrepareResult.NotRelevant; } - kernelDataInput = null; - return PrepareResult.NotRelevant; + catch (Exception) + { + kernelDataInput = null; + kernelDataOutput = null; + return PrepareResult.Failed; + } } private static void EvaluateUpliftSituation(DamKernelInput damKernelInput, out IKernelDataInput kernelDataInput, PlLines plLines, DamPipingBlighInput damPipingBlighInput, double waterLevel, DamPipingBlighOutput damPipingBlighOutput) Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityHorizontalBalance/DamMacroStabilityHorizontalBalanceKernelWrapper.cs =================================================================== diff -u -r1246 -r1327 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityHorizontalBalance/DamMacroStabilityHorizontalBalanceKernelWrapper.cs (.../DamMacroStabilityHorizontalBalanceKernelWrapper.cs) (revision 1246) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityHorizontalBalance/DamMacroStabilityHorizontalBalanceKernelWrapper.cs (.../DamMacroStabilityHorizontalBalanceKernelWrapper.cs) (revision 1327) @@ -43,7 +43,7 @@ /// Class for the wrapper around the Stability Horizontal Balance calculator /// /// - public class DamMacroStabilityHorizontalBalanceKernelWrapper: IKernelWrapper + public class DamMacroStabilityHorizontalBalanceKernelWrapper : IKernelWrapper { /// @@ -66,38 +66,47 @@ /// public PrepareResult Prepare(DamKernelInput damKernelInput, int iterationIndex, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput) { - var damMacroStabilityOutput = new DamMacroStabilityOutput() + try { - StabilityOutputItems = new List(), - CalculationResult = CalculationResult.NoRun - }; - kernelDataOutput = damMacroStabilityOutput; - if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.HorizontalBalance) - { - FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.HorizontalBalance; - FailureMechanismParametersMStab.ProjectWorkingPath = damKernelInput.CalculationDir; - - kernelDataOutput = damMacroStabilityOutput; - - var damMacroStabilityInput = new DamMacroStabilityInput() + var damMacroStabilityOutput = new DamMacroStabilityOutput() { - DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath, - DGeoStabilityInputFileName = DamMacroStabilityUtils.GetStabilityInputFileName(damKernelInput, iterationIndex, - FailureMechanismParametersMStab.MStabParameters.Model, FailureMechanismParametersMStab.ProjectWorkingPath), - FailureMechanismParametersMStab = FailureMechanismParametersMStab + StabilityOutputItems = new List(), + CalculationResult = CalculationResult.NoRun }; - kernelDataInput = damMacroStabilityInput; + kernelDataOutput = damMacroStabilityOutput; + if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.HorizontalBalance) + { + FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.HorizontalBalance; + FailureMechanismParametersMStab.ProjectWorkingPath = damKernelInput.CalculationDir; - // Write xml file - XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); + kernelDataOutput = damMacroStabilityOutput; - // Use xml file to create sti file - CreateStiFile(xmlDocument); + var damMacroStabilityInput = new DamMacroStabilityInput() + { + DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath, + DGeoStabilityInputFileName = DamMacroStabilityUtils.GetStabilityInputFileName(damKernelInput, iterationIndex, + FailureMechanismParametersMStab.MStabParameters.Model, FailureMechanismParametersMStab.ProjectWorkingPath), + FailureMechanismParametersMStab = FailureMechanismParametersMStab + }; + kernelDataInput = damMacroStabilityInput; - return PrepareResult.Successful; + // Write xml file + XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); + + // Use xml file to create sti file + CreateStiFile(xmlDocument); + + return PrepareResult.Successful; + } + kernelDataInput = null; + return PrepareResult.NotRelevant; } - kernelDataInput = null; - return PrepareResult.NotRelevant; + catch (Exception) + { + kernelDataInput = null; + kernelDataOutput = null; + return PrepareResult.Failed; + } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r1288 -r1327 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1288) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 1327) @@ -64,119 +64,128 @@ /// public PrepareResult Prepare(DamKernelInput damKernelInput, int iterationIndex, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput) { - var damMacroStabilityOutput = new DamMacroStabilityOutput() + try { - StabilityOutputItems = new List(), - CalculationResult = CalculationResult.NoRun - }; - kernelDataOutput = damMacroStabilityOutput; - if (damKernelInput.DamFailureMechanismeCalculationSpecification == null) - { - damKernelInput.DamFailureMechanismeCalculationSpecification = new DamFailureMechanismeCalculationSpecification(); - } - - // Make sure the gridposition is Right. - FailureMechanismParametersMStab.MStabParameters.GridPosition = MStabGridPosition.Right; - // Make sure no riverlevellow is defined, because this will trigger Outside stability code elsewhere - damKernelInput.RiverLevelLow = null; - - if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.StabilityInside) - { - var bishopUpliftVan = FailureMechanismParametersMStab.MStabParameters.Model == - MStabModelType.BishopUpliftVan; - var model = FailureMechanismParametersMStab.MStabParameters.Model; - if (bishopUpliftVan) + var damMacroStabilityOutput = new DamMacroStabilityOutput() { - // if current model is BishopUpliftVan then set to Bishop for proper name/path for inputfile - model = MStabModelType.Bishop; - } - - FailureMechanismParametersMStab.ProjectWorkingPath = damKernelInput.CalculationDir; - if (damKernelInput.SubSoilScenario.SoilProfileType == SoilProfileType.ProfileTypeStiFile) - { - damKernelInput.SubSoilScenario.FullStiFileName = Path.Combine(damKernelInput.ProjectDir, - Path.Combine(damKernelInput.Location.StabilityOptions.SoilGeometries2DPath, - damKernelInput.SubSoilScenario.StiFileName)); - } - var damMacroStabilityInput = new DamMacroStabilityInput() - { - DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath, - DGeoStabilityInputFileName = DamMacroStabilityUtils.GetStabilityInputFileName( - damKernelInput, iterationIndex, model, FailureMechanismParametersMStab.ProjectWorkingPath), - FailureMechanismParametersMStab = FailureMechanismParametersMStab + StabilityOutputItems = new List(), + CalculationResult = CalculationResult.NoRun }; - - // Determine whether there is uplift - var upliftSituation = UpliftHelper.DetermineStabilityUplift(damKernelInput, false); - damMacroStabilityOutput.UpliftSituation = upliftSituation; kernelDataOutput = damMacroStabilityOutput; - - // Check the model to see what is to be calculated and how many calculations are required - if (bishopUpliftVan) + if (damKernelInput.DamFailureMechanismeCalculationSpecification == null) { - // see if uplift is required - // if so, both upliftvan and bishop are to be prepared, calculated and worst case is to be determined - model = MStabModelType.UpliftVan; - damMacroStabilityInput.DGeoStabilityInputFileNameSecondModel = - DamMacroStabilityUtils.GetStabilityInputFileName(damKernelInput, iterationIndex, - model, FailureMechanismParametersMStab.ProjectWorkingPath); - // if not, only Bishop calculation so leave SecondModel empty. + damKernelInput.DamFailureMechanismeCalculationSpecification = new DamFailureMechanismeCalculationSpecification(); } - kernelDataInput = damMacroStabilityInput; + // Make sure the gridposition is Right. + FailureMechanismParametersMStab.MStabParameters.GridPosition = MStabGridPosition.Right; + // Make sure no riverlevellow is defined, because this will trigger Outside stability code elsewhere + damKernelInput.RiverLevelLow = null; - // When BishopUpliftVan is performed, make sure the first one is Bishop - if (bishopUpliftVan) + if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.StabilityInside) { - damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.Bishop; - } - try - { - // start prepare for (first) calculation - // Write xml file - XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); - // Use xml file to create sti file - CreateStiFile(xmlDocument); + var bishopUpliftVan = FailureMechanismParametersMStab.MStabParameters.Model == + MStabModelType.BishopUpliftVan; + var model = FailureMechanismParametersMStab.MStabParameters.Model; + if (bishopUpliftVan) + { + // if current model is BishopUpliftVan then set to Bishop for proper name/path for inputfile + model = MStabModelType.Bishop; + } - // now check if second calculation for BishopUpliftVan is needed, if so perform prepare. + FailureMechanismParametersMStab.ProjectWorkingPath = damKernelInput.CalculationDir; + if (damKernelInput.SubSoilScenario.SoilProfileType == SoilProfileType.ProfileTypeStiFile) + { + damKernelInput.SubSoilScenario.FullStiFileName = Path.Combine(damKernelInput.ProjectDir, + Path.Combine(damKernelInput.Location.StabilityOptions.SoilGeometries2DPath, + damKernelInput.SubSoilScenario.StiFileName)); + } + var damMacroStabilityInput = new DamMacroStabilityInput() + { + DGeoStabilityExePath = FailureMechanismParametersMStab.DGeoStabilityExePath, + DGeoStabilityInputFileName = DamMacroStabilityUtils.GetStabilityInputFileName( + damKernelInput, iterationIndex, model, FailureMechanismParametersMStab.ProjectWorkingPath), + FailureMechanismParametersMStab = FailureMechanismParametersMStab + }; + + // Determine whether there is uplift + var upliftSituation = UpliftHelper.DetermineStabilityUplift(damKernelInput, false); + damMacroStabilityOutput.UpliftSituation = upliftSituation; + kernelDataOutput = damMacroStabilityOutput; + + // Check the model to see what is to be calculated and how many calculations are required if (bishopUpliftVan) { - // reset model - damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.BishopUpliftVan; - if (upliftSituation.IsUplift) + // see if uplift is required + // if so, both upliftvan and bishop are to be prepared, calculated and worst case is to be determined + model = MStabModelType.UpliftVan; + damMacroStabilityInput.DGeoStabilityInputFileNameSecondModel = + DamMacroStabilityUtils.GetStabilityInputFileName(damKernelInput, iterationIndex, + 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 + if (bishopUpliftVan) + { + damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.Bishop; + } + try + { + // start prepare for (first) calculation + // Write xml file + XDocument xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); + // Use xml file to create sti file + CreateStiFile(xmlDocument); + + // now check if second calculation for BishopUpliftVan is needed, if so perform prepare. + if (bishopUpliftVan) { - var inputFileName = damMacroStabilityInput.DGeoStabilityInputFileName; - // set proper name and model - damMacroStabilityInput.DGeoStabilityInputFileName = damMacroStabilityInput.DGeoStabilityInputFileNameSecondModel; - damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.UpliftVan; - try + // reset model + damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.BishopUpliftVan; + if (upliftSituation.IsUplift) { - // Write xml file - xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); - // Use xml file to create sti file - CreateStiFile(xmlDocument); + var inputFileName = damMacroStabilityInput.DGeoStabilityInputFileName; + // set proper name and model + damMacroStabilityInput.DGeoStabilityInputFileName = damMacroStabilityInput.DGeoStabilityInputFileNameSecondModel; + damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.UpliftVan; + try + { + // Write xml file + xmlDocument = CreateMstabDamXmlDocument(damKernelInput, damMacroStabilityInput); + // Use xml file to create sti file + CreateStiFile(xmlDocument); + } + finally + { + // reset name + damMacroStabilityInput.DGeoStabilityInputFileName = inputFileName; + } } - finally - { - // reset name - damMacroStabilityInput.DGeoStabilityInputFileName = inputFileName; - } } } - } - finally - { - if (bishopUpliftVan) + finally { - // reset model - damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.BishopUpliftVan; + if (bishopUpliftVan) + { + // reset model + damMacroStabilityInput.FailureMechanismParametersMStab.MStabParameters.Model = MStabModelType.BishopUpliftVan; + } } - } - return PrepareResult.Successful; + return PrepareResult.Successful; + } + kernelDataInput = null; + return PrepareResult.NotRelevant; } - kernelDataInput = null; - return PrepareResult.NotRelevant; + catch (Exception) + { + kernelDataInput = null; + kernelDataOutput = null; + return PrepareResult.Failed; + } } /// Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijerVnk/DamPipingSellmeijerVnkKernelWrapper.cs =================================================================== diff -u -r1273 -r1327 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijerVnk/DamPipingSellmeijerVnkKernelWrapper.cs (.../DamPipingSellmeijerVnkKernelWrapper.cs) (revision 1273) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijerVnk/DamPipingSellmeijerVnkKernelWrapper.cs (.../DamPipingSellmeijerVnkKernelWrapper.cs) (revision 1327) @@ -56,25 +56,34 @@ /// public PrepareResult Prepare(DamKernelInput damKernelInput, int iterationIndex, out IKernelDataInput kernelDataInput, out IKernelDataOutput kernelDataOutput) { - var damPipingOutput = new DamPipingSellmeijerVnkOutput() + try { - FoSp = defaultMaxReturnValue - }; - kernelDataOutput = damPipingOutput; - if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping) + var damPipingOutput = new DamPipingSellmeijerVnkOutput() + { + FoSp = defaultMaxReturnValue + }; + kernelDataOutput = damPipingOutput; + if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping) + { + var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D; + var location = damKernelInput.Location; + double waterLevel = damKernelInput.RiverLevelHigh; + UpliftSituation upliftSituation; + var plLines = PlLinesHelper.CreatePlLinesForPiping(location, soilProfile1D, waterLevel, + damKernelInput.DamFailureMechanismeCalculationSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType, + out upliftSituation); + EvaluateUpliftSituation(damKernelInput, out kernelDataInput, plLines, waterLevel, damPipingOutput); + return PrepareResult.Successful; + } + kernelDataInput = null; + return PrepareResult.NotRelevant; + } + catch (Exception) { - var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D; - var location = damKernelInput.Location; - double waterLevel = damKernelInput.RiverLevelHigh; - UpliftSituation upliftSituation; - var plLines = PlLinesHelper.CreatePlLinesForPiping(location, soilProfile1D, waterLevel, - damKernelInput.DamFailureMechanismeCalculationSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType, - out upliftSituation); - EvaluateUpliftSituation(damKernelInput, out kernelDataInput, plLines, waterLevel, damPipingOutput); - return PrepareResult.Successful; + kernelDataInput = null; + kernelDataOutput = null; + return PrepareResult.Failed; } - kernelDataInput = null; - return PrepareResult.NotRelevant; } private static void EvaluateUpliftSituation(DamKernelInput damKernelInput, out IKernelDataInput kernelDataInput,