Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructure.cs =================================================================== diff -u -r107c9d6382bd676d6c36f797a040988f7b324b0b -radd325fb1e135f779adf7c89446886ff15a9b17c --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructure.cs (.../StabilityPointStructure.cs) (revision 107c9d6382bd676d6c36f797a040988f7b324b0b) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructure.cs (.../StabilityPointStructure.cs) (revision add325fb1e135f779adf7c89446886ff15a9b17c) @@ -24,6 +24,7 @@ using Core.Common.Base.Geometry; using Ringtoets.Common.Data; using Ringtoets.Common.Data.Probabilistics; +using BaseConstructionProperties = Ringtoets.Common.Data.StructureBase.ConstructionProperties; namespace Ringtoets.StabilityPointStructures.Data { @@ -33,193 +34,117 @@ public class StabilityPointStructure : StructureBase { /// - /// Creates a new instance of . + /// Initializes a new instance of the class. /// - /// The name of the structure. - /// The identifier of the structure. - /// The location of the structure. - /// The orientation of the stability point structure, relative to north. - /// The mean of the storage area of the stability point structure. - /// The coefficient of variation of the storage area of the stability point structure. - /// The mean of the allowed increase of level for storage of the stability point structure. - /// The standard deviation of the allowed increase of level for storage of the stability point structure. - /// The mean of the width of the flow apertures of the stability point structure. - /// The coefficient of variation of the width of the flow apertures of the stability point structure. - /// The mean of the interior water level of the stability point structure. - /// The standard deviation of the interior water level of the stability point structure. - /// The mean of the threshold height of the opened stability point structure. - /// The standard deviation of the threshold height of the opened stability point structure. - /// The mean of the critical overtopping discharge of the stability point structure. - /// The coefficient of variation of the critical overtopping discharge of the stability point structure. - /// The mean of the flow width of the stability point structure at the bottom protection. - /// The standard deviation of the flow width of the stability point structure at the bottom protection. - /// The mean of the constructive strength of the linear load model of the stability point structure. - /// The coefficient of variation of the constructive strength of the linear load model of the stability point structure. - /// The mean of the constructive strength of the quadratic load model of the stability point structure. - /// The coefficient of variation of the constructive strength of the quadratic load model of the stability point structure. - /// The mean of the bank width of the stability point structure. - /// The standard deviation of the bank width of the stability point structure. - /// The mean of the inside water level failure construction of the stability point structure. - /// The standard deviation of the inside water level failure construction of the stability point structure. - /// The evaluation level of the stability point structure. - /// The mean of the crest level of the stability point structure. - /// The standard deviation of the crest level of the stability point structure. - /// The vertical distance of the stability point structure. - /// The probability of failing to repair a failed closure of the stability point structure. - /// The mean of the failure collision energy of the stability point structure. - /// The coefficient of variation of the failure collision energy of the stability point structure. - /// The mean of the mass of the ship. - /// The coefficient of variation of the mass of the ship. - /// The mean of the velocity of the ship. - /// The coefficient of variation of the velocity of the ship. - /// The levelling count. - /// The probability of a secondary collision on the stability point structure. - /// The mean of the maximum flow velocity at which the structure is closable. - /// The standard deviation of the maximum flow velocity at which the structure is closable. - /// The mean of the stability properties of the linear load model of the stability point structure. - /// The coefficient of variation of the stability properties of the linear load model of the stability point structure. - /// The mean of the stability properties of the quadratic load model of the stability point structure. - /// The coefficient of variation of the stability properties of the quadratic load model of the stability point structure. - /// The mean of the area of the flow aperture of the stability point structure. - /// The standard deviation of the area of the flow aperture of the stability point structure. - /// The type of stability point structure inflow model. - /// Thrown when or is null - /// , empty or consists of whitespace. - /// Thrown when is null. - /// When any stochastic variable parameter is out of its valid domain. - public StabilityPointStructure(string name, string id, Point2D location, - double structureNormalOrientation, - double storageStructureAreaMean, double storageStructureAreaCoefficientOfVariation, - double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, - double widthFlowAperturesMean, double widthFlowAperturesCoefficientOfVariation, - double insideWaterLevelMean, double insideWaterLevelStandardDeviation, - double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, - double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeCoefficientOfVariation, - double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, - double constructiveStrengthLinearLoadModelMean, double constructiveStrengthLinearLoadModelCoefficientOfVariation, - double constructiveStrengthQuadraticLoadModelMean, double constructiveStrengthQuadraticLoadModelCoefficientOfVariation, - double bankWidthMean, double bankWidthStandardDeviation, - double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation, - double evaluationLevel, - double levelCrestStructureMean, double levelCrestStructureStandardDeviation, - double verticalDistance, - double failureProbabilityRepairClosure, - double failureCollisionEnergyMean, double failureCollisionEnergyCoefficientOfVariation, - double shipMassMean, double shipMassCoefficientOfVariation, - double shipVelocityMean, double shipVelocityCoefficientOfVariation, - int levellingCount, - double probabilityCollisionSecondaryStructure, - double flowVelocityStructureClosableMean, double flowVelocityStructureClosableStandardDeviation, - double stabilityLinearLoadModelMean, double stabilityLinearLoadModelCoefficientOfVariation, - double stabilityQuadraticLoadModelMean, double stabilityQuadraticLoadModelCoefficientOfVariation, - double areaFlowAperturesMean, double areaFlowAperturesStandardDeviation, - StabilityPointStructureInflowModelType inflowModelType - ) - : base(name, id, location, structureNormalOrientation) + /// The construction properties. + /// Thrown when + /// or is null , empty or consists of whitespace. + /// Thrown when is null. + public StabilityPointStructure(ConstructionProperties constructionProperties) : base(constructionProperties) { StorageStructureArea = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) storageStructureAreaMean, - CoefficientOfVariation = (RoundedDouble) storageStructureAreaCoefficientOfVariation + Mean = constructionProperties.StorageStructureArea.Mean, + CoefficientOfVariation = constructionProperties.StorageStructureArea.CoefficientOfVariation }; AllowedLevelIncreaseStorage = new LogNormalDistribution(2) { - Mean = (RoundedDouble) allowedLevelIncreaseStorageMean, - StandardDeviation = (RoundedDouble) allowedLevelIncreaseStorageStandardDeviation + Mean = constructionProperties.AllowedLevelIncreaseStorage.Mean, + StandardDeviation = constructionProperties.AllowedLevelIncreaseStorage.StandardDeviation }; WidthFlowApertures = new VariationCoefficientNormalDistribution(2) { - Mean = (RoundedDouble) widthFlowAperturesMean, - CoefficientOfVariation = (RoundedDouble) widthFlowAperturesCoefficientOfVariation + Mean = constructionProperties.WidthFlowApertures.Mean, + CoefficientOfVariation = constructionProperties.WidthFlowApertures.CoefficientOfVariation }; InsideWaterLevel = new NormalDistribution(2) { - Mean = (RoundedDouble) insideWaterLevelMean, - StandardDeviation = (RoundedDouble) insideWaterLevelStandardDeviation + Mean = constructionProperties.InsideWaterLevel.Mean, + StandardDeviation = constructionProperties.InsideWaterLevel.StandardDeviation }; ThresholdHeightOpenWeir = new NormalDistribution(2) { - Mean = (RoundedDouble) thresholdHeightOpenWeirMean, - StandardDeviation = (RoundedDouble) thresholdHeightOpenWeirStandardDeviation + Mean = constructionProperties.ThresholdHeightOpenWeir.Mean, + StandardDeviation = constructionProperties.ThresholdHeightOpenWeir.StandardDeviation }; CriticalOvertoppingDischarge = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) criticalOvertoppingDischargeMean, - CoefficientOfVariation = (RoundedDouble) criticalOvertoppingDischargeCoefficientOfVariation + Mean = constructionProperties.CriticalOvertoppingDischarge.Mean, + CoefficientOfVariation = constructionProperties.CriticalOvertoppingDischarge.CoefficientOfVariation }; FlowWidthAtBottomProtection = new LogNormalDistribution(2) { - Mean = (RoundedDouble) flowWidthAtBottomProtectionMean, - StandardDeviation = (RoundedDouble) flowWidthAtBottomProtectionStandardDeviation + Mean = constructionProperties.FlowWidthAtBottomProtection.Mean, + StandardDeviation = constructionProperties.FlowWidthAtBottomProtection.StandardDeviation }; ConstructiveStrengthLinearLoadModel = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) constructiveStrengthLinearLoadModelMean, - CoefficientOfVariation = (RoundedDouble) constructiveStrengthLinearLoadModelCoefficientOfVariation + Mean = constructionProperties.ConstructiveStrengthLinearLoadModel.Mean, + CoefficientOfVariation = constructionProperties.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation }; ConstructiveStrengthQuadraticLoadModel = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) constructiveStrengthQuadraticLoadModelMean, - CoefficientOfVariation = (RoundedDouble) constructiveStrengthQuadraticLoadModelCoefficientOfVariation + Mean = constructionProperties.ConstructiveStrengthQuadraticLoadModel.Mean, + CoefficientOfVariation = constructionProperties.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation }; BankWidth = new NormalDistribution(2) { - Mean = (RoundedDouble) bankWidthMean, - StandardDeviation = (RoundedDouble) bankWidthStandardDeviation + Mean = constructionProperties.BankWidth.Mean, + StandardDeviation = constructionProperties.BankWidth.StandardDeviation }; InsideWaterLevelFailureConstruction = new NormalDistribution(2) { - Mean = (RoundedDouble) insideWaterLevelFailureConstructionMean, - StandardDeviation = (RoundedDouble) insideWaterLevelFailureConstructionStandardDeviation + Mean = constructionProperties.InsideWaterLevelFailureConstruction.Mean, + StandardDeviation = constructionProperties.InsideWaterLevelFailureConstruction.StandardDeviation }; - EvaluationLevel = new RoundedDouble(2, evaluationLevel); + EvaluationLevel = new RoundedDouble(2, constructionProperties.EvaluationLevel); LevelCrestStructure = new NormalDistribution(2) { - Mean = (RoundedDouble) levelCrestStructureMean, - StandardDeviation = (RoundedDouble) levelCrestStructureStandardDeviation + Mean = constructionProperties.LevelCrestStructure.Mean, + StandardDeviation = constructionProperties.LevelCrestStructure.StandardDeviation }; - VerticalDistance = new RoundedDouble(2, verticalDistance); - FailureProbabilityRepairClosure = new RoundedDouble(2, failureProbabilityRepairClosure); + VerticalDistance = new RoundedDouble(2, constructionProperties.VerticalDistance); + FailureProbabilityRepairClosure = new RoundedDouble(2, constructionProperties.FailureProbabilityRepairClosure); FailureCollisionEnergy = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) failureCollisionEnergyMean, - CoefficientOfVariation = (RoundedDouble) failureCollisionEnergyCoefficientOfVariation + Mean = constructionProperties.FailureCollisionEnergy.Mean, + CoefficientOfVariation = constructionProperties.FailureCollisionEnergy.CoefficientOfVariation }; ShipMass = new VariationCoefficientNormalDistribution(2) { - Mean = (RoundedDouble) shipMassMean, - CoefficientOfVariation = (RoundedDouble) shipMassCoefficientOfVariation + Mean = constructionProperties.ShipMass.Mean, + CoefficientOfVariation = constructionProperties.ShipMass.CoefficientOfVariation }; ShipVelocity = new VariationCoefficientNormalDistribution(2) { - Mean = (RoundedDouble) shipVelocityMean, - CoefficientOfVariation = (RoundedDouble) shipVelocityCoefficientOfVariation + Mean = constructionProperties.ShipVelocity.Mean, + CoefficientOfVariation = constructionProperties.ShipVelocity.CoefficientOfVariation }; - LevellingCount = levellingCount; - ProbabilityCollisionSecondaryStructure = new RoundedDouble(2, probabilityCollisionSecondaryStructure); + LevellingCount = constructionProperties.LevellingCount; + ProbabilityCollisionSecondaryStructure = new RoundedDouble(2, constructionProperties.ProbabilityCollisionSecondaryStructure); FlowVelocityStructureClosable = new NormalDistribution(2) { - Mean = (RoundedDouble) flowVelocityStructureClosableMean, - StandardDeviation = (RoundedDouble) flowVelocityStructureClosableStandardDeviation + Mean = constructionProperties.FlowVelocityStructureClosable.Mean, + StandardDeviation = constructionProperties.FlowVelocityStructureClosable.StandardDeviation }; StabilityLinearLoadModel = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) stabilityLinearLoadModelMean, - CoefficientOfVariation = (RoundedDouble) stabilityLinearLoadModelCoefficientOfVariation + Mean = constructionProperties.StabilityLinearLoadModel.Mean, + CoefficientOfVariation = constructionProperties.StabilityLinearLoadModel.CoefficientOfVariation }; StabilityQuadraticLoadModel = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) stabilityQuadraticLoadModelMean, - CoefficientOfVariation = (RoundedDouble) stabilityQuadraticLoadModelCoefficientOfVariation + Mean = constructionProperties.StabilityQuadraticLoadModel.Mean, + CoefficientOfVariation = constructionProperties.StabilityQuadraticLoadModel.CoefficientOfVariation }; AreaFlowApertures = new LogNormalDistribution(2) { - Mean = (RoundedDouble) areaFlowAperturesMean, - StandardDeviation = (RoundedDouble) areaFlowAperturesStandardDeviation + Mean = constructionProperties.AreaFlowApertures.Mean, + StandardDeviation = constructionProperties.AreaFlowApertures.StandardDeviation }; - InflowModelType = inflowModelType; + InflowModelType = constructionProperties.InflowModelType; } - + /// /// Gets the storage area of the stability point structure. /// [m^2] @@ -368,5 +293,186 @@ /// Gets the type of stability point structure inflow model. /// public StabilityPointStructureInflowModelType InflowModelType { get; private set; } + + /// + /// Class holding the various construction parameters for . + /// + public new class ConstructionProperties : BaseConstructionProperties + { + /// + /// Initializes a new instance of the class. + /// + public ConstructionProperties() + { + StorageStructureArea = new VariationCoefficientLogNormalDistribution(2); + AllowedLevelIncreaseStorage = new LogNormalDistribution(2); + WidthFlowApertures = new VariationCoefficientNormalDistribution(2); + InsideWaterLevel = new NormalDistribution(2); + ThresholdHeightOpenWeir = new NormalDistribution(2); + CriticalOvertoppingDischarge = new VariationCoefficientLogNormalDistribution(2); + FlowWidthAtBottomProtection = new LogNormalDistribution(2); + ConstructiveStrengthLinearLoadModel = new VariationCoefficientLogNormalDistribution(2); + ConstructiveStrengthQuadraticLoadModel = new VariationCoefficientLogNormalDistribution(2); + BankWidth = new NormalDistribution(2); + InsideWaterLevelFailureConstruction = new NormalDistribution(2); + LevelCrestStructure = new NormalDistribution(2); + FailureCollisionEnergy = new VariationCoefficientLogNormalDistribution(2); + ShipMass = new VariationCoefficientNormalDistribution(2); + ShipVelocity = new VariationCoefficientNormalDistribution(2); + FlowVelocityStructureClosable = new NormalDistribution(2); + StabilityLinearLoadModel = new VariationCoefficientLogNormalDistribution(2); + StabilityQuadraticLoadModel = new VariationCoefficientLogNormalDistribution(2); + AreaFlowApertures = new LogNormalDistribution(2); + } + + /// + /// Gets the storage area of the stability point structure. + /// [m^2] + /// + public VariationCoefficientLogNormalDistribution StorageStructureArea { get; private set; } + + /// + /// Gets the allowed increase of level for storage of the stability point structure. + /// [m] + /// + public LogNormalDistribution AllowedLevelIncreaseStorage { get; private set; } + + /// + /// Gets the width of the flow apertures of the stability point structure. + /// [m] + /// + public VariationCoefficientNormalDistribution WidthFlowApertures { get; private set; } + + /// + /// Gets the interior water level of the stability point structure. + /// [m+NAP] + /// + public NormalDistribution InsideWaterLevel { get; private set; } + + /// + /// Gets the threshold height of the opened stability point structure. + /// [m+NAP] + /// + public NormalDistribution ThresholdHeightOpenWeir { get; private set; } + + /// + /// Gets the critical overtopping discharge of the stability point structure. + /// [m^3/s/m] + /// + public VariationCoefficientLogNormalDistribution CriticalOvertoppingDischarge { get; private set; } + + /// + /// Gets the flow width of the stability point structure at the bottom protection. + /// [m] + /// + public LogNormalDistribution FlowWidthAtBottomProtection { get; private set; } + + /// + /// Gets the constructive strength of the linear load model of the stability point structure. + /// [kN/m^2] + /// + public VariationCoefficientLogNormalDistribution ConstructiveStrengthLinearLoadModel { get; private set; } + + /// + /// Gets the constructive strength of the quadratic load model of the stability point structure. + /// [kN/m] + /// + public VariationCoefficientLogNormalDistribution ConstructiveStrengthQuadraticLoadModel { get; private set; } + + /// + /// Gets the bank width of the stability point structure. + /// [m] + /// + public NormalDistribution BankWidth { get; private set; } + + /// + /// Gets the inside water level failure construction of the stability point structure. + /// [m+NAP] + /// + public NormalDistribution InsideWaterLevelFailureConstruction { get; private set; } + + /// + /// Gets the evaluation level of the stability point structure. + /// [m+NAP] + /// + public double EvaluationLevel { get; set; } + + /// + /// Gets the crest level of the stability point structure. + /// [m+NAP] + /// + public NormalDistribution LevelCrestStructure { get; private set; } + + /// + /// Gets the vertical distance of the stability point structure. + /// [m] + /// + public double VerticalDistance { get; set; } + + /// + /// Gets the probability of failing to repair a failed closure of the stability point structure. + /// [1/year] + /// + public double FailureProbabilityRepairClosure { get; set; } + + /// + /// Gets the failure collision energy of the stability point structure. + /// [kNm] + /// + public VariationCoefficientLogNormalDistribution FailureCollisionEnergy { get; private set; } + + /// + /// Gets the mass of the ship. + /// [tons] + /// + public VariationCoefficientNormalDistribution ShipMass { get; private set; } + + /// + /// Gets the velocity of the ship. + /// [m/s] + /// + public VariationCoefficientNormalDistribution ShipVelocity { get; private set; } + + /// + /// Gets the levelling count. + /// [1/year] + /// + public int LevellingCount { get; set; } + + /// + /// Gets the probability of a secondary collision on the structure. + /// [1/year/levelling] + /// + public double ProbabilityCollisionSecondaryStructure { get; set; } + + /// + /// Gets the maximum flow velocity at which the structure is closable. + /// [m/s] + /// + public NormalDistribution FlowVelocityStructureClosable { get; private set; } + + /// + /// Gets the stability properties of the linear load model of the stability point structure. + /// [kN/m^2] + /// + public VariationCoefficientLogNormalDistribution StabilityLinearLoadModel { get; private set; } + + /// + /// Gets the stability properties of the quadratic load model of the stability point structure. + /// [kN/m] + /// + public VariationCoefficientLogNormalDistribution StabilityQuadraticLoadModel { get; private set; } + + /// + /// Gets the area of the flow aperture of the stability point structure. + /// [m^2] + /// + public LogNormalDistribution AreaFlowApertures { get; private set; } + + /// + /// Gets the type of stability point structure inflow model. + /// + public StabilityPointStructureInflowModelType InflowModelType { get; set; } + } } } \ No newline at end of file