Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsOutputCalculationService.cs =================================================================== diff -u -r8047e7fd59525ed424105aaefc4ee88b9ae8def6 -r3739d94e5ef665dc97d80c8c3f7bc6ef4b19d93c --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsOutputCalculationService.cs (.../GrassCoverErosionInwardsOutputCalculationService.cs) (revision 8047e7fd59525ed424105aaefc4ee88b9ae8def6) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsOutputCalculationService.cs (.../GrassCoverErosionInwardsOutputCalculationService.cs) (revision 3739d94e5ef665dc97d80c8c3f7bc6ef4b19d93c) @@ -22,9 +22,7 @@ using System; using MathNet.Numerics.Distributions; using Ringtoets.Common.Data.Calculation; -using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.GrassCoverErosionInwards.Data; -using Ringtoets.Integration.Data; namespace Ringtoets.GrassCoverErosionInwards.Service { @@ -54,20 +52,22 @@ } /// - /// Calculates the given the , , and . + /// Calculates the given the , and . /// /// The calculation which is used. - /// The amount of contribution as a percentage [0-100] for the as part of the overall verdict. - /// The norm which has been defined on the . /// The reliability result. /// Thrown when is null. - public static void Calculate(GrassCoverErosionInwardsCalculation calculation, double norm, double contribution, double reliability) + public static void Calculate(GrassCoverErosionInwardsCalculation calculation, double reliability) { if (calculation == null) { throw new ArgumentNullException("calculation"); } - var calculator = new GrassCoverErosionInwardsOutputCalculationService(norm, contribution, calculation.NormProbabilityInput.N, reliability); + var calculator = new GrassCoverErosionInwardsOutputCalculationService( + calculation.NormProbabilityInput.Norm, + calculation.NormProbabilityInput.Contribution, + calculation.NormProbabilityInput.N, + reliability); calculator.Calculate(); @@ -89,30 +89,30 @@ private void CalculateReliability() { - requiredProbability = AllowedCrossSectionProbability(contribution, norm, lengthEffectN); - probability = AllowedCrossSectionProbability(reliability); + requiredProbability = RequiredProbability(contribution, norm, lengthEffectN); + probability = ReliabilityToProbability(reliability); } private void CalculateRequiredReliability() { - requiredReliability = RequiredReliability(requiredProbability); + requiredReliability = ProbabilityToReliability(requiredProbability); } #region Sub calculations - private static double AllowedCrossSectionProbability(double probability, double contribution, double factorN) + private static double RequiredProbability(double probability, double contribution, double lengthEffectN) { - return probability*(1/contribution)/factorN; + return probability*(1/contribution)/lengthEffectN; } - private static double AllowedCrossSectionProbability(double grassCoverErosionInwardsCrossSectionProbability) + private static double ReliabilityToProbability(double reliability) { - return new Normal().Density(grassCoverErosionInwardsCrossSectionProbability); + return Normal.CDF(0, 1, -reliability); } - private static double RequiredReliability(double allowedCrossSectionProbability) + private static double ProbabilityToReliability(double requiredProbability) { - return new Normal().InverseCumulativeDistribution(1 - allowedCrossSectionProbability); + return Normal.InvCDF(0, 1, 1 - requiredProbability); } private static double FactorOfSafety(double reliability, double requiredReliability)