Skip to content

Commit

Permalink
Split ERT 3 parameters into separate records
Browse files Browse the repository at this point in the history
  • Loading branch information
pinkwah committed Jun 15, 2021
1 parent 3769c09 commit 93ab252
Show file tree
Hide file tree
Showing 4 changed files with 241 additions and 86 deletions.
1 change: 1 addition & 0 deletions ert3/engine/_record.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,5 @@ def sample_record(
record_name=record_name,
ensemble_record=ensrecord,
experiment_name=experiment_name,
is_parameter=True,
)
18 changes: 14 additions & 4 deletions ert3/engine/_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,21 @@ def _prepare_experiment(
experiment_name: str,
ensemble: ert3.config.EnsembleConfig,
ensemble_size: int,
parameters_config: ert3.config.ParametersConfig,
) -> None:
if ert3.workspace.experiment_has_run(workspace_root, experiment_name):
raise ValueError(f"Experiment {experiment_name} have been carried out.")

parameter_names = [elem.record for elem in ensemble.input]
parameter_names = {elem.record for elem in ensemble.input}
parameters = {
param.name: list(param.variables)
for param in parameters_config
if param.name in parameter_names
}
ert3.storage.init_experiment(
workspace=workspace_root,
experiment_name=experiment_name,
parameters=parameter_names,
parameters=parameters,
ensemble_size=ensemble_size,
)

Expand Down Expand Up @@ -64,7 +70,9 @@ def _prepare_evaluation(
# This reassures mypy that the ensemble size is defined
assert ensemble.size is not None

_prepare_experiment(workspace_root, experiment_name, ensemble, ensemble.size)
_prepare_experiment(
workspace_root, experiment_name, ensemble, ensemble.size, parameters_config
)

for input_record in ensemble.input:
record_name = input_record.record
Expand Down Expand Up @@ -111,7 +119,9 @@ def _prepare_sensitivity(
)
input_records = ert3.algorithms.one_at_the_time(parameter_distributions)

_prepare_experiment(workspace_root, experiment_name, ensemble, len(input_records))
_prepare_experiment(
workspace_root, experiment_name, ensemble, len(input_records), parameters_config
)

parameters: Dict[str, List[ert3.data.Record]] = {
param.record: [] for param in ensemble.input
Expand Down
Loading

0 comments on commit 93ab252

Please sign in to comment.