// 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; using Ringtoets.HydraRing.Data; using Ringtoets.Piping.Data.Probabilistics; using Ringtoets.Piping.Data.Properties; namespace Ringtoets.Piping.Data { /// /// Class that holds all piping calculation input parameters. /// public class PipingInput : Observable { private double assessmentLevel; public const double SeepageLengthStandardDeviationFraction = 0.1; /// /// Initializes a new instance of the class. /// public PipingInput() { // Defaults as they have been defined in 'functional design semi-probabilistic assessments 1209431-008-ZWS-0009 Version 2 Final' UpliftModelFactor = 1.0; SellmeijerModelFactor = 1.0; WaterVolumetricWeight = 10.0; WhitesDragCoefficient = 0.25; SandParticlesVolumicWeight = 16.5; WaterKinematicViscosity = 1.33e-6; Gravity = 9.81; MeanDiameter70 = 2.08e-4; BeddingAngle = 37.0; SellmeijerReductionFactor = 0.3; CriticalHeaveGradient = 0.3; PhreaticLevelExit = new NormalDistribution(); DampingFactorExit = new LognormalDistribution { Mean = 1.0 }; ThicknessCoverageLayer = new LognormalDistribution(); SeepageLength = new LognormalDistribution(); SeepageLength.StandardDeviation = SeepageLength.Mean * SeepageLengthStandardDeviationFraction; Diameter70 = new LognormalDistribution(); DarcyPermeability = new LognormalDistribution(); ThicknessAquiferLayer = new LognormalDistribution(); } /// /// Gets or sets the reduction factor Sellmeijer. /// public double SellmeijerReductionFactor { get; set; } /// /// Gets or sets the volumetric weight of water. /// [kN/m³] /// public double WaterVolumetricWeight { get; set; } /// /// Gets or sets the (lowerbound) volumic weight of sand grain material of a sand layer under water. /// [kN/m³] /// public double SandParticlesVolumicWeight { get; set; } /// /// Gets or sets the White's drag coefficient. /// public double WhitesDragCoefficient { get; set; } /// /// Gets or sets the kinematic viscosity of water at 10 degrees Celsius. /// [m²/s] /// public double WaterKinematicViscosity { get; set; } /// /// Gets or sets the gravitational acceleration. /// [m/s²] /// public double Gravity { get; set; } /// /// Gets or sets the mean diameter of small scale tests applied to different kinds of sand, on which the formula of Sellmeijer has been fit. /// [m] /// public double MeanDiameter70 { get; set; } /// /// Gets or sets the angle of the force balance representing the amount in which sand grains resist rolling. /// [°] /// public double BeddingAngle { get; set; } /// /// Gets or sets the calculation value used to account for uncertainty in the model for uplift. /// public double UpliftModelFactor { get; set; } /// /// Gets or sets the outside high water level. /// [m] /// /// is . public double AssessmentLevel { get { return assessmentLevel; } set { if (double.IsNaN(value)) { throw new ArgumentException(Resources.PipingInput_AssessmentLevel_Cannot_set_to_NaN); } assessmentLevel = value; } } /// /// Gets or sets the piezometric head at the exit point. /// [m] /// public double PiezometricHeadExit { get; set; } /// /// Gets or sets the piezometric head in the hinterland. /// [m] /// public double PiezometricHeadPolder { get; set; } /// /// Gets or sets the calculation value used to account for uncertainty in the model for Sellmeijer. /// public double SellmeijerModelFactor { get; set; } /// /// Gets or sets the L-coordinate of the exit point. /// [m] /// public double ExitPointL { get; set; } #region Constants /// /// Gets or sets the critical exit gradient for heave. /// public double CriticalHeaveGradient { get; private set; } #endregion /// /// Gets or sets the surface line. /// public RingtoetsPipingSurfaceLine SurfaceLine { get; set; } /// /// Gets or sets the profile which contains a 1 dimensional definition of soil layers with properties. /// public PipingSoilProfile SoilProfile { get; set; } /// /// Gets or set the hydraulic boundary location from which to use the assessment level. /// public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; set; } #region Probabilistic parameters /// /// Gets or sets the phreatic level at the exit point. /// [m] /// public NormalDistribution PhreaticLevelExit { get; set; } /// /// Gets or sets the horizontal distance between entree and exit point. /// [m] /// public LognormalDistribution SeepageLength { get; set; } /// /// Gets or sets the sieve size through which 70% fraction of the grains of the top part of the aquifer passes. /// [m] /// public LognormalDistribution Diameter70 { get; set; } /// /// Gets or sets the Darcy-speed with which water flows through the aquifer layer. /// [m/s] /// public LognormalDistribution DarcyPermeability { get; set; } /// /// Gets or sets the thickness of the aquifer layer. /// [m] /// public LognormalDistribution ThicknessAquiferLayer { get; set; } /// /// Gets or sets the total thickness of the coverage layer at the exit point. /// [m] /// public LognormalDistribution ThicknessCoverageLayer { get; set; } /// /// Gets or sets the damping factor at the exit point. /// public LognormalDistribution DampingFactorExit { get; set; } #endregion } }