Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapperTests.cs =================================================================== diff -u -r6158 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapperTests.cs (.../WtiPipingSellmeijerRevisedKernelWrapperTests.cs) (revision 6158) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapperTests.cs (.../WtiPipingSellmeijerRevisedKernelWrapperTests.cs) (revision 6191) @@ -373,10 +373,6 @@ { DistanceToEntryPoint = distanceToEntryPoint, SurfaceLine = FactoryForSurfaceLines.CreateSurfaceLineForWtiPiping(), - ModelFactors = - { - UpliftCriterionPiping = 1.0 - }, ModelParametersForPlLines = { DampingFactorPl3 = 0.25, @@ -385,11 +381,12 @@ DikeEmbankmentMaterial = soilList.Soils[0].Name, SoilList = soilList }; - + var designScenario = new DesignScenario { LocationScenarioID = "1", - LocationName = location.Name + LocationName = location.Name, + UpliftCriterionPiping = 1.0 }; location.CurrentScenario = designScenario; @@ -493,10 +490,6 @@ { DistanceToEntryPoint = distanceToEntryPoint, SurfaceLine = FactoryForSurfaceLines.CreateSurfaceLineForWtiPiping(), - ModelFactors = - { - UpliftCriterionPiping = 1.0 - }, ModelParametersForPlLines = { DampingFactorPl3 = 0.25, @@ -506,6 +499,7 @@ DikeEmbankmentMaterial = soilList.Soils[0].Name, SoilList = soilList }; + location.CurrentScenario.UpliftCriterionPiping = 1.0; var damFailureMechanismeCalculationSpecification = new DamFailureMechanismeCalculationSpecification { FailureMechanismSystemType = FailureMechanismSystemType.Piping, Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/General/Parallel.cs =================================================================== diff -u -r4797 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/General/Parallel.cs (.../Parallel.cs) (revision 4797) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/General/Parallel.cs (.../Parallel.cs) (revision 6191) @@ -71,7 +71,7 @@ if (limitToAvailableProcessors) { - maxProcesses = Math.Min(Environment.ProcessorCount, maxProcesses); + maxProcesses = Math.Min(Environment.ProcessorCount - 1, maxProcesses); } //DateTime start = DateTime.Now; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityOutwards/MacroStabilityOutwardsKernelWrapper.cs =================================================================== diff -u -r6087 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityOutwards/MacroStabilityOutwardsKernelWrapper.cs (.../MacroStabilityOutwardsKernelWrapper.cs) (revision 6087) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityOutwards/MacroStabilityOutwardsKernelWrapper.cs (.../MacroStabilityOutwardsKernelWrapper.cs) (revision 6191) @@ -157,7 +157,7 @@ /// public int Validate(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages) { - return MacroStabilityCommonHelper.Validate(kernelDataInput, kernelDataOutput, out messages); + return macroStabilityCommonHelper.Validate(kernelDataInput, kernelDataOutput, out messages); } /// Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/Rechter Diezedijk_WtiSellmeijerRevisedFailedDesignInputFile_1Location.xml =================================================================== diff -u -r5675 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/Rechter Diezedijk_WtiSellmeijerRevisedFailedDesignInputFile_1Location.xml (.../Rechter Diezedijk_WtiSellmeijerRevisedFailedDesignInputFile_1Location.xml) (revision 5675) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/Rechter Diezedijk_WtiSellmeijerRevisedFailedDesignInputFile_1Location.xml (.../Rechter Diezedijk_WtiSellmeijerRevisedFailedDesignInputFile_1Location.xml) (revision 6191) @@ -35,7 +35,6 @@ SoilDatabaseName="D:\src\dam\DamClients\DamUI\trunk\data\DamEngineTestProjects\Larenstein_AaenMaas\Rechter Diezedijk0.soilmaterials.mdb" ZoneType="0" ForbiddenZoneFactor="1" ZoneAreaRestSlopeCrestWidth="3" TrafficLoad="13" MinimumCircleDepth="1.5"/> - Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r6150 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 6150) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 6191) @@ -58,7 +58,7 @@ { // Setup DamKernelInput kernelInput = CreateDamKernelInputForTest(MStabModelType.UpliftVan); - kernelInput.Location.ModelFactors.UpliftCriterionStability = upliftCriterionStability; + kernelInput.Location.CurrentScenario.UpliftCriterionStability = upliftCriterionStability; var kernelWrapper = new MacroStabilityInwardsKernelWrapper { FailureMechanismParametersMStab = new FailureMechanismParametersMStab @@ -577,7 +577,7 @@ Assert.That(engineInterface.DamProjectData, Is.Not.Null); engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.StabilityModelType = MStabModelType.UpliftVan; - + var a = engineInterface.DamProjectData.Dike.Locations[0].CurrentScenario.UpliftCriterionStability; Output output = GeneralHelper.RunAfterInputValidation(engineInterface); Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.6099).Within(tolerance4Decimals)); @@ -693,7 +693,7 @@ location.SurfaceLine.CharacteristicPoints.GetPoint2D(CharacteristicPointType.DitchPolderSide).X = 62.5; // To ensure uplift occurs, set criterion to 1.4 - location.ModelFactors.UpliftCriterionStability = 1.4; + location.CurrentScenario.UpliftCriterionStability = 1.4; SoilProfile1D soilProfile = DamEngineDataTestFactory.CreateSoilProfile1D(location.SoilList); SetWaterPressureInterpolationModel(soilProfile.Layers); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r6129 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6129) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6191) @@ -160,7 +160,7 @@ if (isBishopUpliftVan && upliftSituation.IsUplift && firstPrepareResult == PrepareResult.Successful) { model = MStabModelType.UpliftVan; - FailureMechanismParametersMStab.MStabParameters.Model = model; + FailureMechanismParametersMStab.MStabParameters.Model = model; //C#wrapper hier vervangen door MAC direct macroStabilityInput.Input = fillMacroStabilityWrapperFromEngine.CreateMacroStabilityInput(damKernelInput, FailureMechanismParametersMStab.MStabParameters, waterNet); fileNameForSecondCalculation = MacroStabilityCommonHelper.GetStabilityInputFileName(damKernelInput, iterationIndex, FailureMechanismParametersMStab.MStabParameters.Model); @@ -206,7 +206,7 @@ /// public int Validate(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages) { - return MacroStabilityCommonHelper.Validate(kernelDataInput, kernelDataOutput, out messages); + return macroStabilityCommonHelper.Validate(kernelDataInput, kernelDataOutput, out messages); } /// @@ -375,7 +375,7 @@ MacroStabilityCommonHelper.ThrowWhenMacroStabilityKernelOutputNull(macroStabilityOutput); MacroStabilityCommonHelper.ThrowWhenMacroStabilityDamKernelInputNull(damKernelInput); - double fosRequired = damKernelInput.Location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope; + double fosRequired = damKernelInput.Location.CurrentScenario.RequiredSafetyFactorStabilityInnerSlope; if (macroStabilityOutput != null) { MacroStabilityOutputItem leadingStabilityOutputItem = DetemineLeadingOutputItem(macroStabilityOutput.StabilityOutputItems); Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Design/DesignScenario.cs =================================================================== diff -u -r5767 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Data/Design/DesignScenario.cs (.../DesignScenario.cs) (revision 5767) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/Design/DesignScenario.cs (.../DesignScenario.cs) (revision 6191) @@ -36,7 +36,6 @@ /// public class DesignScenario { - private readonly ModelFactors modelFactors; private Dictionary redesignedSurfaceLines; private Dictionary resultMessages; @@ -47,7 +46,6 @@ { ClearResults(); ClearErrors(); - modelFactors = new ModelFactors(); } public CalculationResult CalculationResult { get; set; } = CalculationResult.NoRun; @@ -109,36 +107,17 @@ /// The required safety factor stability inner slope. /// [Description("Required safety factor stability inner slope")] - public double RequiredSafetyFactorStabilityInnerSlope - { - get - { - return modelFactors.RequiredSafetyFactorStabilityInnerSlope; - } - set - { - modelFactors.RequiredSafetyFactorStabilityInnerSlope = value; - } - } - + public double RequiredSafetyFactorStabilityInnerSlope { get; set; } + /// /// Gets or sets the required safety factor stability outer slope. /// /// /// The required safety factor stability outer slope. /// [Description("Required safety factor stability outer slope")] - public double RequiredSafetyFactorStabilityOuterSlope - { - get - { - return modelFactors.RequiredSafetyFactorStabilityOuterSlope; - } - set - { - modelFactors.RequiredSafetyFactorStabilityOuterSlope = value; - } - } + public double RequiredSafetyFactorStabilityOuterSlope { get; set; } + /// /// Gets or sets the required safety factor piping. @@ -147,17 +126,8 @@ /// The required safety factor piping. /// [Description("Required safety factor piping")] - public double RequiredSafetyFactorPiping - { - get - { - return modelFactors.RequiredSafetyFactorPiping; - } - set - { - modelFactors.RequiredSafetyFactorPiping = value; - } - } + public double RequiredSafetyFactorPiping {get; set; } + /// /// Gets or sets the uplift criterion piping. @@ -166,37 +136,17 @@ /// The uplift criterion piping. /// [Description("Uplift criterion piping")] - public double UpliftCriterionPiping - { - get - { - return modelFactors.UpliftCriterionPiping; - } - set - { - modelFactors.UpliftCriterionPiping = value; - } - } - + public double UpliftCriterionPiping {get; set; } + /// /// Gets or sets the uplift criterion stability. /// /// /// The uplift criterion stability. /// [Description("Uplift criterion stability")] - public double UpliftCriterionStability - { - get - { - return modelFactors.UpliftCriterionStability; - } - set - { - modelFactors.UpliftCriterionStability = value; - } - } - + public double UpliftCriterionStability { get; set; } + public double PlLineOffsetBelowDikeTopAtRiver { get; set; } = 0.5; /// @@ -429,8 +379,8 @@ return $"Location={LocationName}, ID={LocationScenarioID} RiverLevel={RiverLevel} " + $"RiverLevelLow={(RiverLevelLow.HasValue ? RiverLevelLow.ToString() : "?")} " + $"DikeTableHeight={(DikeTableHeight.HasValue ? DikeTableHeight.ToString() : "?")} " + - $"SafetyFactorStabilityInnerSlope={modelFactors.RequiredSafetyFactorStabilityInnerSlope} " + - $"RequiredSafetyFactorStabilityOuterSlope={modelFactors.RequiredSafetyFactorStabilityOuterSlope} " + + $"SafetyFactorStabilityInnerSlope={RequiredSafetyFactorStabilityInnerSlope} " + + $"RequiredSafetyFactorStabilityOuterSlope={RequiredSafetyFactorStabilityOuterSlope} " + $"PlLineOffsetBelowDikeTopAtRiver={PlLineOffsetBelowDikeTopAtRiver} " + $"PlLineOffsetBelowDikeToeAtPolder={PlLineOffsetBelowDikeToeAtPolder} " + $"PlLineOffsetBelowDikeTopAtPolder={PlLineOffsetBelowDikeTopAtPolder} " + Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs =================================================================== diff -u -r6157 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs (.../WtiPipingSellmeijerRevisedKernelWrapper.cs) (revision 6157) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs (.../WtiPipingSellmeijerRevisedKernelWrapper.cs) (revision 6191) @@ -311,8 +311,8 @@ UpliftLocationAndResult upliftLocationAndResult; WtiPipingHelper.DeterminePlLinesAndUpliftLocation(damKernelInput, point, out plLines, out upliftLocationAndResult); - double requiredFoS = location.ModelFactors.RequiredSafetyFactorPiping; - double upliftCriterion = location.UpliftCriterionPiping; + double requiredFoS = location.CurrentScenario.RequiredSafetyFactorPiping; + double upliftCriterion = location.CurrentScenario.UpliftCriterionPiping; // if there is no uplift, then there is no piping so return null if (upliftLocationAndResult != null) { @@ -377,7 +377,7 @@ ThrowWhenKernelInputNull(damPipingInput); ThrowWhenDamKernelInputNull(damKernelInput); ThrowWhenKernelOutputNull(damPipingOutput); - double fosRequired = damKernelInput.Location.ModelFactors.RequiredSafetyFactorPiping; + double fosRequired = damKernelInput.Location.CurrentScenario.RequiredSafetyFactorPiping; double fosAchieved = damPipingOutput.FoSbe; evaluationMessage = String.Format(Resources.FactorAchievedVsFactorRequired, fosAchieved, fosRequired); designAdvise = DesignAdvise.None; @@ -521,7 +521,7 @@ DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil() }; // The tolerance is built in because after design it could be that the value that is designed to, is not reached by this margin - double upliftCriterion = location.UpliftCriterionPiping - upliftCriterionTolerance; + double upliftCriterion = location.CurrentScenario.UpliftCriterionPiping - upliftCriterionTolerance; UpliftLocationAndResult upliftLocationAndResult = upliftLocationDeterminator.GetLocationAndResult(upliftCriterion); upliftSituation.IsUplift = (upliftLocationAndResult != null); double xEntry = surfaceLine.CharacteristicPoints.GetPoint2D(CharacteristicPointType.DikeToeAtRiver).X; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesOperational/OperationalCalculator.cs =================================================================== diff -u -r6109 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesOperational/OperationalCalculator.cs (.../OperationalCalculator.cs) (revision 6109) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesOperational/OperationalCalculator.cs (.../OperationalCalculator.cs) (revision 6191) @@ -601,16 +601,7 @@ if (designScenario != null) { location.CurrentScenario = designScenario.CloneInput(); - location.CurrentScenario.LocationName = location.Name; - location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = - designScenario.RequiredSafetyFactorStabilityInnerSlope; - location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope = - designScenario.RequiredSafetyFactorStabilityOuterSlope; - location.ModelFactors.UpliftCriterionStability = designScenario.UpliftCriterionStability; - - location.ModelFactors.RequiredSafetyFactorPiping = designScenario.RequiredSafetyFactorPiping; - location.ModelFactors.UpliftCriterionPiping = designScenario.UpliftCriterionPiping; - + if (designScenario.DikeTableHeight.HasValue) { location.DikeTableHeight = designScenario.DikeTableHeight ?? 0; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingBligh/WtiPipingBlighKernelWrapper.cs =================================================================== diff -u -r6168 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingBligh/WtiPipingBlighKernelWrapper.cs (.../WtiPipingBlighKernelWrapper.cs) (revision 6168) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingBligh/WtiPipingBlighKernelWrapper.cs (.../WtiPipingBlighKernelWrapper.cs) (revision 6191) @@ -194,8 +194,8 @@ UpliftLocationAndResult upliftLocationAndResult; WtiPipingHelper.DeterminePlLinesAndUpliftLocation(damKernelInput, point, out plLines, out upliftLocationAndResult); - double requiredFoS = location.ModelFactors.RequiredSafetyFactorPiping; - double upliftCriterion = location.UpliftCriterionPiping; + double requiredFoS = location.CurrentScenario.RequiredSafetyFactorPiping; + double upliftCriterion = location.CurrentScenario.UpliftCriterionPiping; // if there is no uplift, then there is no piping so return null if (upliftLocationAndResult != null) { @@ -249,7 +249,7 @@ ThrowWhenKernelInputNull(wtiPipingBlighInput); ThrowWhenDamKernelInputNull(damKernelInput); ThrowWhenKernelOutputNull(wtiPipingBlighOutput); - double fosRequired = damKernelInput.Location.ModelFactors.RequiredSafetyFactorPiping; + double fosRequired = damKernelInput.Location.CurrentScenario.RequiredSafetyFactorPiping; double fosAchieved = wtiPipingBlighOutput.FoSp; evaluationMessage = String.Format(Resources.FactorAchievedVsFactorRequired, fosAchieved, fosRequired); designAdvise = DesignAdvise.None; @@ -289,7 +289,7 @@ DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil() }; // The tolerance is built in because after design it could be that the value that is designed to, is not reached by this margin - double upliftCriterion = location.UpliftCriterionPiping - upliftCriterionTolerance; + double upliftCriterion = location.CurrentScenario.UpliftCriterionPiping - upliftCriterionTolerance; UpliftLocationAndResult upliftLocationAndResult = upliftLocationDeterminator.GetLocationAndResult(upliftCriterion); upliftSituation.IsUplift = (upliftLocationAndResult != null); double xEntry = surfaceLine.CharacteristicPoints.GetPoint2D(CharacteristicPointType.DikeToeAtRiver).X; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/Common/UpliftHelperTests.cs =================================================================== diff -u -r6171 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/Common/UpliftHelperTests.cs (.../UpliftHelperTests.cs) (revision 6171) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/Common/UpliftHelperTests.cs (.../UpliftHelperTests.cs) (revision 6191) @@ -41,12 +41,12 @@ damKernelInput.SubSoilScenario.SoilProfileType = SoilProfileType.ProfileType2D; damKernelInput.SubSoilScenario.SoilProfile2D = soilProfile2D; - damKernelInput.Location.ModelFactors.UpliftCriterionStability = 1.2; + damKernelInput.Location.CurrentScenario.UpliftCriterionStability = 1.2; var upliftHelper = new UpliftHelper(); upliftHelper.DeterminePlLinesForStability(damKernelInput, false, out UpliftSituation upliftSituation); Assert.That(upliftSituation.IsUplift, Is.True); - damKernelInput.Location.ModelFactors.UpliftCriterionStability = 0.8; + damKernelInput.Location.CurrentScenario.UpliftCriterionStability = 0.8; upliftHelper.DeterminePlLinesForStability(damKernelInput, false, out upliftSituation); Assert.That(upliftSituation.IsUplift, Is.False); } @@ -60,7 +60,7 @@ Location location = DamEngineDataTestFactory.CreateLocation(FactoryForSurfaceLines.CreateSurfaceLineTutorial1()); location.StabilityOptions = new StabilityOptions(); location.StabilityOptions.TrafficLoad = 10.0; - location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = 1.1; + location.CurrentScenario.RequiredSafetyFactorStabilityInnerSlope = 1.1; var subSoilScenario = new SoilGeometryProbability(); subSoilScenario.SegmentFailureMechanismType = SegmentFailureMechanismType.Stability; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingBligh/WtiPipingBlighKernelWrapperTests.cs =================================================================== diff -u -r6138 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingBligh/WtiPipingBlighKernelWrapperTests.cs (.../WtiPipingBlighKernelWrapperTests.cs) (revision 6138) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingBligh/WtiPipingBlighKernelWrapperTests.cs (.../WtiPipingBlighKernelWrapperTests.cs) (revision 6191) @@ -58,14 +58,11 @@ var location = new Location("Location 1") { SurfaceLine = FactoryForSurfaceLines.CreateSurfaceLineTutorial1(), - ModelFactors = - { - UpliftCriterionPiping = 1.0 - }, CurrentScenario = new DesignScenario(), DikeEmbankmentMaterial = soilList.Soils[0].Name, SoilList = soilList }; + location.CurrentScenario.UpliftCriterionPiping = 1.0; var damFailureMechanismeCalculationSpecification = new DamFailureMechanismeCalculationSpecification { FailureMechanismSystemType = FailureMechanismSystemType.Piping, @@ -146,14 +143,11 @@ var location = new Location { SurfaceLine = FactoryForSurfaceLines.CreateSurfaceLineTutorial1(), - ModelFactors = - { - UpliftCriterionPiping = 1.0 - }, CurrentScenario = new DesignScenario(), DikeEmbankmentMaterial = soilList.Soils[0].Name, SoilList = soilList }; + location.CurrentScenario.UpliftCriterionPiping = 1.0; var damFailureMechanismeCalculationSpecification = new DamFailureMechanismeCalculationSpecification { Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs =================================================================== diff -u -r6107 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs (.../UpliftHelper.cs) (revision 6107) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/UpliftHelper.cs (.../UpliftHelper.cs) (revision 6191) @@ -79,7 +79,7 @@ return false; } - double upliftCriterion = location.ModelFactors.UpliftCriterionStability; + double upliftCriterion = location.CurrentScenario.UpliftCriterionStability; SurfaceLine2 surfaceLineWithNewHeight = location.SurfaceLine; double? upliftFactor = GetLowestUpliftFactor(surfaceLineWithNewHeight, subSoilScenario.SoilProfile1D, subSoilScenario.SoilProfile2D, plLines, Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs =================================================================== diff -u -r6156 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 6156) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 6191) @@ -146,50 +146,6 @@ public virtual Segment Segment { get; set; } /// - /// Gets or sets the model factors. - /// - /// - /// The model factors. - /// - public virtual ModelFactors ModelFactors { get; set; } = new ModelFactors(); - - /// - /// Gets or sets the uplift criterion stability. - /// - /// - /// The uplift criterion stability. - /// - public virtual double UpliftCriterionStability - { - get - { - return ModelFactors.UpliftCriterionStability; - } - set - { - ModelFactors.UpliftCriterionStability = value; - } - } - - /// - /// Gets or sets the uplift criterion piping. - /// - /// - /// The uplift criterion piping. - /// - public virtual double UpliftCriterionPiping - { - get - { - return ModelFactors.UpliftCriterionPiping; - } - set - { - ModelFactors.UpliftCriterionPiping = value; - } - } - - /// /// Gets or sets the slope damping piezometric height polder side. /// /// Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r6174 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 6174) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 6191) @@ -675,6 +675,7 @@ location.Scenarios.Add(designScenario); } + location.CurrentScenario = location.Scenarios.First(); } location.DikeEmbankmentMaterial = inputLocation.DikeEmbankmentMaterial; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r6087 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 6087) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 6191) @@ -297,10 +297,11 @@ /// /// Zero when there are no errors, one when there are errors that prevent a calculation /// - public static int Validate(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages) + public int Validate(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages) { var macroStabilityKernelDataInput = (MacroStabilityKernelDataInput) kernelDataInput; messages = new List(); + try { ValidationOutput result = new Validator(macroStabilityKernelDataInput.Input).Validate(); @@ -391,6 +392,14 @@ messages.Add(new LogMessage(LogMessageType.Error, null, exceptionDuringCalculation.Message)); } + if (macroStabilityOutput.CalculationResult != CalculationResult.UnexpectedError) + { + StoreResultsAndWriteStixFile(input, macroStabilityOutput, fileName, messages); + } + } + + private void StoreResultsAndWriteStixFile(MacroStabilityInput input, MacroStabilityOutput macroStabilityOutput, string fileName, List messages) + { try { MacroStabilityOutputItem stabilityOutputItem = macroStabilityOutput.StabilityOutputItems[^1]; @@ -510,6 +519,7 @@ subSoilScenario.SoilProfile2D = soilProfile2DNew; subSoilScenario.SoilProfile2DName = soilProfile2DNew.Name; subSoilScenario.SoilProfileType = SoilProfileType.ProfileType2D; + subSoilScenario.SoilProfile2D.Geometry.Rebox(); } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorSingle.cs =================================================================== diff -u -r4898 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorSingle.cs (.../DesignCalculatorSingle.cs) (revision 4898) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculatorSingle.cs (.../DesignCalculatorSingle.cs) (revision 6191) @@ -47,7 +47,7 @@ /// The design scenario. /// The calculation messages. /// The design calculations. - public static void PerformSingleCalculation(IKernelWrapper kernelWrapper, IKernelDataInput kernelDataInput, + public void PerformSingleCalculation(IKernelWrapper kernelWrapper, IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, DamKernelInput damKernelInput, List calculationMessages, List designCalculations) { Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs =================================================================== diff -u -r5767 -r6191 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs (.../DesignCalculator.cs) (revision 5767) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesDesign/DesignCalculator.cs (.../DesignCalculator.cs) (revision 6191) @@ -274,48 +274,54 @@ { damKernelInput.OriginalSoilProfile2D = damKernelInput.SubSoilScenario.SoilProfile2D.Clone(); } - PrepareResult prepareResult = - kernelWrapper.Prepare(damKernelInput, 0, out kernelDataInput, out kernelDataOutput); - // Sometimes the kernelDataInput is not created (e.g. when SoilProfileProbability is meant for - // stability where Piping calc is wanted). In that case, do nothing but just skip. - if (prepareResult == PrepareResult.Successful) + lock (damKernelInput) { - switch (analysisType) + + PrepareResult prepareResult = + kernelWrapper.Prepare(damKernelInput, 0, out kernelDataInput, out kernelDataOutput); + + // Sometimes the kernelDataInput is not created (e.g. when SoilProfileProbability is meant for + // stability where Piping calc is wanted). In that case, do nothing but just skip. + if (prepareResult == PrepareResult.Successful) { - case AnalysisType.AdaptGeometry: - PerformDesignCalculation(kernelWrapper, kernelDataInput, kernelDataOutput, - damKernelInput, calculationMessages, designResults); - break; - case AnalysisType.NoAdaption: - DesignCalculatorSingle.PerformSingleCalculation(kernelWrapper, kernelDataInput, kernelDataOutput, - damKernelInput, calculationMessages, designResults); - break; + switch (analysisType) + { + case AnalysisType.AdaptGeometry: + PerformDesignCalculation(kernelWrapper, kernelDataInput, kernelDataOutput, + damKernelInput, calculationMessages, designResults); + break; + case AnalysisType.NoAdaption: + DesignCalculatorSingle calculatorSingle = new DesignCalculatorSingle(); + calculatorSingle.PerformSingleCalculation(kernelWrapper, kernelDataInput, kernelDataOutput, + damKernelInput, calculationMessages, designResults); + break; + } } - } - else - { - if (prepareResult == PrepareResult.NotRelevant) + else { - calculationMessages.Add(new LogMessage(LogMessageType.Info, null, - string.Format(Resources.DesignCalculatorPrepareNotRelevant, - location.Name, - soiProfileProbability, - designScenario.LocationScenarioID))); - } + if (prepareResult == PrepareResult.NotRelevant) + { + calculationMessages.Add(new LogMessage(LogMessageType.Info, null, + string.Format(Resources.DesignCalculatorPrepareNotRelevant, + location.Name, + soiProfileProbability, + designScenario.LocationScenarioID))); + } - if (prepareResult == PrepareResult.Failed) - { - calculationMessages.Add(new LogMessage(LogMessageType.Error, null, - string.Format(Resources.DesignCalculatorPrepareError, - location.Name, - soiProfileProbability, - designScenario.LocationScenarioID))); - - var mo = (MacroStabilityOutput) kernelDataOutput; - if (mo != null) + if (prepareResult == PrepareResult.Failed) { - calculationMessages.Add(mo.Message); + calculationMessages.Add(new LogMessage(LogMessageType.Error, null, + string.Format(Resources.DesignCalculatorPrepareError, + location.Name, + soiProfileProbability, + designScenario.LocationScenarioID))); + + var mo = (MacroStabilityOutput) kernelDataOutput; + if (mo != null) + { + calculationMessages.Add(mo.Message); + } } } } @@ -376,20 +382,11 @@ /// The location. private void SynchronizeScenarioDataWithLocationData(DesignScenario designScenario, Location location) { - // Synchronize scenario data (Note: do not attempt to synchronize the ModelFactors as these are set by the direct + // Synchronize scenario data (Note: do not attempt to synchronize the ModelFactors as these are set by the direct) // properties in the scenario such as the Required Safeties. ModelFactors is just a place holder. location.CurrentScenario = designScenario.CloneInput(); - location.CurrentScenario.LocationName = location.Name; location.Scenarios.Clear(); - // Synchronize piping design parameters - location.UpliftCriterionPiping = designScenario.UpliftCriterionPiping; - location.ModelFactors.RequiredSafetyFactorPiping = designScenario.RequiredSafetyFactorPiping; - - // Synchronize stability design parameters - location.UpliftCriterionStability = designScenario.UpliftCriterionStability; - location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = designScenario.RequiredSafetyFactorStabilityInnerSlope; - location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope = designScenario.RequiredSafetyFactorStabilityOuterSlope; if (designScenario.DikeTableHeight.HasValue) { location.DikeTableHeight = designScenario.DikeTableHeight ?? location.SurfaceLine.GetDefaultDikeTableHeight() ?? 0; Fisheye: Tag 6191 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.Data/General/ModelFactors.cs'. Fisheye: No comparison available. Pass `N' to diff?