Index: Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticDerivedPipingInput.cs =================================================================== diff -u --- Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticDerivedPipingInput.cs (revision 0) +++ Riskeer/Piping/src/Riskeer.Piping.Data/SemiProbabilistic/SemiProbabilisticDerivedPipingInput.cs (revision 6687a9d5d766ec85f20c2c74a79ee510e68f59d3) @@ -0,0 +1,56 @@ +// Copyright (C) Stichting Deltares 2019. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer 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 Riskeer.Piping.InputParameterCalculation; + +namespace Riskeer.Piping.Data.SemiProbabilistic +{ + /// + /// Class responsible for calculating the derived semi-probabilistic piping input. + /// + public static class SemiProbabilisticDerivedPipingInput + { + /// + /// Gets the piezometric head at the exit point. + /// [m] + /// + /// The input to calculate the derived piping input for. + /// The assessment level at stake. + /// Thrown when is null. + /// Returns the corresponding derived input value. + public static RoundedDouble GetPiezometricHeadExit(PipingInput input, RoundedDouble assessmentLevel) + { + if (input == null) + { + throw new ArgumentNullException(nameof(input)); + } + + RoundedDouble dampingFactorExit = SemiProbabilisticPipingDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(); + RoundedDouble phreaticLevelExit = SemiProbabilisticPipingDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue(); + + return new RoundedDouble(2, InputParameterCalculationService.CalculatePiezometricHeadAtExit(assessmentLevel, + dampingFactorExit, + phreaticLevelExit)); + } + } +} \ No newline at end of file