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