// 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.Drawing; using Ringtoets.Piping.Primitives; namespace Ringtoets.Piping.IO.Builders { /// /// This class represents objects which were imported from a DSoilModel database. Instances of this class are transient and are not to be used /// once the DSoilModel database has been imported. /// internal class SoilLayer1D { /// /// Creates a new instance of . /// public SoilLayer1D(double top) { Top = top; } /// /// Gets the top level of the . /// public double Top { get; private set; } /// /// Gets or sets the double which represents whether the is an aquifer. /// public double? IsAquifer { get; set; } /// /// Gets or sets the volumic weight of the above the phreatic level. /// [kN/m³] /// public double? AbovePhreaticLevel { get; set; } /// /// Gets or sets the dry unit weight for the . /// public double? DryUnitWeight { get; set; } /// /// Gets or sets the name of the material that was assigned to the . /// public string MaterialName { get; set; } /// /// Gets or sets the value representing a color that was used to represent the . /// public double? Color { get; set; } /// /// Gets or sets the distribution for the volumic weight of the below the /// phreatic level. /// [kN/m³] /// public double? BelowPhreaticLevelDistribution { get; set; } /// /// Gets or sets the shift of the distribution for the volumic weight of the /// below the phreatic level. /// [kN/m³] /// public double? BelowPhreaticLevelShift { get; set; } /// /// Gets or sets the mean of the distribution for the volumic weight of the /// below the phreatic level. /// [kN/m³] /// public double? BelowPhreaticLevelMean { get; set; } /// /// Gets or sets the deviation of the distribution for the volumic weight of the below the phreatic level. /// [kN/m³] /// public double? BelowPhreaticLevelDeviation { get; set; } /// /// Gets or sets the distribution for 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? DiameterD70Distribution { get; set; } /// /// Gets or sets the shift of the distribution for 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? DiameterD70Shift { get; set; } /// /// Gets or sets the mean of the distribution for 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? DiameterD70Mean { get; set; } /// /// Gets or sets the deviation of the distribution for 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? DiameterD70Deviation { get; set; } /// /// Gets or sets the distribution for the Darcy-speed with which water flows through the aquifer layer. /// [m/s] /// public double? PermeabilityDistribution { get; set; } /// /// Gets or sets the shift of the distribution for the Darcy-speed with which water flows through the aquifer layer. /// [m/s] /// public double? PermeabilityShift { get; set; } /// /// Gets or sets the mean of the distribution for the the Darcy-speed with which water flows through the aquifer layer. /// [m/s] /// public double? PermeabilityMean { get; set; } /// /// Gets or sets the deviation of the distribution for the Darcy-speed with which water flows through the aquifer layer. /// [m/s] /// public double? PermeabilityDeviation { get; set; } /// /// Constructs a (1D) based on the properties set for the . /// /// The with properties corresponding to those set on the . internal PipingSoilLayer AsPipingSoilLayer() { return new PipingSoilLayer(Top) { AbovePhreaticLevel = AbovePhreaticLevel, BelowPhreaticLevel = BelowPhreaticLevelMean, DryUnitWeight = DryUnitWeight, IsAquifer = IsAquifer.HasValue && IsAquifer.Value.Equals(1.0), MaterialName = MaterialName ?? string.Empty, Color = SoilLayerColorConversionHelper.ColorFromNullableDouble(Color) }; } } }