Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs =================================================================== diff -u -r4222cb32d271503cc089ae68347771eb8449628f -rd0edc31646a3408dcb6116e8e5eedf86e4c51ea9 --- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (.../PipingCalculationService.cs) (revision 4222cb32d271503cc089ae68347771eb8449628f) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationService.cs (.../PipingCalculationService.cs) (revision d0edc31646a3408dcb6116e8e5eedf86e4c51ea9) @@ -56,20 +56,18 @@ CalculationServiceHelper.LogValidationBegin(); - var derivedPipingInput = new DerivedPipingInput(calculation.InputParameters); + CalculationServiceHelper.LogMessagesAsWarning(GetInputWarnings(calculation.InputParameters).ToArray()); - CalculationServiceHelper.LogMessagesAsWarning(GetInputWarnings(calculation.InputParameters, derivedPipingInput).ToArray()); + string[] inputValidationResults = ValidateInput(calculation.InputParameters).ToArray(); - string[] inputValidationResults = ValidateInput(calculation.InputParameters, derivedPipingInput).ToArray(); - if (inputValidationResults.Length > 0) { CalculationServiceHelper.LogMessagesAsError(inputValidationResults); CalculationServiceHelper.LogValidationEnd(); return false; } - List validationResults = new PipingCalculator(CreateInputFromData(calculation.InputParameters, derivedPipingInput), PipingSubCalculatorFactory.Instance).Validate(); + List validationResults = new PipingCalculator(CreateInputFromData(calculation.InputParameters), PipingSubCalculatorFactory.Instance).Validate(); CalculationServiceHelper.LogMessagesAsError(validationResults.ToArray()); CalculationServiceHelper.LogValidationEnd(); @@ -96,7 +94,7 @@ try { - PipingCalculatorResult pipingResult = new PipingCalculator(CreateInputFromData(calculation.InputParameters, new DerivedPipingInput(calculation.InputParameters)), + PipingCalculatorResult pipingResult = new PipingCalculator(CreateInputFromData(calculation.InputParameters), PipingSubCalculatorFactory.Instance).Calculate(); calculation.Output = new PipingOutput(new PipingOutput.ConstructionProperties @@ -124,11 +122,11 @@ } } - private static List ValidateInput(PipingInput inputParameters, DerivedPipingInput derivedPipingInput) + private static List ValidateInput(PipingInput inputParameters) { var validationResults = new List(); - validationResults.AddRange(ValidateHydraulics(inputParameters, derivedPipingInput)); + validationResults.AddRange(ValidateHydraulics(inputParameters)); IEnumerable coreValidationError = ValidateCoreSurfaceLineAndSoilProfileProperties(inputParameters); validationResults.AddRange(coreValidationError); @@ -140,13 +138,13 @@ if (!coreValidationError.Any()) { - validationResults.AddRange(ValidateSoilLayers(inputParameters, derivedPipingInput)); + validationResults.AddRange(ValidateSoilLayers(inputParameters)); } return validationResults; } - private static IEnumerable ValidateHydraulics(PipingInput inputParameters, DerivedPipingInput derivedPipingInput) + private static IEnumerable ValidateHydraulics(PipingInput inputParameters) { var validationResults = new List(); if (!inputParameters.UseAssessmentLevelManualInput && inputParameters.HydraulicBoundaryLocation == null) @@ -157,7 +155,8 @@ { validationResults.AddRange(ValidateAssessmentLevel(inputParameters)); - if (double.IsNaN(derivedPipingInput.PiezometricHeadExit) || double.IsInfinity(derivedPipingInput.PiezometricHeadExit)) + RoundedDouble piezometricHeadExit = DerivedPipingInput.GetPiezometricHeadExit(inputParameters); + if (double.IsNaN(piezometricHeadExit) || double.IsInfinity(piezometricHeadExit)) { validationResults.Add(Resources.PipingCalculationService_ValidateInput_Cannot_determine_PiezometricHeadExit); } @@ -203,10 +202,10 @@ return validationResults; } - private static IEnumerable ValidateSoilLayers(PipingInput inputParameters, DerivedPipingInput derivedPipingInput) + private static IEnumerable ValidateSoilLayers(PipingInput inputParameters) { var validationResults = new List(); - if (double.IsNaN(derivedPipingInput.ThicknessAquiferLayer.Mean)) + if (double.IsNaN(DerivedPipingInput.GetThicknessAquiferLayer(inputParameters).Mean)) { validationResults.Add(Resources.PipingCalculationService_ValidateInput_Cannot_determine_thickness_aquifer_layer); } @@ -266,7 +265,7 @@ return validationResult; } - private static List GetInputWarnings(PipingInput inputParameters, DerivedPipingInput derivedPipingInput) + private static List GetInputWarnings(PipingInput inputParameters) { var warnings = new List(); @@ -277,13 +276,13 @@ warnings.AddRange(GetMultipleAquiferLayersWarning(inputParameters, surfaceLineLevel)); warnings.AddRange(GetMultipleCoverageLayersWarning(inputParameters, surfaceLineLevel)); warnings.AddRange(GetDiameter70Warnings(inputParameters)); - warnings.AddRange(GetThicknessCoverageLayerWarnings(inputParameters, derivedPipingInput)); + warnings.AddRange(GetThicknessCoverageLayerWarnings(inputParameters)); } return warnings; } - private static IEnumerable GetThicknessCoverageLayerWarnings(PipingInput inputParameters, DerivedPipingInput derivedPipingInput) + private static IEnumerable GetThicknessCoverageLayerWarnings(PipingInput inputParameters) { var warnings = new List(); @@ -295,7 +294,7 @@ { warnings.Add(Resources.PipingCalculationService_ValidateInput_No_coverage_layer_at_ExitPointL_under_SurfaceLine); } - if (double.IsNaN(derivedPipingInput.ThicknessCoverageLayer.Mean)) + if (double.IsNaN(DerivedPipingInput.GetThicknessCoverageLayer(inputParameters).Mean)) { warnings.Add(Resources.PipingCalculationService_ValidateInput_Cannot_determine_thickness_coverage_layer); } @@ -346,7 +345,7 @@ !double.IsNaN(surfaceLineMissing.ExitPointL); } - private static PipingCalculatorInput CreateInputFromData(PipingInput inputParameters, DerivedPipingInput derivedPipingInput) + private static PipingCalculatorInput CreateInputFromData(PipingInput inputParameters) { return new PipingCalculatorInput( new PipingCalculatorInput.ConstructionProperties @@ -355,7 +354,7 @@ SaturatedVolumicWeightOfCoverageLayer = PipingSemiProbabilisticDesignVariableFactory.GetSaturatedVolumicWeightOfCoverageLayer(inputParameters).GetDesignValue(), UpliftModelFactor = inputParameters.UpliftModelFactor, AssessmentLevel = inputParameters.AssessmentLevel, - PiezometricHeadExit = derivedPipingInput.PiezometricHeadExit, + PiezometricHeadExit = DerivedPipingInput.GetPiezometricHeadExit(inputParameters), DampingFactorExit = PipingSemiProbabilisticDesignVariableFactory.GetDampingFactorExit(inputParameters).GetDesignValue(), PhreaticLevelExit = PipingSemiProbabilisticDesignVariableFactory.GetPhreaticLevelExit(inputParameters).GetDesignValue(), CriticalHeaveGradient = inputParameters.CriticalHeaveGradient,