def init_data(main): fsm = main.getEnkfFsManager() init_fs = fsm.getFileSystem("init") grid = main.eclConfig().getGrid() # Model: bhp = poro * 1000 poro_mean = 0.15 poro_std = 0.10 bhp_std = 125 # Model: wct = poro * 4 wct_std = 0.30 bhp = [] wct = [] num_realisations = main.getEnsembleSize() # The path fields/poro{}.grdecl must be consistent with the INIT_FILES: # argument in the PORO configuration in the configuration file used for the # testcase. os.mkdir("fields") random.seed(12345) for i in range(num_realisations): with open("fields/poro{}.grdecl".format(i), "w") as f: poro = random.gauss(poro_mean, poro_std) f.write("PORO") for i in range(grid.get_num_active()): if i % 10 == 0: f.write("\n") f.write("{:<7.5} ".format(poro)) f.write("\n/\n") bhp.append(poro * 1000 + random.gauss(0, bhp_std)) wct.append(poro * 4 + random.gauss(0, wct_std)) mask = [True] * main.getEnsembleSize() init_context = ErtRunContext.case_init(init_fs, mask) main.initRun(init_context) ens_config = main.ensembleConfig() bhp_config = ens_config["WBHP"] wct_config = ens_config["WWCT"] state_map = init_fs.getStateMap() for iens in range(main.getEnsembleSize()): bhp_node = EnkfNode(bhp_config) bhp_summary = bhp_node.as_summary() bhp_summary[1] = bhp[iens] wct_node = EnkfNode(wct_config) wct_summary = wct_node.as_summary() wct_summary[1] = wct[iens] node_id = NodeId(1, iens) bhp_node.save(init_fs, node_id) wct_node.save(init_fs, node_id) state_map[iens] = RealizationStateEnum.STATE_HAS_DATA return init_fs
def test_fs_init_from_scratch_deprecated(): res_config = ResConfig("snake_oil.ert") ert = EnKFMain(res_config) sim_fs = ert.getEnkfFsManager().getFileSystem("new_case") # new case mask = BoolVector.createFromList(25, [0, 1, 2, 3, 4, 5]) run_context = ErtRunContext.case_init(sim_fs, mask) with pytest.warns(DeprecationWarning): ert.getEnkfFsManager().initializeFromScratch( StringList(["SNAKE_OIL_PARAM"]), run_context) assert len(ert.getEnkfFsManager().getStateMapForCase("new_case")) == 6
def test_fs_init_from_scratch(): res_config = ResConfig("snake_oil.ert") ert = EnKFMain(res_config) sim_fs = ert.getEnkfFsManager().getFileSystem("new_case") mask = [True] * 6 + [False] * 19 run_context = ErtRunContext.case_init(sim_fs, mask) ert.getEnkfFsManager().initializeFromScratch( StringList(["SNAKE_OIL_PARAM"]), run_context) assert len(ert.getEnkfFsManager().getStateMapForCase("new_case")) == 6
def initializeCurrentCaseFromScratch(parameters, members): selected_parameters = StringList(parameters) mask = BoolVector(initial_size = getRealizationCount(), default_value = False) for member in members: member = int(member.strip()) mask[member] = True sim_fs = ERT.ert.getEnkfFsManager().getCurrentFileSystem() run_context = ErtRunContext.case_init(sim_fs, mask) ERT.ert.getEnkfFsManager().initializeFromScratch(selected_parameters, run_context) ERT.emitErtChange()
def initializeCurrentCaseFromScratch( parameters: List[str], members: List[str], ert: EnKFMain ): selected_parameters = StringList(parameters) mask = [False] * ert.getEnsembleSize() for member in members: member = int(member.strip()) mask[member] = True sim_fs = ert.getEnkfFsManager().getCurrentFileSystem() run_context = ErtRunContext.case_init(sim_fs, mask) ert.getEnkfFsManager().initializeFromScratch(selected_parameters, run_context)
def test_case_init(self): mask = [True] * 100 ErtRunContext.case_init(None, mask)
def test_case_init(self): mask = BoolVector(default_value=True, initial_size=100) context = ErtRunContext.case_init(None, mask)