Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Data/ClosingStructuresInput.cs
===================================================================
diff -u -r64fea503e6e9cacfb0ff8f22cfdd864b60c95bab -r95e3abaeaafd7cff28c902e0bd9298d0c6b7218a
--- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Data/ClosingStructuresInput.cs (.../ClosingStructuresInput.cs) (revision 64fea503e6e9cacfb0ff8f22cfdd864b60c95bab)
+++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Data/ClosingStructuresInput.cs (.../ClosingStructuresInput.cs) (revision 95e3abaeaafd7cff28c902e0bd9298d0c6b7218a)
@@ -84,8 +84,6 @@
Mean = (RoundedDouble) double.NaN,
StandardDeviation = (RoundedDouble) 0.1
};
-
- UpdateStructureProperties();
}
#region Structure
Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresInput.cs
===================================================================
diff -u -rabf027a3519fdb584ae797edd62f2baaab6d6968 -r95e3abaeaafd7cff28c902e0bd9298d0c6b7218a
--- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresInput.cs (.../StabilityPointStructuresInput.cs) (revision abf027a3519fdb584ae797edd62f2baaab6d6968)
+++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresInput.cs (.../StabilityPointStructuresInput.cs) (revision 95e3abaeaafd7cff28c902e0bd9298d0c6b7218a)
@@ -20,27 +20,20 @@
// All rights reserved.
using System;
-using System.Linq;
-using Core.Common.Base;
using Core.Common.Base.Data;
-using Core.Common.Base.Geometry;
-using Ringtoets.Common.Data.Calculation;
-using Ringtoets.Common.Data.DikeProfiles;
using Ringtoets.Common.Data.Probabilistics;
-using Ringtoets.HydraRing.Data;
+using Ringtoets.Common.Data.Structures;
using RingtoetsDataCommonProperties = Ringtoets.Common.Data.Properties.Resources;
namespace Ringtoets.StabilityPointStructures.Data
{
///
/// Class that holds all stability point structures calculation specific input parameters.
///
- public class StabilityPointStructuresInput : Observable, ICalculationInput
+ public class StabilityPointStructuresInput : StructuresInputBase
{
private readonly NormalDistribution insideWaterLevelFailureConstruction;
private readonly NormalDistribution insideWaterLevel;
- private readonly VariationCoefficientLogNormalDistribution stormDuration;
- private readonly NormalDistribution modelFactorSuperCriticalFlow;
private readonly NormalDistribution drainCoefficient;
private readonly NormalDistribution levelCrestStructure;
private readonly NormalDistribution thresholdHeightOpenWeir;
@@ -52,34 +45,24 @@
private readonly VariationCoefficientLogNormalDistribution failureCollisionEnergy;
private readonly VariationCoefficientNormalDistribution shipMass;
private readonly VariationCoefficientNormalDistribution shipVelocity;
- private readonly LogNormalDistribution allowedLevelIncreaseStorage;
- private readonly VariationCoefficientLogNormalDistribution storageStructureArea;
- private readonly LogNormalDistribution flowWidthAtBottomProtection;
- private readonly VariationCoefficientLogNormalDistribution criticalOvertoppingDischarge;
- private readonly VariationCoefficientNormalDistribution widthFlowApertures;
private readonly NormalDistribution bankWidth;
private readonly NormalDistribution flowVelocityStructureClosable;
- private ForeshoreProfile foreshoreProfile;
- private RoundedDouble structureNormalOrientation;
private RoundedDouble volumicWeightWater;
private RoundedDouble factorStormDurationOpenStructure;
private RoundedDouble evaluationLevel;
private RoundedDouble verticalDistance;
private double failureProbabilityRepairClosure;
private double probabilityCollisionSecondaryStructure;
- private double failureProbabilityStructureWithErosion;
///
/// Creates a new instance of .
///
public StabilityPointStructuresInput()
{
volumicWeightWater = new RoundedDouble(2, 9.81);
- structureNormalOrientation = new RoundedDouble(2, double.NaN);
factorStormDurationOpenStructure = new RoundedDouble(2, double.NaN);
failureProbabilityRepairClosure = double.NaN;
probabilityCollisionSecondaryStructure = double.NaN;
- failureProbabilityStructureWithErosion = double.NaN;
evaluationLevel = new RoundedDouble(2, 0);
verticalDistance = new RoundedDouble(2, double.NaN);
@@ -95,18 +78,6 @@
StandardDeviation = (RoundedDouble) 0.1
};
- stormDuration = new VariationCoefficientLogNormalDistribution(2)
- {
- Mean = (RoundedDouble) 6.0,
- CoefficientOfVariation = (RoundedDouble) 0.25
- };
-
- modelFactorSuperCriticalFlow = new NormalDistribution(2)
- {
- Mean = (RoundedDouble) 1.1,
- StandardDeviation = (RoundedDouble) 0.03
- };
-
drainCoefficient = new NormalDistribution(2)
{
Mean = (RoundedDouble) 1.0,
@@ -179,58 +150,16 @@
CoefficientOfVariation = (RoundedDouble) 0.2
};
- allowedLevelIncreaseStorage = new LogNormalDistribution(2)
- {
- Mean = (RoundedDouble) double.NaN,
- StandardDeviation = (RoundedDouble) 0.1
- };
-
- storageStructureArea = new VariationCoefficientLogNormalDistribution(2)
- {
- Mean = (RoundedDouble) double.NaN,
- CoefficientOfVariation = (RoundedDouble) 0.1
- };
-
- flowWidthAtBottomProtection = new LogNormalDistribution(2)
- {
- Mean = (RoundedDouble) double.NaN,
- StandardDeviation = (RoundedDouble) 0.05
- };
-
- criticalOvertoppingDischarge = new VariationCoefficientLogNormalDistribution(2)
- {
- Mean = (RoundedDouble) double.NaN,
- CoefficientOfVariation = (RoundedDouble) 0.15
- };
-
- widthFlowApertures = new VariationCoefficientNormalDistribution(2)
- {
- Mean = (RoundedDouble) double.NaN,
- CoefficientOfVariation = (RoundedDouble) 0.05
- };
-
bankWidth = new NormalDistribution(2)
{
Mean = (RoundedDouble) double.NaN,
StandardDeviation = (RoundedDouble) double.NaN
};
-
- UpdateForeshoreProperties();
}
- private static bool ValidProbabilityValue(double probability)
- {
- return !double.IsNaN(probability) && probability >= 0 && probability <= 1;
- }
-
#region Structure / calculation
-
+
///
- /// Gets or sets the stability point structure.
- ///
- public StabilityPointStructure StabilityPointStructure { get; set; }
-
- ///
/// Gets or sets the type of stability point structure inflow model.
///
public StabilityPointStructureInflowModelType InflowModelType { get; set; }
@@ -245,82 +174,6 @@
#region Hydraulic data
///
- /// Gets or sets the hydraulic boundary location from which to use the assessment level.
- ///
- public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; set; }
-
- #region Foreshore profile
-
- ///
- /// Gets or sets the foreshore profile.
- ///
- public ForeshoreProfile ForeshoreProfile
- {
- get
- {
- return foreshoreProfile;
- }
- set
- {
- foreshoreProfile = value;
- UpdateForeshoreProperties();
- }
- }
-
- ///
- /// Gets or sets whether the needs to be taken into account.
- ///
- public bool UseBreakWater { get; set; }
-
- ///
- /// Gets or sets whether the needs to be taken into account.
- ///
- public bool UseForeshore { get; set; }
-
- ///
- /// Gets the geometry of the foreshore.
- ///
- public RoundedPoint2DCollection ForeshoreGeometry
- {
- get
- {
- return foreshoreProfile != null
- ? foreshoreProfile.Geometry
- : new RoundedPoint2DCollection(2, Enumerable.Empty());
- }
- }
-
- ///
- /// Gets the .
- ///
- public BreakWater BreakWater { get; private set; }
-
- private void UpdateForeshoreProperties()
- {
- if (foreshoreProfile == null)
- {
- UseForeshore = false;
- UseBreakWater = false;
- BreakWater = GetDefaultBreakWaterProperties();
- }
- else
- {
- UseForeshore = foreshoreProfile.Geometry.Count() > 1;
- UseBreakWater = foreshoreProfile.HasBreakWater;
- BreakWater = foreshoreProfile.HasBreakWater ?
- new BreakWater(foreshoreProfile.BreakWater.Type, foreshoreProfile.BreakWater.Height) :
- GetDefaultBreakWaterProperties();
- }
- }
-
- private BreakWater GetDefaultBreakWaterProperties()
- {
- return new BreakWater(BreakWaterType.Dam, 0.0);
- }
-
- #endregion
-
- ///
/// Gets or sets the volumic weight of water.
/// [kN/m^3]
///
@@ -370,44 +223,11 @@
}
}
- ///
- /// Gets or sets the storm duration.
- /// [h]
- ///
- /// Only sets the mean.
- public VariationCoefficientLogNormalDistribution StormDuration
- {
- get
- {
- return stormDuration;
- }
- set
- {
- stormDuration.Mean = value.Mean;
- }
- }
-
#endregion
#region Model Inputs and critical values
-
+
///
- /// Gets or sets the model factor for super critical flow.
- ///
- /// Only sets the mean.
- public NormalDistribution ModelFactorSuperCriticalFlow
- {
- get
- {
- return modelFactorSuperCriticalFlow;
- }
- set
- {
- modelFactorSuperCriticalFlow.Mean = value.Mean;
- }
- }
-
- ///
/// Gets or sets the factor for the storm duration open structure.
///
public RoundedDouble FactorStormDurationOpenStructure
@@ -477,34 +297,6 @@
}
///
- /// Gets or sets the orientation of the normal of the structure.
- /// [degrees]
- ///
- /// Thrown when the value of the orientation is not between [0, 360] degrees.
- public RoundedDouble StructureNormalOrientation
- {
- get
- {
- return structureNormalOrientation;
- }
- set
- {
- if (double.IsNaN(value))
- {
- structureNormalOrientation = value.ToPrecision(structureNormalOrientation.NumberOfDecimalPlaces);
- return;
- }
-
- RoundedDouble newOrientation = value.ToPrecision(structureNormalOrientation.NumberOfDecimalPlaces);
- if (newOrientation < 0 || newOrientation > 360)
- {
- throw new ArgumentOutOfRangeException("value", RingtoetsDataCommonProperties.Orientation_Value_needs_to_be_between_0_and_360);
- }
- structureNormalOrientation = newOrientation;
- }
- }
-
- ///
/// Gets or sets the threshold height of the open weir.
/// [m+NAP]
///
@@ -706,112 +498,6 @@
}
///
- /// Gets or sets the allowed level increase of the storage volume.
- /// [m]
- ///
- public LogNormalDistribution AllowedLevelIncreaseStorage
- {
- get
- {
- return allowedLevelIncreaseStorage;
- }
- set
- {
- allowedLevelIncreaseStorage.Mean = value.Mean;
- allowedLevelIncreaseStorage.StandardDeviation = value.StandardDeviation;
- }
- }
-
- ///
- /// Gets or sets the storage structure area.
- /// [m^2]
- ///
- public VariationCoefficientLogNormalDistribution StorageStructureArea
- {
- get
- {
- return storageStructureArea;
- }
- set
- {
- storageStructureArea.Mean = value.Mean;
- storageStructureArea.CoefficientOfVariation = value.CoefficientOfVariation;
- }
- }
-
- ///
- /// Gets or sets the flow width at the bottom protection.
- /// [m]
- ///
- public LogNormalDistribution FlowWidthAtBottomProtection
- {
- get
- {
- return flowWidthAtBottomProtection;
- }
- set
- {
- flowWidthAtBottomProtection.Mean = value.Mean;
- flowWidthAtBottomProtection.StandardDeviation = value.StandardDeviation;
- }
- }
-
- ///
- /// Gets or sets the critical overtopping discharge.
- /// [m^2/s]
- ///
- public VariationCoefficientLogNormalDistribution CriticalOvertoppingDischarge
- {
- get
- {
- return criticalOvertoppingDischarge;
- }
- set
- {
- criticalOvertoppingDischarge.Mean = value.Mean;
- criticalOvertoppingDischarge.CoefficientOfVariation = value.CoefficientOfVariation;
- }
- }
-
- ///
- /// Gets or sets the failure probability of a structure with erosion.
- /// [1/year]
- ///
- /// Thrown when the probability is not in interval [0,1].
- public double FailureProbabilityStructureWithErosion
- {
- get
- {
- return failureProbabilityStructureWithErosion;
- }
- set
- {
- if (!ValidProbabilityValue(value))
- {
- throw new ArgumentOutOfRangeException("value", RingtoetsDataCommonProperties.FailureProbability_Value_needs_to_be_between_0_and_1);
- }
- failureProbabilityStructureWithErosion = value;
- }
- }
-
- ///
- /// Gets or sets the width of the flow apertures.
- /// [m]
- ///
- public VariationCoefficientNormalDistribution WidthFlowApertures
- {
- get
- {
- return widthFlowApertures;
- }
- set
- {
- widthFlowApertures.Mean = value.Mean;
- widthFlowApertures.CoefficientOfVariation = value.CoefficientOfVariation;
- }
- }
-
- ///
/// Gets or sets the bank width.
/// [m]
///
@@ -861,5 +547,37 @@
}
#endregion
+
+ protected override void UpdateStructureProperties()
+ {
+ if (Structure != null)
+ {
+ AllowedLevelIncreaseStorage = Structure.AllowedLevelIncreaseStorage;
+ AreaFlowApertures = Structure.AreaFlowApertures;
+ BankWidth = Structure.BankWidth;
+ ConstructiveStrengthLinearLoadModel = Structure.ConstructiveStrengthLinearLoadModel;
+ ConstructiveStrengthQuadraticLoadModel = Structure.ConstructiveStrengthQuadraticLoadModel;
+ CriticalOvertoppingDischarge = Structure.CriticalOvertoppingDischarge;
+ EvaluationLevel = Structure.EvaluationLevel;
+ FailureCollisionEnergy = Structure.FailureCollisionEnergy;
+ FailureProbabilityRepairClosure = Structure.FailureProbabilityRepairClosure;
+ FlowVelocityStructureClosable = Structure.FlowVelocityStructureClosable;
+ FlowWidthAtBottomProtection = Structure.FlowWidthAtBottomProtection;
+ InflowModelType = Structure.InflowModelType;
+ InsideWaterLevel = Structure.InsideWaterLevel;
+ InsideWaterLevelFailureConstruction = Structure.InsideWaterLevelFailureConstruction;
+ LevelCrestStructure = Structure.LevelCrestStructure;
+ LevellingCount = Structure.LevellingCount;
+ ProbabilityCollisionSecondaryStructure = Structure.ProbabilityCollisionSecondaryStructure;
+ ShipMass = Structure.ShipMass;
+ ShipVelocity = Structure.ShipVelocity;
+ StabilityLinearLoadModel = Structure.StabilityLinearLoadModel;
+ StabilityQuadraticLoadModel = Structure.StabilityQuadraticLoadModel;
+ StorageStructureArea = Structure.StorageStructureArea;
+ ThresholdHeightOpenWeir = Structure.ThresholdHeightOpenWeir;
+ VerticalDistance = Structure.VerticalDistance;
+ WidthFlowApertures = Structure.WidthFlowApertures;
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/Ringtoets.StabilityPointStructures.Data.Test.csproj
===================================================================
diff -u -r2efa0fbe22fee2482e1583a7d6f5ccfdf168f660 -r95e3abaeaafd7cff28c902e0bd9298d0c6b7218a
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/Ringtoets.StabilityPointStructures.Data.Test.csproj (.../Ringtoets.StabilityPointStructures.Data.Test.csproj) (revision 2efa0fbe22fee2482e1583a7d6f5ccfdf168f660)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/Ringtoets.StabilityPointStructures.Data.Test.csproj (.../Ringtoets.StabilityPointStructures.Data.Test.csproj) (revision 95e3abaeaafd7cff28c902e0bd9298d0c6b7218a)
@@ -91,6 +91,10 @@
{3D4B9740-8348-4434-8D77-B611FC6EE57F}
Ringtoets.StabilityPointStructures.Data
+
+ {E9AC095B-8F10-41D2-9456-4A85E3BA91AD}
+ Ringtoets.StabilityPointStructures.Data.TestUtil
+