Ejemplo n.º 1
0
    def test_default_target_case_name_format_mode(self):
        config_file = self.createTestPath('local/poly_example/poly.ert')
        with ErtTestContext('test_default_target_case_name_format_mode',
                            config_file) as work_area:
            ert = work_area.getErt()
            notifier = ErtCliNotifier(ert, config_file)
            ERT.adapt(notifier)

            args = Namespace(target_case=None)
            res = cli._target_case_name(args, format_mode=True)
            self.assertEqual("default_%d", res)
Ejemplo n.º 2
0
    def test_setup_ensemble_experiment(self):
        config_file = self.createTestPath('local/poly_example/poly.ert')
        with ErtTestContext('test_single_test_run', config_file) as work_area:
            ert = work_area.getErt()
            notifier = ErtCliNotifier(ert, config_file)
            ERT.adapt(notifier)

            model, argument = cli._setup_single_test_run()
            self.assertTrue(isinstance(model, EnsembleExperiment))
            self.assertEquals(1, len(argument.keys()))
            self.assertTrue("active_realizations" in argument)
Ejemplo n.º 3
0
    def test_custom_target_case_name(self):
        config_file = self.createTestPath('local/poly_example/poly.ert')
        with ErtTestContext('test_custom_target_case_name',
                            config_file) as work_area:
            ert = work_area.getErt()
            notifier = ErtCliNotifier(ert, config_file)
            ERT.adapt(notifier)

            custom_name = "test"
            args = Namespace(target_case=custom_name)
            res = cli._target_case_name(args)
            self.assertEqual(custom_name, res)
Ejemplo n.º 4
0
    def test_custom_realizations(self):
        config_file = self.createTestPath('local/poly_example/poly.ert')
        with ErtTestContext('test_custom_realizations',
                            config_file) as work_area:
            ert = work_area.getErt()
            notifier = ErtCliNotifier(ert, config_file)
            ERT.adapt(notifier)

            args = Namespace(realizations="0-4,7,8")
            res = cli._realizations(args)
            ensemble_size = ERT.ert.getEnsembleSize()
            mask = BoolVector(default_value=False, initial_size=ensemble_size)
            mask.updateActiveMask("0-4,7,8")
            self.assertEqual(mask, res)
Ejemplo n.º 5
0
    def test_setup_ensemble_smoother(self):
        config_file = self.createTestPath('local/poly_example/poly.ert')
        with ErtTestContext('test_single_test_run', config_file) as work_area:
            ert = work_area.getErt()
            notifier = ErtCliNotifier(ert, config_file)
            ERT.adapt(notifier)
            args = Namespace(realizations="0-4,7,8", target_case="test_case")

            model, argument = cli._setup_ensemble_smoother(args)
            self.assertTrue(isinstance(model, EnsembleSmoother))
            self.assertEquals(3, len(argument.keys()))
            self.assertTrue("active_realizations" in argument)
            self.assertTrue("target_case" in argument)
            self.assertTrue("analysis_module" in argument)
Ejemplo n.º 6
0
    def test_setup_multiple_data_assimilation(self):
        config_file = self.createTestPath('local/poly_example/poly.ert')
        with ErtTestContext('test_single_test_run', config_file) as work_area:
            ert = work_area.getErt()
            notifier = ErtCliNotifier(ert, config_file)
            ERT.adapt(notifier)
            args = Namespace(realizations="0-4,7,8",
                             weights="6,4,2",
                             target_case="test_case")

            model, argument = cli._setup_multiple_data_assimilation(args)
            self.assertTrue(isinstance(model, MultipleDataAssimilation))
            self.assertEquals(4, len(argument.keys()))
            self.assertTrue("active_realizations" in argument)
            self.assertTrue("target_case" in argument)
            self.assertTrue("analysis_module" in argument)
            self.assertTrue("weights" in argument)
Ejemplo n.º 7
0
Archivo: cli.py Proyecto: wouterjdb/ert
def run_cli(args):

    res_config = ResConfig(args.config)
    os.chdir(res_config.config_path)
    ert = EnKFMain(res_config, strict=True, verbose=args.verbose)
    notifier = ErtCliNotifier(ert, args.config)
    ERT.adapt(notifier)

    # Setup model
    if args.mode == 'test_run':
        model, argument = _setup_single_test_run()
    elif args.mode == 'ensemble_experiment':
        model, argument = _setup_ensemble_experiment(args)
    elif args.mode == 'ensemble_smoother':
        model, argument = _setup_ensemble_smoother(args)
    elif args.mode == 'es_mda':
        model, argument = _setup_multiple_data_assimilation(args)
    else:
        raise NotImplementedError("Run type not supported {}".format(
            args.mode))

    model.runSimulations(argument)