Exemple #1
0
        /// <summary>
        /// Obtains the Hydra-Ring settings based on the location and the failure mechanism obtained from the <paramref name="calculationInput"/>
        /// and sets these value on the <paramref name="calculationInput"/>.
        /// </summary>
        /// <param name="calculationInput">The calculation input for which the settings are updated.</param>
        /// <param name="hydraulicBoundaryDatabaseFilePath">The path to the hydraulic boundary database file.</param>
        /// <param name="usePreprocessor">Indicator whether to use the preprocessor in the calculation.</param>
        /// <exception cref="ArgumentException">Thrown when the <paramref name="hydraulicBoundaryDatabaseFilePath"/>
        /// contains invalid characters.</exception>
        /// <exception cref="CriticalFileReadException">Thrown when:
        /// <list type="bullet">
        /// <item>No settings database file could be found at the location of <paramref name="hydraulicBoundaryDatabaseFilePath"/>
        /// with the same name.</item>
        /// <item>Unable to open settings database file.</item>
        /// <item>Unable to read required data from database file.</item>
        /// </list>
        /// </exception>
        public static void AssignSettingsFromDatabase(HydraRingCalculationInput calculationInput, string hydraulicBoundaryDatabaseFilePath, bool usePreprocessor)
        {
            IOUtils.ValidateFilePath(hydraulicBoundaryDatabaseFilePath);

            long   locationId = calculationInput.HydraulicBoundaryLocationId;
            string settingsDatabaseFileName = HydraulicBoundaryDatabaseHelper.GetHydraulicBoundarySettingsDatabase(hydraulicBoundaryDatabaseFilePath);

            using (var preprocessorSettingsProvider = new PreprocessorSettingsProvider(settingsDatabaseFileName))
            {
                calculationInput.PreprocessorSetting = preprocessorSettingsProvider.GetPreprocessorSetting(locationId, usePreprocessor);
            }

            using (var designTablesSettingsProviders = new DesignTablesSettingsProvider(settingsDatabaseFileName))
            {
                calculationInput.DesignTablesSetting = designTablesSettingsProviders.GetDesignTablesSetting(
                    locationId,
                    calculationInput.FailureMechanismType);
            }

            using (var numericsSettingsProvider = new NumericsSettingsProvider(settingsDatabaseFileName))
            {
                calculationInput.NumericsSettings = numericsSettingsProvider.GetNumericsSettings(
                    locationId,
                    calculationInput.FailureMechanismType);
            }

            using (var timeIntegrationSettingsProvider = new TimeIntegrationSettingsProvider(settingsDatabaseFileName))
            {
                calculationInput.TimeIntegrationSetting = timeIntegrationSettingsProvider.GetTimeIntegrationSetting(
                    locationId,
                    calculationInput.FailureMechanismType);
            }
        }
Exemple #2
0
 public void Constructor_ValidPath_ReturnsNewInstance()
 {
     // Call
     using (var provider = new NumericsSettingsProvider(completeDatabaseDataPath))
     {
         // Assert
         Assert.IsInstanceOf <IDisposable>(provider);
     }
 }
Exemple #3
0
        public void GetNumericsSettingForPreprocessor_LocationIdUnknown_ReturnsExpectedDefaultNumericsSetting()
        {
            // Setup
            using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath))
            {
                // Call
                NumericsSetting numericsSetting = numericsSettingsProvider.GetNumericsSettingForPreprocessor(700139);

                // Assert
                var expected = new NumericsSetting(11, 4, 150, 0.15, 0.005, 0.005, 0.005, 2, 10000, 40000, 0.1, -6.0, 6.0, 25);
                AssertNumericsSetting(expected, numericsSetting);
            }
        }
Exemple #4
0
        public void GetNumericsSettingForPreprocessor_PreprocessorSubMechanismIdUnknownDefaultSubMechanismIdKnown_ReturnExpectedNumericsSetting()
        {
            // Setup
            using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath))
            {
                // Call
                NumericsSetting numericsSetting = numericsSettingsProvider.GetNumericsSettingForPreprocessor(700138);

                // Assert
                NumericsSetting expected = GetExpectedNumericsSetting();
                AssertNumericsSetting(expected, numericsSetting);
            }
        }
Exemple #5
0
        public void GetNumericsSettingForPreprocessor_PreprocessorSubMechanismIdKnown_ReturnExpectedNumericsSetting()
        {
            // Setup
            using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath))
            {
                // Call
                NumericsSetting numericsSetting = numericsSettingsProvider.GetNumericsSettingForPreprocessor(700131);

                // Assert
                var expected = new NumericsSetting(2, 3, 20, 0.2, 0.1, 0.1, 0.1, 3, 4, 15000, 90000, 0.2, -4, 5);
                AssertNumericsSetting(expected, numericsSetting);
            }
        }
Exemple #6
0
        public void GetNumericsSettings_KnownLocationId_ReturnsExpectedNumericsSetting()
        {
            // Setup
            using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath))
            {
                // Call
                Dictionary <int, NumericsSetting> numericsSettings = numericsSettingsProvider.GetNumericsSettings(700132, HydraRingFailureMechanismType.AssessmentLevel);

                // Assert
                Assert.IsTrue(numericsSettings.ContainsKey(1));

                NumericsSetting expected = GetExpectedNumericsSetting();
                AssertNumericsSetting(expected, numericsSettings[1]);
            }
        }
Exemple #7
0
        public void GetNumericsSettings_UnknownLocationId_ReturnsExpectedDefaultNumericsSetting(
            HydraRingFailureMechanismType failureMechanismType, int subMechanismId, int expectedCalculationTechniqueId,
            int expectedFormStartMethod, int expectedDsMinNumberOfIterations, int expectedDsMaxNumberOfIterations)
        {
            // Setup
            using (var numericsSettingsProvider = new NumericsSettingsProvider(completeDatabaseDataPath))
            {
                // Call
                Dictionary <int, NumericsSetting> numericsSettings = numericsSettingsProvider.GetNumericsSettings(-1, failureMechanismType);

                // Assert
                Assert.IsTrue(numericsSettings.ContainsKey(subMechanismId));

                var expected = new NumericsSetting(expectedCalculationTechniqueId,
                                                   expectedFormStartMethod,
                                                   150, 0.15, 0.005, 0.005, 0.005, 2,
                                                   expectedDsMinNumberOfIterations,
                                                   expectedDsMaxNumberOfIterations,
                                                   0.1, -6.0, 6.0, 25);
                AssertNumericsSetting(expected, numericsSettings[subMechanismId]);
            }
        }