Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.CalculatedInput/WaternetCalculationService.cs
===================================================================
diff -u -r38b96b5fe034945cfa33600ec134e21507b40922 -rcc068526b5a84a94aeeebf872b29f7da4c28ceab
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.CalculatedInput/WaternetCalculationService.cs (.../WaternetCalculationService.cs) (revision 38b96b5fe034945cfa33600ec134e21507b40922)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.CalculatedInput/WaternetCalculationService.cs (.../WaternetCalculationService.cs) (revision cc068526b5a84a94aeeebf872b29f7da4c28ceab)
@@ -53,19 +53,73 @@
throw new ArgumentNullException(nameof(input));
}
- var calculatorInput = new WaternetCalculatorInput(new WaternetCalculatorInput.ConstructionProperties
+ IWaternetCalculator calculator = MacroStabilityInwardsCalculatorFactory.Instance
+ .CreateWaternetExtremeCalculator(
+ CreateCalculatorInput(input, false),
+ MacroStabilityInwardsKernelWrapperFactory.Instance);
+
+ try
{
+ WaternetCalculatorResult result = calculator.Calculate();
+ return MacroStabilityInwardsWaternetConverter.Convert(result);
+ }
+ catch (WaternetCalculatorException)
+ {
+ return null;
+ }
+ }
+
+ ///
+ /// Calculated the Waternet with daily circumstances based on the values
+ /// of the .
+ ///
+ /// The input to get the values from.
+ /// A calculated ,
+ /// or null when the Waternet could be calculated.
+ /// Thrown when
+ /// is null.
+ public static MacroStabilityInwardsWaternet CalculateDaily(IMacroStabilityInwardsWaternetInput input)
+ {
+ if (input == null)
+ {
+ throw new ArgumentNullException(nameof(input));
+ }
+
+ IWaternetCalculator calculator = MacroStabilityInwardsCalculatorFactory.Instance
+ .CreateWaternetDailyCalculator(
+ CreateCalculatorInput(input, true),
+ MacroStabilityInwardsKernelWrapperFactory.Instance);
+
+ try
+ {
+ WaternetCalculatorResult result = calculator.Calculate();
+ return MacroStabilityInwardsWaternetConverter.Convert(result);
+ }
+ catch (WaternetCalculatorException)
+ {
+ return null;
+ }
+ }
+
+ private static WaternetCalculatorInput CreateCalculatorInput(IMacroStabilityInwardsWaternetInput input, bool daily)
+ {
+ return new WaternetCalculatorInput(new WaternetCalculatorInput.ConstructionProperties
+ {
WaternetCreationMode = WaternetCreationMode.CreateWaternet,
PlLineCreationMethod = PlLineCreationMethod.RingtoetsWti2017,
AssessmentLevel = input.AssessmentLevel,
LandwardDirection = LandwardDirection.PositiveX,
SurfaceLine = input.SurfaceLine,
SoilProfile = SoilProfileConverter.Convert(input.SoilProfileUnderSurfaceLine),
DrainageConstruction = DrainageConstructionConverter.Convert(input),
- PhreaticLineOffsets = PhreaticLineOffsetsConverter.Convert(input.LocationInputExtreme),
+ PhreaticLineOffsets = daily
+ ? PhreaticLineOffsetsConverter.Convert(input.LocationInputDaily)
+ : PhreaticLineOffsetsConverter.Convert(input.LocationInputExtreme),
DikeSoilScenario = input.DikeSoilScenario,
WaterLevelRiverAverage = input.WaterLevelRiverAverage,
- WaterLevelPolder = input.LocationInputExtreme.WaterLevelPolder,
+ WaterLevelPolder = daily
+ ? input.LocationInputDaily.WaterLevelPolder
+ : input.LocationInputExtreme.WaterLevelPolder,
MinimumLevelPhreaticLineAtDikeTopRiver = input.MinimumLevelPhreaticLineAtDikeTopRiver,
MinimumLevelPhreaticLineAtDikeTopPolder = input.MinimumLevelPhreaticLineAtDikeTopPolder,
LeakageLengthOutwardsPhreaticLine3 = input.LeakageLengthOutwardsPhreaticLine3,
@@ -74,24 +128,11 @@
LeakageLengthInwardsPhreaticLine4 = input.LeakageLengthInwardsPhreaticLine4,
PiezometricHeadPhreaticLine2Outwards = input.PiezometricHeadPhreaticLine2Outwards,
PiezometricHeadPhreaticLine2Inwards = input.PiezometricHeadPhreaticLine2Inwards,
- PenetrationLength = input.LocationInputExtreme.PenetrationLength,
- AdjustPhreaticLine3And4ForUplift = input.AdjustPhreaticLine3And4ForUplift,
+ PenetrationLength = daily
+ ? input.LocationInputDaily.PenetrationLength
+ : input.LocationInputExtreme.PenetrationLength,
+ AdjustPhreaticLine3And4ForUplift = input.AdjustPhreaticLine3And4ForUplift
});
-
- IWaternetCalculator calculator = MacroStabilityInwardsCalculatorFactory.Instance
- .CreateWaternetExtremeCalculator(
- calculatorInput,
- MacroStabilityInwardsKernelWrapperFactory.Instance);
-
- try
- {
- WaternetCalculatorResult result = calculator.Calculate();
- return MacroStabilityInwardsWaternetConverter.Convert(result);
- }
- catch (WaternetCalculatorException)
- {
- return null;
- }
}
}
}
\ No newline at end of file