Пример #1
0
    def run_ensemble_evaluator(self, run_context: ErtRunContext,
                               ee_config: EvaluatorServerConfig) -> int:
        if run_context.get_step():
            self.ert().eclConfig().assert_restart()

        ensemble = EnsembleBuilder.from_legacy(
            run_context,
            self.get_forward_model(),
            self._queue_config,
            self.ert().analysisConfig(),
            self.ert().resConfig(),
        ).build()

        self.ert().initRun(run_context)

        totalOk = EnsembleEvaluator(
            ensemble,
            ee_config,
            run_context.get_iter(),
            ee_id=str(uuid.uuid1()).split("-", maxsplit=1)[0],
        ).run_and_get_successful_realizations()

        for iens, run_arg in enumerate(run_context):
            if run_context.is_active(iens):
                if run_arg.run_status in (
                        RunStatusType.JOB_LOAD_FAILURE,
                        RunStatusType.JOB_RUN_FAILURE,
                ):
                    run_context.deactivate_realization(iens)

        run_context.get_sim_fs().fsync()
        return totalOk
Пример #2
0
    def run_ensemble_evaluator(self, run_context: ErtRunContext,
                               ee_config: EvaluatorServerConfig) -> int:
        if run_context.get_step():
            self.ert().eclConfig().assert_restart()

        iactive = run_context.get_mask()

        run_context.get_sim_fs().getStateMap().deselectMatching(
            iactive,
            RealizationStateEnum.STATE_LOAD_FAILURE
            | RealizationStateEnum.STATE_PARENT_FAILURE,
        )

        ensemble = create_ensemble_builder_from_legacy(
            run_context,
            self.get_forward_model(),
            self._queue_config,
            self.ert().analysisConfig(),
            self.ert().resConfig(),
        ).build()

        self.ert().initRun(run_context)

        totalOk = EnsembleEvaluator(
            ensemble,
            ee_config,
            run_context.get_iter(),
            ee_id=str(uuid.uuid1()).split("-")[0],
        ).run_and_get_successful_realizations()

        for i in range(len(run_context)):
            if run_context.is_active(i):
                run_arg = run_context[i]
                if (run_arg.run_status == RunStatusType.JOB_LOAD_FAILURE or
                        run_arg.run_status == RunStatusType.JOB_RUN_FAILURE):
                    run_context.deactivate_realization(i)

        run_context.get_sim_fs().fsync()
        return totalOk