// Copyright (C) Stichting Deltares 2016. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Ringtoets.Common.Data; using Ringtoets.Common.Data.Probabilistics; namespace Ringtoets.HeightStructures.Data { /// /// Definition of a height structure for the . /// public class HeightStructure : StructureBase { /// /// Creates a new instance of . /// /// The name of the height structure. /// The identifier of the height structure. /// The location of the height structure. /// The orientation of the height structure, relative to north. /// The mean crest level of the height structure. /// The standard deviation of the crest level of the height structure. /// The mean flow width of the height structure at the bottom protection. /// The standard deviation of the flow width of the height structure at the bottom protection. /// The mean critical overtopping discharge of the height structure. /// The standard deviation of critical overtopping discharge of the height structure. /// The mean flow apertures width of the height structure. /// The standard deviation of flow apertures width of the height structure. /// The failure probability of the height structure, given erosion. /// The mean storage area of the height structure. /// The standard deviation of storage area of the height structure. /// The mean allowable increase of level for storage of the height structure. /// The standard deviation of allowable increase of level for storage of the height structure. /// Thrown when or is null /// , empty or consists of whitespace. /// Thrown when is null. public HeightStructure(string name, string id, Point2D location, double orientationOfTheNormalOfTheStructure, double levelOfCrestOfStructureMean, double levelOfCrestOfStructureStandardDeviation, double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeStandardDeviation, double widthOfFlowAperturesMean, double widthOfFlowAperturesStandardDeviation, double failureProbabilityOfStructureGivenErosion, double storageStructureAreaMean, double storageStructureAreaStandardDeviation, double allowableIncreaseOfLevelForStorageMean, double allowableIncreaseOfLevelForStorageStandardDeviation ) : base(name, id, location) { OrientationOfTheNormalOfTheStructure = new RoundedDouble(2, orientationOfTheNormalOfTheStructure); LevelOfCrestOfStructure = new NormalDistribution(2) { Mean = new RoundedDouble(2, levelOfCrestOfStructureMean), StandardDeviation = new RoundedDouble(2, levelOfCrestOfStructureStandardDeviation) }; FlowWidthAtBottomProtection = new LogNormalDistribution(2) { Mean = new RoundedDouble(2, flowWidthAtBottomProtectionMean), StandardDeviation = new RoundedDouble(2, flowWidthAtBottomProtectionStandardDeviation) }; CriticalOvertoppingDischarge = new LogNormalDistribution(2) { Mean = new RoundedDouble(2, criticalOvertoppingDischargeMean), StandardDeviation = new RoundedDouble(2, criticalOvertoppingDischargeStandardDeviation) }; WidthOfFlowApertures = new NormalDistribution(2) { Mean = new RoundedDouble(2, widthOfFlowAperturesMean), StandardDeviation = new RoundedDouble(2, widthOfFlowAperturesStandardDeviation) }; FailureProbabilityOfStructureGivenErosion = failureProbabilityOfStructureGivenErosion; StorageStructureArea = new LogNormalDistribution(2) { Mean = new RoundedDouble(2, storageStructureAreaMean), StandardDeviation = new RoundedDouble(2, storageStructureAreaStandardDeviation) }; AllowableIncreaseOfLevelForStorage = new LogNormalDistribution(2) { Mean = new RoundedDouble(2, allowableIncreaseOfLevelForStorageMean), StandardDeviation = new RoundedDouble(2, allowableIncreaseOfLevelForStorageStandardDeviation) }; } /// /// Gets the orientation of the height structure, relative to north. /// public RoundedDouble OrientationOfTheNormalOfTheStructure { get; private set; } /// /// Gets the crest level of the height structure. /// public NormalDistribution LevelOfCrestOfStructure { get; private set; } /// /// Gets the flow width of the height structure at the bottom protection. /// public LogNormalDistribution FlowWidthAtBottomProtection { get; private set; } /// /// Gets the critical overtopping discharge of the height structure. /// public LogNormalDistribution CriticalOvertoppingDischarge { get; private set; } /// /// Gets the flow apertures width of the height structure. /// public NormalDistribution WidthOfFlowApertures { get; private set; } /// /// Gets the failure probability of the height structure, given erosion. /// public double FailureProbabilityOfStructureGivenErosion { get; private set; } /// /// Gets the storage area of the height structure. /// public LogNormalDistribution StorageStructureArea { get; private set; } /// /// Gets the allowable increase of level for storage of the height structure. /// public LogNormalDistribution AllowableIncreaseOfLevelForStorage { get; private set; } } }