Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs =================================================================== diff -u --- Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (revision 0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -0,0 +1,148 @@ +// 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 Core.Common.Base; + +namespace Ringtoets.Piping.Data +{ + /// + /// Class that holds all the overarching piping calculation input parameters, e.g. the + /// values that apply for all calculations. + /// + public class GeneralPipingInput : Observable + { + /// + /// Initializes a new instance of the class. + /// + public GeneralPipingInput() + { + UpliftModelFactor = 1.0; + SellmeijerModelFactor = 1.0; + WaterVolumetricWeight = 10.0; + CriticalHeaveGradient = 0.3; + SandParticlesVolumicWeight = 16.5; + WhitesDragCoefficient = 0.25; + BeddingAngle = 37; + WaterKinematicViscosity = 1.33e-6; + Gravity = 9.81; + MeanDiameter70 = 2.08e-4; + SellmeijerReductionFactor = 0.3; + A = 1.0; + B = 350.0; + } + + #region Model Factors + + /// + /// Gets the calculation value used to account for uncertainty in the model for uplift. + /// + public double UpliftModelFactor { get; private set; } + + /// + /// Gets the calculation value used to account for uncertainty in the model for Sellmeijer. + /// + public double SellmeijerModelFactor { get; private set; } + + #endregion + + #region General parameters (use by multiple calculations) + + /// + /// Gets the volumetric weight of water. + /// [kN/m³] + /// + public double WaterVolumetricWeight { get; private set; } + + #endregion + + #region Heave specific parameters + + /// + /// Gets the critical exit gradient for heave. + /// + public double CriticalHeaveGradient { get; private set; } + + #endregion + + #region Sellmeijer specific parameters + + /// + /// Gets the (lowerbound) volumic weight of sand grain material of a sand layer + /// under water. + /// [kN/m³] + /// + public double SandParticlesVolumicWeight { get; private set; } + + /// + /// Gets the White's drag coefficient. + /// + public double WhitesDragCoefficient { get; private set; } + + /// + /// Gets the angle of the force balance representing the amount in which sand + /// grains resist rolling. + /// [°] + /// + public double BeddingAngle { get; private set; } + + /// + /// Gets the kinematic viscosity of water at 10 degrees Celsius. + /// [m²/s] + /// + public double WaterKinematicViscosity { get; private set; } + + /// + /// Gets the gravitational acceleration. + /// [m/s²] + /// + public double Gravity { get; private set; } + + /// + /// Gets 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; private set; } + + /// + /// Gets the reduction factor Sellmeijer. + /// + public double SellmeijerReductionFactor { get; private set; } + + #endregion + + #region Semi-probabilistic parameters + + /// + /// Gets 'a' parameter used to factor in the 'length effect' when determining the + /// maximum tolerated probability of failure. + /// + public double A { get; private set; } + + /// + /// Gets 'b' parameter used to factor in the 'length effect' when determining the + /// maximum tolerated probability of failure. + /// + public double B { get; private set; } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs =================================================================== diff -u -r80aeb6fb275f0d7ea3f470bb8ba0ef0fc5caa113 -r67fc75b9da1684eb22a425825f63354146f908f5 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision 80aeb6fb275f0d7ea3f470bb8ba0ef0fc5caa113) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -20,10 +20,12 @@ // All rights reserved. using System.Collections.Generic; + using Core.Common.Base; + using Ringtoets.Common.Data; using Ringtoets.Common.Placeholder; -using Ringtoets.Piping.Data.Properties; + using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; using PipingDataResources = Ringtoets.Piping.Data.Properties.Resources; @@ -40,15 +42,24 @@ public PipingFailureMechanism() : base(PipingDataResources.PipingFailureMechanism_DisplayName) { + GeneralInput = new GeneralPipingInput(); SurfaceLines = new ObservableList(); SoilProfiles = new ObservableList(); BoundaryConditions = new InputPlaceholder(RingtoetsCommonDataResources.FailureMechanism_BoundaryConditions_DisplayName); - var pipingCalculationGroup = new PipingCalculationGroup(Resources.PipingFailureMechanism_Calculations_DisplayName, false); + var pipingCalculationGroup = new PipingCalculationGroup(PipingDataResources.PipingFailureMechanism_Calculations_DisplayName, false); pipingCalculationGroup.Children.Add(new PipingCalculation()); CalculationsGroup = pipingCalculationGroup; AssessmentResult = new OutputPlaceholder(RingtoetsCommonDataResources.FailureMechanism_AssessmentResult_DisplayName); } + public override IEnumerable CalculationItems + { + get + { + return CalculationsGroup.GetPipingCalculations(); + } + } + /// /// Gets the available within the scope of the piping failure mechanism. /// @@ -74,12 +85,9 @@ /// public OutputPlaceholder AssessmentResult { get; private set; } - public override IEnumerable CalculationItems - { - get - { - return CalculationsGroup.GetPipingCalculations(); - } - } + /// + /// Gets the general piping calculation input parameters that apply to each piping calculation. + /// + public GeneralPipingInput GeneralInput { get; private set; } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs =================================================================== diff -u -rbbfd376aee76613b471f70d2b1214d7e7b08fb1f -r67fc75b9da1684eb22a425825f63354146f908f5 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision bbfd376aee76613b471f70d2b1214d7e7b08fb1f) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingInput.cs (.../PipingInput.cs) (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -28,7 +28,8 @@ namespace Ringtoets.Piping.Data { /// - /// Class that holds all piping calculation input parameters. + /// Class that holds all piping calculation specific input parameters, e.g. the values + /// that can differ various calculations. /// public class PipingInput : Observable { Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj =================================================================== diff -u -rdaf4bf00e8ea376485f54faa2fee8497607ddfb0 -r67fc75b9da1684eb22a425825f63354146f908f5 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision daf4bf00e8ea376485f54faa2fee8497607ddfb0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -54,6 +54,7 @@ Properties\GlobalAssembly.cs + Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -0,0 +1,38 @@ +using Core.Common.Base; + +using NUnit.Framework; + +namespace Ringtoets.Piping.Data.Test +{ + [TestFixture] + public class GeneralPipingInputTest + { + [Test] + public void Constructor_ExpectedValues() + { + // Call + var inputParameters = new GeneralPipingInput(); + + // Assert + Assert.IsInstanceOf(inputParameters); + + Assert.AreEqual(1.0, inputParameters.UpliftModelFactor); + Assert.AreEqual(1.0, inputParameters.SellmeijerModelFactor); + + Assert.AreEqual(10.0, inputParameters.WaterVolumetricWeight); + + Assert.AreEqual(0.3, inputParameters.CriticalHeaveGradient); + + Assert.AreEqual(16.5, inputParameters.SandParticlesVolumicWeight); + Assert.AreEqual(0.25, inputParameters.WhitesDragCoefficient); + Assert.AreEqual(37, inputParameters.BeddingAngle); + Assert.AreEqual(1.33e-6, inputParameters.WaterKinematicViscosity); + Assert.AreEqual(9.81, inputParameters.Gravity); + Assert.AreEqual(2.08e-4, inputParameters.MeanDiameter70); + Assert.AreEqual(0.3, inputParameters.SellmeijerReductionFactor); + + Assert.AreEqual(1.0, inputParameters.A); + Assert.AreEqual(350.0, inputParameters.B); + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs =================================================================== diff -u -r76ace4042e4e8a92a0ba37e8e9a9373ed6cea951 -r67fc75b9da1684eb22a425825f63354146f908f5 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision 76ace4042e4e8a92a0ba37e8e9a9373ed6cea951) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -27,6 +27,7 @@ // assert Assert.IsInstanceOf(piping); + Assert.IsInstanceOf(piping.GeneralInput); CollectionAssert.IsEmpty(piping.Sections); CollectionAssert.IsEmpty(piping.SurfaceLines); Assert.IsInstanceOf>(piping.SurfaceLines); Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs =================================================================== diff -u -rbbfd376aee76613b471f70d2b1214d7e7b08fb1f -r67fc75b9da1684eb22a425825f63354146f908f5 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision bbfd376aee76613b471f70d2b1214d7e7b08fb1f) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -1,8 +1,6 @@ using System; using Core.Common.Base; -using Core.Common.Base.Geometry; -using Core.Common.Base.Properties; using Core.Common.TestUtil; using NUnit.Framework; Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj =================================================================== diff -u -rdaf4bf00e8ea376485f54faa2fee8497607ddfb0 -r67fc75b9da1684eb22a425825f63354146f908f5 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision daf4bf00e8ea376485f54faa2fee8497607ddfb0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 67fc75b9da1684eb22a425825f63354146f908f5) @@ -59,6 +59,7 @@ +