Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Importers/GrassCoverErosionInwardsCalculationConfigurationImporter.cs =================================================================== diff -u -rd347acb3d57c61fd3baa1e883551807417db6698 -r8a144ca2626854644292dbcefee440d066d9d2e8 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Importers/GrassCoverErosionInwardsCalculationConfigurationImporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporter.cs) (revision d347acb3d57c61fd3baa1e883551807417db6698) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Importers/GrassCoverErosionInwardsCalculationConfigurationImporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporter.cs) (revision 8a144ca2626854644292dbcefee440d066d9d2e8) @@ -26,6 +26,7 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.Common.IO.FileImporters; using Ringtoets.GrassCoverErosionInwards.Data; using Ringtoets.GrassCoverErosionInwards.IO.Properties; @@ -277,21 +278,30 @@ /// false otherwise. private bool TryReadCriticalWaveReduction(ReadGrassCoverErosionInwardsCalculation readCalculation, GrassCoverErosionInwardsCalculation calculation) { - return TryReadCriticalFlowRateMean(readCalculation, calculation) && TryReadCriticalFlowRateStandardDeviation(readCalculation, calculation); - } - - private bool TryReadCriticalFlowRateMean(ReadGrassCoverErosionInwardsCalculation readCalculation, GrassCoverErosionInwardsCalculation calculation) - { - if (!readCalculation.CriticalFlowRateMean.HasValue) + if (!readCalculation.CriticalFlowRateMean.HasValue || !readCalculation.CriticalFlowRateStandardDeviation.HasValue) { return true; } + double criticalFlowRateStandardDeviation = readCalculation.CriticalFlowRateStandardDeviation.Value; double criticalFlowRateMean = readCalculation.CriticalFlowRateMean.Value; + var distribution = new LogNormalDistribution(); + + if (!SetMean(distribution, criticalFlowRateMean, calculation.Name) || !SetStandardDeviation(distribution, criticalFlowRateStandardDeviation, calculation.Name)) + { + return false; + } + + calculation.InputParameters.CriticalFlowRate = distribution; + return true; + } + + private bool SetMean(LogNormalDistribution distribution, double criticalFlowRateMean, string calculationName) + { try { - calculation.InputParameters.CriticalFlowRate.Mean = (RoundedDouble) criticalFlowRateMean; + distribution.Mean = (RoundedDouble) criticalFlowRateMean; } catch (ArgumentOutOfRangeException e) { @@ -301,26 +311,19 @@ LogOutOfRangeException( errorMessage, - calculation.Name, + calculationName, e); return false; } return true; } - private bool TryReadCriticalFlowRateStandardDeviation(ReadGrassCoverErosionInwardsCalculation readCalculation, GrassCoverErosionInwardsCalculation calculation) + private bool SetStandardDeviation(LogNormalDistribution distribution, double criticalFlowRateStandardDeviation, string calculationName) { - if (!readCalculation.CriticalFlowRateStandardDeviation.HasValue) - { - return true; - } - - double criticalFlowRateStandardDeviation = readCalculation.CriticalFlowRateStandardDeviation.Value; - try { - calculation.InputParameters.CriticalFlowRate.StandardDeviation = (RoundedDouble) criticalFlowRateStandardDeviation; + distribution.StandardDeviation = (RoundedDouble) criticalFlowRateStandardDeviation; } catch (ArgumentOutOfRangeException e) { @@ -330,7 +333,7 @@ LogOutOfRangeException( errorMessage, - calculation.Name, + calculationName, e); return false;