Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresInput.cs
===================================================================
diff -u -r20231cfee041a316978347564bd1fddbb41b9ffc -rb784ac8be54e88a798f4b7b7ad54ffe47b587e20
--- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresInput.cs (.../HeightStructuresInput.cs) (revision 20231cfee041a316978347564bd1fddbb41b9ffc)
+++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Data/HeightStructuresInput.cs (.../HeightStructuresInput.cs) (revision b784ac8be54e88a798f4b7b7ad54ffe47b587e20)
@@ -19,13 +19,296 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System;
using Core.Common.Base;
+using Core.Common.Base.Data;
using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Data.Probabilistics;
+using Ringtoets.HydraRing.Data;
namespace Ringtoets.HeightStructures.Data
{
///
/// Class that holds all height structures calculation specific input parameters.
///
- public class HeightStructuresInput : Observable, ICalculationInput {}
+ public class HeightStructuresInput : Observable, ICalculationInput
+ {
+ private readonly NormalDistribution levelOfCrestOfStructure;
+ private readonly GeneralHeightStructuresInput generalInputParameters;
+ private readonly NormalDistribution modelfactorOvertoppingSuperCriticalFlow;
+ private readonly LognormalDistribution allowableIncreaseOfLevelForStorage;
+ private readonly LognormalDistribution storageStructureArea;
+ private readonly LognormalDistribution flowWidthAtBottomProtection;
+ private readonly LognormalDistribution criticalOvertoppingDischarge;
+ private RoundedDouble orientationOfTheNormalOfTheStructure;
+ private RoundedDouble failureProbabilityOfStructureGivenErosion;
+ private readonly NormalDistribution widthOfFlowApertures;
+ private RoundedDouble deviationOfTheWaveDirection;
+ private readonly LognormalDistribution stormDuration;
+
+ ///
+ /// Creates a new instance of the class.
+ ///
+ /// General grass cover erosion inwards calculation input parameters that apply to each calculation.
+ /// When is null.
+ public HeightStructuresInput(GeneralHeightStructuresInput generalInputParameters)
+ {
+ if (generalInputParameters == null)
+ {
+ throw new ArgumentNullException("generalInputParameters");
+ }
+ this.generalInputParameters = generalInputParameters;
+
+ levelOfCrestOfStructure = new NormalDistribution(2)
+ {
+ StandardDeviation = new RoundedDouble(2, 0.05)
+ };
+
+ OrientationOfTheNormalOfTheStructure = new RoundedDouble(2);
+
+ modelfactorOvertoppingSuperCriticalFlow = new NormalDistribution(2)
+ {
+ Mean = new RoundedDouble(2, 1.1),
+ StandardDeviation = new RoundedDouble(2, 0.03)
+ };
+
+ allowableIncreaseOfLevelForStorage = new LognormalDistribution(2)
+ {
+ StandardDeviation = new RoundedDouble(2, 0.1)
+ };
+
+ storageStructureArea = new LognormalDistribution(2)
+ {
+ StandardDeviation = new RoundedDouble(2, 0.1)
+ };
+
+ flowWidthAtBottomProtection = new LognormalDistribution(2)
+ {
+ StandardDeviation = new RoundedDouble(2, 0.05)
+ };
+
+ criticalOvertoppingDischarge = new LognormalDistribution(2)
+ {
+ StandardDeviation = new RoundedDouble(2, 0.15)
+ };
+
+ widthOfFlowApertures = new NormalDistribution(2)
+ {
+ StandardDeviation = new RoundedDouble(2, 0.05)
+ };
+
+ deviationOfTheWaveDirection = new RoundedDouble(2);
+
+ stormDuration = new LognormalDistribution(2)
+ {
+ Mean = new RoundedDouble(2, 7.5), StandardDeviation = new RoundedDouble(2, 0.25)
+ };
+ }
+
+ #region Model Factors
+
+ public NormalDistribution ModelfactorOvertoppingSuperCriticalFlow
+ {
+ get
+ {
+ return modelfactorOvertoppingSuperCriticalFlow;
+ }
+ set
+ {
+ modelfactorOvertoppingSuperCriticalFlow.Mean = value.Mean.ToPrecision(modelfactorOvertoppingSuperCriticalFlow.Mean.NumberOfDecimalPlaces);
+ }
+ }
+
+ #endregion
+
+ #region Hydraulic pressure
+
+ ///
+ /// Gets or set the hydraulic boundary location from which to use the assessment level.
+ ///
+ public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; set; }
+
+ public RoundedDouble DeviationOfTheWaveDirection
+ {
+ get
+ {
+ return deviationOfTheWaveDirection;
+ }
+ set
+ {
+ deviationOfTheWaveDirection = value.ToPrecision(deviationOfTheWaveDirection.NumberOfDecimalPlaces);
+ }
+ }
+
+ ///
+ /// Gets or sets the storm duration
+ ///
+ public LognormalDistribution StormDuration
+ {
+ get
+ {
+ return stormDuration;
+ }
+ set
+ {
+ stormDuration.Mean = value.Mean.ToPrecision(stormDuration.Mean.NumberOfDecimalPlaces);
+ }
+ }
+
+ #endregion
+
+ #region Schematisation
+
+ public NormalDistribution LevelOfCrestOfStructure
+ {
+ get
+ {
+ return levelOfCrestOfStructure;
+ }
+ set
+ {
+ levelOfCrestOfStructure.Mean = value.Mean.ToPrecision(levelOfCrestOfStructure.Mean.NumberOfDecimalPlaces);
+ levelOfCrestOfStructure.StandardDeviation = value.StandardDeviation.ToPrecision(levelOfCrestOfStructure.StandardDeviation.NumberOfDecimalPlaces);
+ }
+ }
+
+ public RoundedDouble OrientationOfTheNormalOfTheStructure
+ {
+ get
+ {
+ return orientationOfTheNormalOfTheStructure;
+ }
+ set
+ {
+ orientationOfTheNormalOfTheStructure = value.ToPrecision(orientationOfTheNormalOfTheStructure.NumberOfDecimalPlaces);
+ }
+ }
+
+ public LognormalDistribution AllowableIncreaseOfLevelForStorage
+ {
+ get
+ {
+ return allowableIncreaseOfLevelForStorage;
+ }
+ set
+ {
+ allowableIncreaseOfLevelForStorage.Mean = value.Mean.ToPrecision(allowableIncreaseOfLevelForStorage.Mean.NumberOfDecimalPlaces);
+ allowableIncreaseOfLevelForStorage.StandardDeviation = value.StandardDeviation.ToPrecision(allowableIncreaseOfLevelForStorage.StandardDeviation.NumberOfDecimalPlaces);
+ }
+ }
+
+ public LognormalDistribution StorageStructureArea
+ {
+ get
+ {
+ return storageStructureArea;
+ }
+ set
+ {
+ storageStructureArea.Mean = value.Mean.ToPrecision(storageStructureArea.Mean.NumberOfDecimalPlaces);
+ storageStructureArea.StandardDeviation = value.StandardDeviation.ToPrecision(storageStructureArea.StandardDeviation.NumberOfDecimalPlaces);
+ }
+ }
+
+ public LognormalDistribution FlowWidthAtBottomProtection
+ {
+ get
+ {
+ return flowWidthAtBottomProtection;
+ }
+ set
+ {
+ flowWidthAtBottomProtection.Mean = value.Mean.ToPrecision(flowWidthAtBottomProtection.Mean.NumberOfDecimalPlaces);
+ flowWidthAtBottomProtection.StandardDeviation = value.StandardDeviation.ToPrecision(flowWidthAtBottomProtection.StandardDeviation.NumberOfDecimalPlaces);
+ }
+ }
+
+ public LognormalDistribution CriticalOvertoppingDischarge
+ {
+ get
+ {
+ return criticalOvertoppingDischarge;
+ }
+ set
+ {
+ criticalOvertoppingDischarge.Mean = value.Mean.ToPrecision(criticalOvertoppingDischarge.Mean.NumberOfDecimalPlaces);
+ criticalOvertoppingDischarge.StandardDeviation = value.StandardDeviation.ToPrecision(criticalOvertoppingDischarge.StandardDeviation.NumberOfDecimalPlaces);
+ }
+ }
+
+ public RoundedDouble FailureProbabilityOfStructureGivenErosion
+ {
+ get
+ {
+ return failureProbabilityOfStructureGivenErosion;
+ }
+ set
+ {
+ failureProbabilityOfStructureGivenErosion = value.ToPrecision(failureProbabilityOfStructureGivenErosion.NumberOfDecimalPlaces);
+ }
+ }
+
+ public NormalDistribution WidthOfFlowApertures
+ {
+ get
+ {
+ return widthOfFlowApertures;
+ }
+ set
+ {
+ widthOfFlowApertures.Mean = value.Mean.ToPrecision(widthOfFlowApertures.Mean.NumberOfDecimalPlaces);
+ widthOfFlowApertures.StandardDeviation = value.StandardDeviation.ToPrecision(widthOfFlowApertures.StandardDeviation.NumberOfDecimalPlaces);
+ }
+ }
+
+ #endregion
+
+ #region General input parameters
+
+ ///
+ /// Gets the gravitational acceleration.
+ ///
+ public RoundedDouble GravitationalAcceleration
+ {
+ get
+ {
+ return generalInputParameters.GravitationalAcceleration;
+ }
+ }
+
+ ///
+ /// Gets the model factor overtopping.
+ ///
+ public LognormalDistribution ModelfactorOvertopping
+ {
+ get
+ {
+ return generalInputParameters.ModelfactorOvertopping;
+ }
+ }
+
+ ///
+ /// Gets the model factor for storage volume.
+ ///
+ public LognormalDistribution ModelFactorForStorageVolume
+ {
+ get
+ {
+ return generalInputParameters.ModelFactorForStorageVolume;
+ }
+ }
+
+ ///
+ /// Gets the model factor for incoming flow volume.
+ ///
+ public RoundedDouble ModelFactorForIncomingFlowVolume
+ {
+ get
+ {
+ return generalInputParameters.ModelFactorForIncomingFlowVolume;
+ }
+ }
+
+ #endregion
+ }
}
\ No newline at end of file