Release Notes#
Version 8.0#
Highlighted changes#
Analysis keywords#
In this version of ERT we have cleaned up a lot of unused analysis keywords. Some have been deprecated, while others that were previously deprecated have now been removed. If they are present in your configuration, you will get a message in the suggestor at startup:
We encourage everyone to keep their configuration updated and remove and replace deprecated keywords.
Memory usage#
This release introduces the streaming algorithm, which updates a single parameter group at a time instead of updating all at once. This means ERT only needs to hold one parameter group in memory at a time, which significantly reduces memory usage when doing updates, without any effect to the result of the update.
Localization#
We have also added adaptive localisation for Ensemble smoother and ES-MDA, this can be activated by opening the analysis setting and checking the Adaptive localization check box. The correlation threshold can then be set, though a sensible default will be determined based on ensemble size. At a correlation threshold of 0.0 the update will be identical to no localization, while at a correlation threshold of 1.0 the posterior will be identical to the prior, and there will be no update. Note that the feature is still experimental, and any feedback is welcomed.
Delete run path#
We added an option to delete run path if it exists. Running in an existing run path can cause unintended side effects. For example ERT expects to read a number of files after the forward model has completed. If those files exists from a previous run, and for some reason the new forward model did not overwrite them, ERT will read outdated information. Example:
Note that if the run path is large, deleting it might take several minutes.
Details view in simulations panel#
There is a new tab in the Details view of the Run simulations panel, showing the progress of the update. While in most cases the update is fairly quick, if running with Adaptive localization, the run time will be longer, and this tab will show the progress.
Observations in storage#
We now store the observations used in an experiment in the internal ERT storage, making it easier to track which observations were active in a history match evaluation. Note, this means that workflows that relied on changing observations in memory will no longer have an effect.
Workflows stopping simulation#
We have added an option for workflows to stop an ERT experiment. Previously ERT would silently allow failures in workflows, however some workflows have a large impact on the outcome of an ERT experiment, and their failure means that the evaluation should stop.
Examples:
from ert import ErtScript
class AScript(ErtScript):
stop_on_fail = True
...
Or to .sh scripts like this:
#!/bin/bash
ekho helo wordl
STOP_ON_FAIL=TRUE
Or the workflow job declaration file:
STOP_ON_FAIL True
INTERNAL False
EXECUTABLE failing_script.sh
Change log#
- Breaking changes:
Make random seed be int only (link)
Add events and a GUI model for base_run_model (link)
Make createRunPath a stand alone function and clean up EnKFMain (link)
Remove unused max_running in ForwardModel (link)
Remove ENKF_FORCE_NCOMP and add deprecation for ENKF_NCOMP & ENKF_SUBSPACE_DIMENSION (link)
Remove unused keyword ENKF_BOOTSTRAP (link)
Remove unused keyword ENKF_MODE (link)
Remove USE_EE & USE_GE analysis keywords (link)
Remove cli option current-case for es-mda, as it had no effect (link)
- New features:
- Bugfixes:
Fix visible and copyable run_path stripped of placeholders (link)
Fix unable to use anything except iteration 0 for ensemble experiment (link)
Fix bug where field size with mask was wrong (link)
Fix a bug that would make webviz-ert crash (link)
Fix an issue where WORKFLOW_JOB_DIRECTORY would not handle subdirectories correctly (link)
Fix remote shell issue with new tmpfile behavior (link)
Fix iteration number changing when starting simulation (link)
Fix a GUI crash with a minimal configuration (link)
Prevent the possibility of starting multiple concurrent experiments (link)
Fix Ert GUI crashes on esc press (link)
Fix the realization number for the stdout and stderr files (link)
Fix iteration number in GUI when using ensemble experiment (link)
- Improvements:
Add queue option validation to queue config (link)
Set default case_name for ES_MDA when none provided (link)
Have restart_from combobox in es_mda be default disabled (link)
Fix bug where RANDOM_SEED was not taken into accout with multiple runs (link)
Replace analysismodule spinner with group of radiobuttons (link)
Disable add-cases-button when no case data (link)
Merge ForwardModel with ExtJob (link)
Keep run_dialog open on terminate experiment (link)
Remove sample_prior from EnKFMain and make it stand-alone (link)
Move shared rng to run models (link)
Add status missing to update snapshot (link)
Simplifies run models by removing statefullness and replacing with arguments (link)
Make torque driver compatible with slurm-wlm-torque (link)
Test torque driver through slurm (link)
Continuous updates of target case field (link)
Rewrite gui snapshot handling (link)
Remove current case from ensemble smoother (link)
Version 6.0#
- Breaking changes:
- Bugfixes:
Resolve timeout problems around running a high number of realizations (#5597)
Fix FLOW forward model (#5588)
Fix bug where log values were not included in facade function for gen kw (#5643)
Cover previously unhandled job queue state JOB_QUEUE_DO_KILL_NODE_FAILURE (#5667)
Fix plotting of parameters from ensembles made with manual update (#5700)
Fix bug with gen_kw templating (#5822)
Fix validation of general observations ERROR/VALUE (#5823)
Do no create experiment and case on start-up (#5799)
Fix an issue with double comments (#5824)
Fix incorrect suggestion for RUNPATH deprecation (#5856)
Fix error message for OBS_FILE not showing correct location (#5878)
Show a helpful error message when reading time map fails (#5882)
Several mitigations against crashes when running with many realizations (#5828)
Backport Fix INDEX_FILE reading (#5935)
Improved validation of the FIELD keyword (#5985)
Remove duplicates from summary files (#6117)
Fix bug where parameter names were not sorted (#5625)
Fix observations returned from dark storage (#5611)
Fix dimensions of surfaces and fields (#5660)
Fix bug in es-mda where returned variable could potentially be unbound (#5683)
Fix bug where all deactivated GEN_DATA would crash (#5784)
Fix ES-MDA iteration being 0 (#5846)
Fix bug where truncated normal was not truncated (#6110)
- New features:
- Improvements:
Save template for GenKW in experiment (#5719)
Rephrase start simulation button (#5746)
Add support for Python 3.11 (#5789)
Improve location info in error message (#5832)
Display meaningful message upon job queue failure (#5841)
Add parameter counts in the GUI (#5671)
Exit un-runnable job and fail job (#5865)
Validate that observation error is above 0 at startup (#5879)
Allow missing observations (#5658)
Only write mask to experiment, not full grid (#5665)
Allow multiple arguments in workflow job ARGLIST (#5704)
Remove websocket connection open/closed from logging (#5734)
Move time_map from cpp to python (#5793)
Validate field parameter at startup (#5869)
Store simulation arguments in experiment folder (#5710)
Make sure job_queue will not timeout when sending event (#5973)
Drop invalid values, dates when migrating SUMMARY (#6003)
Speed up summary loading (#6133)
- Miscellaneous:
Convert TransferFunction to dataclass (#5596)
Remove remnants of prefect (#5689)
Remove UPDATE_SETTINGS keyword (#5783)
Refactor JobQueue & JobQueueStatus (#5803)
Resolve RUNPATH deprecated warnings in generated tests (#5820)
Rename Forward models to Jobs in config summary (#5848)
Refactor JobQueue & JobQueueStatus (#5845)
Ensure that migrating EXT_PARAM throws (#5618)
Add logging messages to migration tool (#5624)
Remove addHelpToWidget (#5838)
Version 5.0#
- Breaking changes:
ECLBASE now behaves separately from JOBNAME (#5396)
New storage solution replacing enkf_fs (#5030)
Remove unused field export function (#5140)
Changed workflow substitutions to work the same as in the main config file (#5543)
Observations parser no longer supports include (#5575)
DEFINE with whitespace is treated a single key, not multiple (#5543)
- Bugfixes:
Make steplength settable again in IES (#5075)
Verify if active realizations is less than minimum set #5066)
Fix check for empty target case #5125)
Scale obs errors before outlier detection (#5126)
Fix bug where timed out realizations would be marked as success (#5113)
Raise expection if no file for refcase #5163)
Declare qsub jobs as not rerunnable (#5173)
Validate distribution parameters (#5160)
Solve race condition in qstat_proxy.sh (#5182)
Enable new parser DEFINE key to allow multiple arguments (#5193)
Fix strange GUI case name appearing for each run of EnsembleSmoother (#5223)
Fix test for missing response (#5274)
Change current working directory to config path #5499)
Interpret zero length output from qstat as failure (#5134)
Fix closing the RunDialog with a file open takes down the entire application (#5512)
Trust a nonzero exit value from qstat (#5534)
Guard against div-by-zero when min_required_realizations is zero #5547) -
- New features:
Added command line option to lint the configuration setup #5249)
- Improvements:
Move storage meta data from ensemble -> experiment (#5102)
Replace text for run button in ERT to ‘Open ERT’ #5184)
Collect config errors before displaying (#5235)
Raise ConfigValidationError if max running value or min_realization is not an integer (#5246)
Lower memory usage significantly when handling fields/grids (#5251)
Add progress updates to Run analysis (#4986)
Observation validation errors are now shown in GUI (#5385)
New parser for observations used by default (#5575)
Reduce memory usage by not unnecessarily creating a copy of the parameters (#5050)
Show Error in suggestor when unsupported non-UTF-8 characters are present in the DATA file (#5072)
- Miscellaneous:
Add timestamps to torque debug log statements (#5166)
Add some more logging #5321)
Remove duplicate installation from documentation (#5076)
Ensemble Config & Enkf Config Node refactor #5087)
Change weights via method instead of GUI during test (#5198)
Delete unnecessary test of gen_data_config (#5221)
Change Torque option TIMEOUT to QUEUE_QUERY_TIMEOUT (#5218)
Replace field_config.cpp and surface_config.cpp with dataclass (#5180)
Remove .DATA suffix from REFCASE path #5245)
Merge tests that were both updating field (#5175)
Avoid function call in arguments default (#5270)
Remove unused from summary_config (#5298)
Refactor gen_kw_config & trans_func #5265)
Dont show gui in tests by default (#5306)
Remove SCHEDULE_PREDICTION_FILE & GEN_KW PRED #5317)
Fix some function names #5313)
Refactor _generate_gen_kw_parameter_file #5335)
Explicitly use mixed format when converting to dates, avoiding warning (#5417)
Refactor GEN_DATA and SUMMARY configuration #5344)
Refactor gen_obs extraction of observation values #5439)
Refactor EnsembleConfig, EnkfConfigNode & ExtParamConfig #5436)
Remove config-node-meta structure, ErtImplType & EnkfVarType enums #5451)
Remove unused functions from C codebase #5490)
Refactor responses using dataclasses #5486)
ExtParamConfig and GenKwConfig refactor (#5472)
Remove unused: target format from gen_kw_config (#5496)
Clean up following gen_kw_config refactor (#5497)
Remove the ‘Initialize from existing’ tab #5522)
Remove unused facade functions (#5554)
Remove outdated docs (#5540)
Extend summary config to avoid observations adding response configuration (#5560)
Unpin SciPy in Ert #5570)
Fix bug where y and x increments were set to orientation (#5573)
- Other Changes
Fix bug where all deactivated GEN_DATA would crash (#5790)
Fix saving of fields to use less disk space (#5666)
Fix running workflows from CLI (#5068)
Show Error in suggestor when unsupported non-UTF-8 characters are present in the config file. (#5036)
Open storage inside BatchSimulator (#5071)
Rename instances of test_res_config.py to test_ert_config.py and test_ert_config_parsing.py (#5080)
Improve documentation for disable_monitoring (#5116)
Use case name as ensemble name (#5136)
Create hypothesis strategy for observations parsing (#5117)
Fix warning and errors not showing up together in the suggestor window (#5165)
Expose run information as environmental variables (#5127)
Clarify that GEN_KW does not support FORWARD_INIT (#5232)
Fix saving surface to file #5227)
Sort observation keys before analysis (#5259)
Fix flake8-bugbear’s B007 on unused loop control variables (#5286)
Bump the queue_query timeout in Torque driver (#5297)
Add documentation for ERTCASE as a magic string (#5250)
Use numpy vectorised funcs in TRANSFORM_FUNCTIONS (#5268)
Cleanup old summary key loading logic (#5329)
Evaluate min_realizations for ensemble_experiment #5339)
Allow quoted substrings as part of the FORWARD_MODEL arglist in new parser (#5327)
Add config path and file name to jobs.json (#5374)
Add environment variables on client (#5333)
Assign all unit tests using snake_oil_case_storage to same xdist thread (#5390)
Add to_dict to ParameterConfig #5372)
Test out type hints (#5392)
Flipping default parser means logging against old (#5402)
Refactor keyword handling with regard to meta-data creation (#5428)
Make default jobname <CONFIG_FILE> - (#5444)
Completely Simplify gen observation (#5493)
Simplify obs_vector (#5504)
Fix –show-gui (#5503)
Make creating jobs.json faster (#5513)
Fix an issue where del raises (#5514)
Add migration from BlockFs storage (#4937)
Fix typos in docs (#5492)
Fix order of arguments to parse_arg_types_list (#5536)
Add active information loading (#5326)
Migration fails gracefully (#5532)
Use xarray/netcdf for surfaces (#5508)
Generalise parameters in storage (#5401)
Do not add _prior suffix to ES runs (#5594)
Version 4.1#
- Breaking changes:
Disable automatic resize of state-map when setting outside map size (#3951)
Remove the GEN_PARAM keyword (#3867)
Move init and storing of GEN_KW form C to python (#3943)
Simplify EclConfig (#3919)
Change default runpath (#4019)
Remove no longer used min std (#4057)
Remove RSH queue driver (#3962)
Replace libecl RNG with numpy.random.Generator (#4033)
- Bugfixes:
Make default ensemble path consistent (#3982)
Update torque driver to handle finished jobs (#3880)
Fix bug where extra case is created when running ies (#4049)
Make sure loading gui produces just one storage folder (#4053)
Add grid and grid_file properties back to libres_facade (#4063)
Disable “Start simulation” button while running simulations (#4080)
Show restart button when all realisations fail (#4113)
Propagate error messages from job_queue_node (#4127)
Propagate qstat options to qstat executable (#4138)
- New features:
Consume Protobuf events from dispatcher and pass them to the statemachine (#3733)
- Improvements:
Improve test coverage of ok callback (#3860)
Raise exception if size of gen_kw in storage differs with gen_kw_config (#3984)
Save parameters to in-memory storage between update-steps (#4026)
Show loading cursor when loading from runpath (#4094)
Support Torque job id without a dot character (#3911)
Improve error message if a parameter is missing from storage (#4119)
Move lock file to ENSPATH (#4122)
Mute external DEBUG messages (#3981)
Speed up realizations by moving ert.job_runner to _ert_job_runner (#4076)
- Dependencies:
- Miscellaneous:
Log experiment type and size when a run model is instantiated (#3967)
Remove unused function weakref from EnkfFs (#3989)
Remove copyright notices in .py, .cpp and .hpp files (#3582)
Change num cpu interface / usage and default value (#3988)
Remove outdated GEN_DATA docs (#3997)
Move enkf logic from enkf_main to fs_manager (#3807)
Remove unused code related to enkf_node (#4066)
Remove HistorySourceEnum.SCHEDULE (#4097)
Move Eclipse Grid and Refcase to EnsembleConfig (#4100)
Remove bunch of stuff from ensemble config (#4075)
Initialize res config form minimal dictionary (#3952)
Make default __repr__ on BaseCClasses (#3963)
Add automatic typecasting from cwrap to C++` (#3971)
Ignore type errors in key_manager (#3973)
Convert equinor test to local test (#3961)
Update snake oil field test (#3983)
Remove local folder from test-data (#3996)
Simplify queue_config (#3957)
Simplify site config (#4003)
Simplify ert config builder (#4022)
Simplify run workflows (#4009)
Simplify analysis config (#4034)
Remove unused hook_manager_run_workflow (#4008)
Document the ERT Storage Server database model (#3683)
Remove hook manager (#4012)
Pass site config to workflow list (#4016)
Fix test_config_parsing generation and site config (#4023)
Fix ext joblist (#4025)
Fix ModelConfig default runpathformat (#4029)
Remove collectors and keymanager (#4027)
Remove unused functionality from plot_data (#4031)
Fix missing config_node free function (#4058)
Move forward_model_ok into Python (#4038)
Update ConfigContent to_dict functionality (#4052)
Remove libecl-style “type-safety” (#4051)
Remove references to Equinor test data (#4040)
Undeprecate the DATA_FILE keyword and add documentation (#4017)
Job runner yields Running event only when memory consumption has significant change (#4067)
Remove WORKFLOW and FORWARD_MODEL before logging user config (#4085)
Rename tests directories (#4030)
Setup log file for job_dispatch logger (#3999)
Update webviz-ert documentation (#4090)
log_process_usage in finally rather than atexit (#4087)
Delete site config c code (#4020)
Update documentation of HISTORY_OBSERVATION > ERROR (#4032)
Emit deprecation warning for non-ISO dates in observation config files (#3958)
Update docs for DATA_FILE (#4104)
Analysis iter config pure dataclass (#4082)
Make forward_model only called from python (#4137)
Fix komodo tests (#4142)
Move C implementation for ies_config analysis_config and analysis_module in python (#4133)
Account for instance where ERT config file has MAX_RUNTIME defined multiple times (#4147)
Version 4.0#
- Breaking changes:
- Bugfixes:
- New features:
- Improvements:
- Dependencies:
- Miscellaneous:
Move rng creation to python (#3843)
Remove unused template (#3827)
Remove unused function state_map::count_matching (#3549)
Mute matplotlib debug messages (#3826)
Remove Title Case from documentation (#3821)
Fix typo and formatting in keyword documentation (#3818)
Test update with externally sampled params (#3722)
Remove unused strict-keyword from EnkfMain (#3835)
Remove unused functions in queue.py and enkf_config_node.py (#3852)
Test update with INIT_FILES and FORWARD_INIT (#3846)
Mute connection closed error from websocket (#3814)
Close stdin/stdout/stderr files when done (#3849)
Remove getters only used in tests from enkf_main.cpp (#3895)
Remove non-functional private mode for EnkfNode (#3874)
Move enkf_fs method from enkf_main to enkf_fs (#3900)
Move parameter keys to ensemble_config (#3901)
Solve pylint consider-using-with (#3850)
enkf_obs clean-up (#3917)
Clean-up of enkf_node (#3926)
Remove enkf_main from C (#3924)
Solve and enforce 9 pylint messages (#3730)
Solve pylint issue no-member (#3851)
Remove ert3 (#3877)
Fix unnecessary cast from const double to double (#3832)
Propagate ensemble id for source when building (#3793)
Update documentation of SUMMARY keyword (#3824)
Remove unused function enkf_main_load_obs (#3853)
Allow c++ as compiler in build script (#3794)
Disable flaky test (#3869)
Fix config reprs (#3876)
Generate experiment_id and propagate to communication channels (#3811)
Remove some remaining references to libres (#3878)
Remove deprecation limit on ert.data.loader.load_general_data and load.summary.data (#3883)
Move responsibility of creating the log folder into the writing of the update report logic (#3866)
Minor config fixes (#3858)
Remove ert_test_context (#3879)
Replace unittest with pytest (#3888)
Remove unused function get_observations from EnKFMain (#3891)
Remove unused but declared exceptions (#3896)
Remove unused history functions (#3894)
Resolve some mypy typing issues (#3898)
Consolidate unit tests (#3899)
Move storage_service.json to enspath and propagate the ensepath when starting the webviz_ert service (#3890)
Simplify res config (#3908)
Reconcile location in tests and location in src (#3914)
Remove rng_config (#3920)
Remove c usage of res_config (#3922)
Remove reading of site_config directly from file (#3931)
Remove direct init of job_queue from file (#3933)
Remove unused analysis_config directly from file (#3932)
Add string representation of ResConfig (#3928)
Consolidate config file and dict paths for substitution config (#3887)
Remove unused model config functions (#3934)
Convert equinor test to local test (#3944)
Clean up unused c code and superfluous extern “C” (#3941)
Fix experiment server iterated ensemble smoother (#3950)
Initialize AnalysisIterConfig from dict (#3946)
Simplify which keywords are added for parsing (#3942)
Make enkf_main.log_seed more C++ (#3945)
Remove RSH_DRIVER from test config dict generation (#3955)
Version 3.0#
- Breaking changes:
Remove END_DATE keyword (#3737)
Remove RFTPATH keyword (#3746)
Remove REFCASE_LIST keyword (#3745)
Remove PRED as a reserved name for GEN_KW (#3820)
Change dates written by ERT to ISO-8601 (#3755)
Fix the logging path when running the GUI (#3772)
Simplify ErtRunContext and rename to RunContext (#3660)
Remove workflows related to case management (#3687)
Remove unused workflows EXPORT_FIELD (#3715)
Remove last internal C workflows EXIT_ERT and PRE_SIMULATION_COPY (#3716)
Use src/ directory for packages (#3633)
Move ert3 to ert/ert3 (#3648)
Move ert3 examples (#3652)
Move ert_logging to ert.logging (#3654)
Move ert_data to ert.data (#3655)
Move ert_shared to ert.shared (#3752)
Move job_runner to ert.job_runner (#3684)
Move ert_gui -> ert/gui (#3625)
Move res and make private (#3761)
Move out res.test.synthesizer to separate package oil_reservoir_synthesizer by (#3696)
Refactor ert/analysis import structure (#3665)
Remove case-log file (#3779)
Join EnKFMain, _RealEnKFMain, EnkfFsManager and EnkfJobRunner in python (#3705)
Remove enkf_main alloc enkf_fs from symlink (#3773)
Change how EnkfFs classmethod is instantiated (#3777)
Move runSimpleStep from enkf_main to simulation_context and make private (#3785)
Remove hidden case concept (#3786)
- Bugfixes:
Retry qsub and qstat in case of failures (#3537)
- New features:
- Improvements:
Add proxy script for qstat (#3553)
Send fewer but larger dataChanged signals (#3605)
Stop logging to stderr in the config_parser (#3753)
Use standard Qt APIs in GUI proxy models (#3615)
Sort messages in simulation panel so they more likely ordered by realization (#3641)
Fix the logging path when running the GUI (#3772)
- Deprecations:
Deprecated DATA_FILE keyword (https://github.com/equinor/ert/pull/3751)
- Miscellaneous:
Fix flaky test for qstat concurrency (#3738)
Remove forward load context (#3728)
Replace util_binary_split_string with standard C++ (#3702)
Move docs/rst/manual/ to docs/ (#3692)
Solve pylint issue consider-using-generator (#3585)
Move handling of runpath and substitutions to python (#3583)
Solve pylint issue arguments-renamed (#3586)
Add annotation of errors (#3626)
Use –strict_markers for pytest (#3664)
Clean up ResTest and convert some tests to pytest (#3635)
Remove warning about use of restart (#3632)
Remove py36 specifics in tests (#3672)
Ensure jenkins tests see pyproject.toml (#3668)
Remove wrappers of run_arg_alloc (#3666)
Make IES-implementation similar to paper (#3122)
Remove unused callback_arg (#3675)
Add missing logger-method to _Proc (#3686)
Remove res_config getters from EnKFMain (#3679)
Remove outdated GUI resources (#3689)
Remove python implementation of ForwardLoadContext (#3694)
Remove outdated install script (#3695)
Move test_stop_running into test_job_queue (#3709)
Change enkf main init (#3690)
Fix flaky bug in test_ert_qstat_proxy (#3731)
Adjust the still flaky qstat_concurrent_invocations (#3744)
Replace internal C tests with pytest (#3741)
Update default branch name in README (#3742)
Remove unnecessary fixtures (#3735)
Remove unused function enkf_config_node_get_FIELD_fill_file (#3721)
Solve warnings emitted during pytesting (#3764)
Pin setuptools to <64 (#3771)
Remove init_internalization from enkf_main (#3719)
Use id for ensemble instead of ensemble evaluator (#3724)
Upgrade to cloudevents 1.6.0 (#3784)
Refactor FileSystemRotator (#3788)
Update undefined (#3797)
Remove ecl_write from EnkfNode (#3750)
Update cmake build instructions in readme (#3799)
Use pytest in test_exporter, test_libres_facade (#3614)
Add a read_only flag to enkf_main (#3550)
config_parser: Make paths absolute (#3624)
Restrict annotated files to existing (#3634)
Skip flaky test of experiment server (#3645)
Use Ubuntu 20.04 for running spe1 workflow (#3651)
Fix linting errors (#3650)
Expose MeasuredData through ert (#3656)
Remove logging of conn_info (#3659)
Run ert3 tests in separation (#3657)
Rewrite run context to python only (#3649)
Reduce output from pytest in ci (#3653)
Migrate to flake8 5.0.0 compatible config (#3661)
Fix duplicate missing package data in setup.py (#3662)
Small fix for running experiment_server (#3642)
Skip failing test (#3671)
Increase timeout on experiment_server integration test (#3685)
Log maximum memory usage in main ERT thread (#3357)
Do not generate certificates for cli tests (#3691)
Fix format scripts (#3701)
Remove creation of certs and tokens in tests (#3700)
Remove unused functions in enkf_main (#3714)
Remove ERT splash + contextmanage GUILogHandler (#3717)
Resolve circular imports (#3736)
Add functionality for semeio in LibresFacade (#3743)
Refactor StateMap into C++ & pybind11 (#3693)
Avoid circular install of webviz_ert (#3757)
Fix broken imports (#3763)
Add <except.hpp> for convenient C++ exceptions (#3762)
Remove unused modules from coverage test (#3769)
Fix broken shell scripts (#3776)
Fetch storage server name, i.e. the config name, and use as title in webviz-ert (#3767)
Protobuf job_runner.reporter (#3620)
Move all enkf_main interaction with enkf_fs into python (#3775)
Remove refcounting from enkf_fs (#3789)
Remove logging from umount (#3803)
Test initializing from config_dict via hypothesis (#3796)
Version 2.37#
- Breaking changes:
Refactor ies_data.cpp (#3439)
Make Qt plotter utilizing the ert-api (#3458)
Refactor creating data for running analysis (#3473)
Refactor code paths for IES and ES (#3476)
Remove UPDATE_RUNPATH_LIST workflow (#3554)
Drop support for Python 3.6 and Python 3.7 (#3490)
Change EXPORT_MISFIT_DATA workflow to only export to single file (#3573)
- Bugfixes:
Use higher resolution when checking modification-time for target-file (#3428)
Fix iteration nr bug in IES and add ies cli integration test (#3457)
Release GIL before waiting for (async) futures in C++ (#3450)
Add a filter to the log messages in base_run_model (#3598)
Make ensemble client handle TimeoutError (#3612)
- New features:
Expose priors in dark-storage endpoint (#3522)
- Improvements:
Dont retry forward model if inconsistent time map (#3427)
Remember plot type when switching between types (#3447)
Fix storing initial A matrix in updatA (#3453)
Avoid crashing if not connected to network, fallback to localhost (#3481)
Remove module name from GUI (#3529)
Improve feedback to users when callbacks fail (#3534)
Allow more parameters in the webviz config (#3609)
- Dependencies:
Add webviz-ert as dependency in setup.py (#3587)
- Miscellaneous:
Update poly config guide (#3444)
Use pd.concat instead of append (#3449)
Explicitly load no-self-use pylint extension (#3468)
Solve some infrequent pylint issues (#3479)
Move create runpath and sample parameter logic from C to Python (#3467)
Fix global-statement pylint error (#3497)
Type and clean enkf_fs_manager (#3491)
Update github issue template for bugs (#3503)
Remove unused param arg (#3507)
Remove unecessary fs version checks (#3510)
Use async context manager for ens_evaluator client (#3484)
Remove unused function get_observation_count (#3513)
Replace util_split_string and util_alloc_joined_string with C++ (#3500)
Remove unneeded extern C (#3525)
Inline time_map_summary_update__ (#3530)
Push runpath_list into hook_manager (#3526)
Use standard library for string split and file handling (#3538)
Type and simplify measured.py (#3539)
Select pytest asyncio_mode=auto (#3540)
Cleaning and refactoring block fs for readability (#3552)
Rewrite test framework for and upgrade test_job_queue_manager (#3518)
Replace enkf_main_alloc_caselist with iterdir (#3563)
Update MIN_SUPPORTED_FS_VERSION (#3545)
Remove unused cases config (#3565)
Use copy_if in enkf_main.cpp::get_parameter_keys (#3577)
Improve documentation of GEN_KW (#3576)
Solve pylint warnings on dangerous-default-value (#3584)
Move save/load parameters to EnkfFs (#3574)
Delete unused block fs drivers (#3566)
Fix test that failed due to new pandas (#3441)
Update about-section of readme (#3442)
Set docs language to english (#3446)
Simplify return type to reflect function behaviour (#3339)
Update readme after first setup (#3166)
Update jupyter notebook hm examples to new API (#3460)
Log plot views (#3470)
Handle dying batcher (#3466)
Update spe1 readme according to new config layout (#3472)
Hoverinfo formatting (#3475)
Remove unused queue code (#3454)
Reverting an earlier attempt to optimize creation (#3483)
Separate benchmarks into different runs (#3419)
Remove doc referring to tagged keywords (#3492)
Remove unused model_config internalization (#3480)
Add experimental feature flag to webviz ert (#3482)
Remove unused function gen_kw_ecl_write_template (#3504)
Remove unnecessary enkf_main_init_fs (#3512)
Refactor enkf_main_write_run_path (#3494)
Removal of INIT_MISFIT_TABLE workflow. (#3477)
Add missing await in a rare branch of the code, extend logging (#3519)
Remove unused function run_path_list_load (#3520)
Apply the fire-and-forget strategy when sending updates to clients (#3531)
Add safety-check after #3483 because self._dispatchers_connected can be None (#3533)
Install pybind11 from PyPI in CMake CI (#3547)
Set file dialog to reasonable width and height - simplified approach (#3461)
Remove graphql related code (#3532)
Refactor block_fs file_node (#3555)
Remove fixing of nodes (#3562)
Make dependency on file location in Block explicit (#3570)
Hide log statements from console and put storage statements in log file (#3489)
Remove unneeded source fs from save_parameters (#3580)
Remove unused enum (#3592)
Clean up for moving runpath list writing (#3604)
Add C tests with EXCLUDE_FROM_ALL (#3607)
Use ert_shared Client in job_runner (#3606)
Remove logging of conn_info (#3670)
Version 2.36#
- Breaking changes:
- Bugfixes:
- New features:
ert3: Add GUI monitoring (#3167)
- Improvements:
Remove module name from GUI (#3529)
Shorten list of forward models in main GUI (#3382)
Remove File menu from main window (#3395)
Add timestamp to log file name (#3334)
Catch exception and exit with meaningful error in shellscripts (#3362)
Allow resize of simulations failed message box (#3409)
Dont retry forward model if inconsistent time map (#3427)
Make sure newlines are preserved in message box (#3431)
Various improvements to runpath initialization ( #3475, #3492, #3480, #3504, #3512, #3494, #3477, #3520, #3526, #3467 )
Various improvments to stability of status tracking ( #3481, #3466, #3483, #3519, #3531, #3315, #3324, #3408, #3360 )
Various improvments reading/writing to storage ( #3429, #3513, #3530, #3539, #3434, #3384, #3390, #3194, #3510, #3491, #3552 )
ert3: Merge the ensemble and experiment config (#3385)
ert3: Change “record” to “name” in the ensemble config (#3364)
Version 2.35#
- Breaking changes:
Change default inversion to IES_INVERSION_EXACT (#3193)
Remove flag for using aa_projection in IES and ES (#3230)
Fix scaling of ESMDA weights (#3211)
Replaced fm message with logging statements and remove unused workflows LOAD_RESULTS(_ITER) (#3252)
Remove option of loading from non-unified summary files (#3247)
Remove setting MODULE from workflows (#3288)
Remove analysis enums (#3283)
- Bugfixes:
- New features:
- Improvements:
Update poly_example to use more accurate observations (#3149)
Upgrade ERT icon set to Equinor design system (#3178)
Drop Title Case In Ert Gui (#3190)
Remove .index files from block_fs (#3185)
Log the contents of the ERT2 configuration file (#3218)
Update algorithm GUI config (#3213)
Make image cache singleton (#3237)
Upgrade and add more info to log message when failing to read SUMMARY (#3232)
Refactor parts of block_fs.cpp (#3233)
Test realization masks in base_run_model (#3275)
dlopen libres with RTLD_LOCAL (#3210)
Replace util_abort on time map with logging error and failing realisation (#3256)
Add details view to simulations failed including error logs (#3290)
Refactor RunDialog to depend less on RunModel (#3108)
Remove unused function local_ministep_get_obs_data (#3158)
Remove unused function enkf_analysis_deactivate_std_zero (#3176)
Remove thread_pool.cpp, arg_pack.cpp et al (#3117)
Undo pinning of click in dev-requirements (#3208)
Fix typo recieved (#3220)
Use explicit int-value from enum (#3221)
Delete unused test_analysis_test_external_module.c (#3206)
Extend flake8 linting to ert-directory and ert_tests (#3203)
Remove using matrix_type from serializer (#3236)
Remove unused covar from obs_data and replace replace matrix_type with eigen in meas_data (#3234)
Type and style for ensemble evaluator builder code (#3219)
Print warning every time non-ISO time format is used in simulation setup (#3238)
Remove unused functions in enkf_state.cpp (#3243)
Ensure duplexer stop entails a websocket close (#3246)
Avoid DeprecationWarning from qtbot (#3245)
Address comments left over from pull 3219 (#3253)
Bring libres_tests up to flake8 standard (#3250)
Filter out comments from logged configuration (#3249)
Replace deprecated ..index.is_all_dates in plottery (#3231)
Remove unused function -time_map_summary_upgrade107 (#3257)
Remove matrixtype from rowscaling (#3242)
Replace deprecated ..index.is_all_dates in plottery (#3265)
Remove matrix type from ert (#3268)
Remove documentation about internal C workflows (#3276)
Remove pytest-runner (#3285)
Avoid BoolVector in Python code (#3251)
Remove setup_requires from setup.py (#3286)
Make fixtures cleanup after themselves (#3287)
Enable SortInclude in clang-format configuration (#3284)
Fix all flake8 issues in ert (#3281)
Extend weak pylinting to more directories (#3289)
Use caplog to make sure root log level is INFO in test (#3300)
Use model factory in gui (#3294)
Decrease example size for polynomial doe (#3304)
Propagate logs from ensemble_evaluator, storage and status (#3293)
Dark storage performance (#3051)
- Dependencies:
- Miscellaneous:
Fix to circumvent pylint bug (#3163)
Add additional information on failure in test_http_response (#3132)
Add release notes for ert 2.34 (#3165)
Update labels for automatic release notes generation (#3192)
Add maintenance as release notes category (#3199)
Modify ModelConfig.enspath to hold an absolute file-path (#3186)
Create example for running history matching in python using analysis module (#3131)
Have repeated flaky tests run new python instance (#3189)
Add extension to error message (#3291)
Version 2.34#
- Breaking changes:
- Bugfixes:
Remove inactive analysis module options (#3126)
Fix row scaling local configuration job (#2954)
Improve failure behaviour from ert client to storage (#2956)
Add an out of bounds check (#2969)
Set strict=True when creating EnkfMain, make testname unique (#3042)
Skip lazy_load flag test which is failing on jenkins (#3038)
Undo removal of getAll - collectors (#3034)
[ert3] Ignore command location during step execution (#3147)
- New features:
Support Python 3.10 (#2834)
Fix removing duplicates, added test to verify, improved performance (#2951)
Disable lazy_loading of summary-data by default (#2976)
Ies from python (#3145)
[ert3] Auto-generate documentation for plugins (#3138)
[ert3] Add support for log-uniform distribution (#3156)
[ert3] ERT3 local test run (#2755)
[ert3] Plugin-in transformation configuration and wider transformation usage (#3025)
[ert3] Cli monitor for ert3 (#2960)
- Improvements:
Refactor interactions between JobQueue and LegacyEnsemble. (#3144)
Remove sorting of variables (#3128)
Add logging of EnKFMain usage in workflows (#3140)
Make tests use localhost (#3160)
Set proper timeout for Storage.start_server() (#3076)
Print a message to user about starting Webviz-ert (#3075)
Add webviz-ert documentation (#3065)
Fix timing in test batch sim (#3091)
Force GC to avoid conflict with running C++ dtors later (#3100)
Reduce log level for MAX_RUNTIME reached and only log once (#2770)
Rename test to avoid conflict (#3098)
Test tracker progress (#3110)
Fix typo, successfull -> successful (#3107)
Automatically increase softlimit for max open files while running tests (#3112)
Start statically checking code in ert_shared/models (#3094)
Remove global ert (#3118)
Increasing default timeout from 20s to 120s in BaseService. (#3129)
Handle error publish changes (#3130)
Remove usage of global ERT in run models (#3039)
Remove usage of threadpool in block_fs_driver (#3021)
Various improvements to flaky tests ( #3119, #3125, #2983, #2987 )
Various improvements to the analysis module ( #3060, #2913, #3082, #3087, #3083, #3097, #2958, #2948, #2999, #2964, #3018, #3028, #2962, #3035, #3005, #3058, #2966 )
- Dependencies:
- Miscellaneous:
Ignore errors in rmtree (#3155)
Fix filename typo in tests (#3072)
Use self._timeout in fetch_conn_info() (#3078)
Add host ensemble server config (#3096)
job_dispatch: Makedir in, out, err locations (#2998)
Add an optional has_observations flag to the record (#2979)
Remove unused job_queue from BaseRunModel (#3019)
clang-format: Remove version check (#3027)
Make extern “C” explicit for each function (#2963)
Use the key_manager from enkf_main (#3026)
Remove utility functions of the legacy tracker (#3006)
Introduce read-only info class derived from EvaluatorServerConfig (#3045)
Correct exception name typo (#3047)
Make port range larger in test (#3059)
[ert3] Drop experiment_run_config from load_resource (#3102)
[ert3] Add better error handling when trying to rerun an experiment (#2891)
Version 2.33#
- Breaking changes:
Introduce nested namespace ies::data (#2828)
Remove unused python class ConfigSettings (#2746)
Remove changing mode of files by ext_job (#2784)
Deprecate keyword UMASK and disallow UMASK 0 (#2777)
Delete workflows related to obs/data ranking (#2927)
Replace bool_vector with stl::vector and return vector instead of mutating in state_map_select_matching (#2922)
Remove Matrix, {Obs,Meas}{Data,Block} classes from Python (#2923)
- Bugfixes:
Make AutorunTestEnsemble cancellable (#2786)
Do not build vanilla step on unexpected step type (#2807)
Free internal resources in ies::data_free() (#2830)
Update config path to basename when changing working directory (#2851)
Remove redundant parameter in enkf_main_alloc (#2890)
[ert3] Fix websocket connection timeout in Unix step (#2783)
- New features:
- Improvements:
- Dependencies:
Upgrade black to 22.1.0 (#2946)
- Miscellaneous:
Fix typo ensamble (#2845)
Remove cmake feature tests (#2791)
Various improvements to analysis module ( #2747, #2748, #2772, #2829, #2857, #2855, #2892, #2863, #2893, #2901, #2877, #2744, #2897, #2933, #2929, #2910, #2919, #2947, #2957, #2942, #2950 )
Drop threads when collecting summary-data (#2808)
Refactor summary collector (#2802)
Revert flaky performance tests (#2822)
Retrieve responses for _export via the dedicated endpoint (#2820)
Replaced reuse_addr with something more insisting (#2757)
Add types and perform clean-up of BaseRunModel (#2854)
Fix mypy error (#2876)
Remove deprecated parameter ‘loop’ in Queues (#2889)
Update ensemble parameter response from dark storage (#2856)
Remove thread_pool in loading/saving parameters (#2884)
Remove compiler warning (#2911)
Adjust test in extraction due to changes in API (#2917)
Parameterize some test instead of having duplicate (#2810)
[ert3] Change one_at_the_time() to one_at_a_time() (#2943)
Add observations to responses query (#2912)
Replace first iteration of convert from cwrap (#2938)
Remove unused module util_fprint and res_version (#2949)
Use fmt to write error message (#2974)
Version 2.32#
- Breaking changes:
- Bugfixes:
Forward database url from argparse to Storage (#2680)
Expected boolean return from void-function (#2768)
Always handle connection errors when monitoring the ensemble (#2771)
[ert3] Use lowercase letters when specifying psb resources (#2692)
[ert3] Fix failure when using pbs driver (#2689)
[ert3] Fix SPE1 yaml config for smry_keys (#2685)
[ert3] Use ert port range for pbs driver (#2723)
- New features:
Add method getActiveIndexList to class ActiveList (#2323)
Support YYYY-MM-DD (ISO-8601) in observation files, timemap files and END_DATE keyword (#2641)
[ert3] Support numerical characters in parameter names (#2668)
[ert3] Make ert3 log to console when realizations complete (#2732)
[ert3] Allow the user to setup backend DB url in ert3 (#2701)
[ert3] Allow inline shell script in stages (#2740)
- Improvements:
[ert3] Improve error messages in ert3 config validation (#2702)
[ert3] Pretty print json for human readable files (#2706)
[ert3] Increase timeout of storage (#2729)
Use ert_storage.client (#2644)
Introducing class and methods to log memory usage in scope (#2640)
Namespace ies (#2621)
Remove leftover dd/mm/yyyy mention in docs (#2696)
Writeup of posterior properties (#2699)
Make ConfigKeys an enum w/o ResPrototype (#2657)
Remove broken test configuration file (#2665)
Remove outdated documentation about developing analysis modules (#2662)
Use ies::config::config class for configuration also of std enkf module (#2681)
Use std variant (#2709)
Replace parsing of excluded hostnames in lsf with standard library functions (#2638)
Add function time logger (#2624)
Use ies (#2602)
Raise meaningful exception when accessing non existing analysis module (#2727)
Add logging of analysis configuration (#2752)
Describe SIMULATION_JOB (#2754)
Gendata ndarray copy (#2682)
- Dependencies:
- Miscellaneous:
Various improvements to analysis module ( #2412, #2527, #2497, #2628, #2690, #2705, #2697, #2711, #2717, #2721, )
[ert3] Move EclSum support from serializers to transformations (#2613)
Fix mypy unused “type: ignore” comment (#2646)
Add script/ecl-check which counts libecl functions (#2637)
Simplify enkf_main_case_is_initialized (#2656)
Add information to pull request template (#2663)
Simplify enkf_main_copy_ensemble (#2654)
Remove leftover debug-output (#2693)
Group all ert3 tagged PRs together in release notes (#2713)
Increase timeout from run_examples_polynomial CI (#2726)
Replace default gen_kw_export_name with pybind (#2719)
Add RES_LIB_SUBMODULE to pybind11 code (#2737)
Add tests for performance of data collectors (#2674)
Revert flaky performance tests (#2825)
Version 2.31#
- Breaking changes:
Remove support for config keyword ANALYSIS_LOAD (#2407)
- Bugfixes:
[ert3] Fix forgotten transformation raise statement (#2608)
- New features:
[ert3] Introduction of RecordTree (#2255)
- Improvements:
Timeout by default when fetching storage connection information (#2541)
Handle connection closed errors in EvaluatorTracker (#2597)
Add logging to Python from C (#2550)
Add docstrings for
ert3.data
module (#2521)[ert3] Return native floats when decoding EclSum files (#2540)
[ert3] Refactor transmissions and transformations in order to decouple them (#2566)
[ert3] Make Workspace use transformations (#2604)
Add dark storage record labels endpoints (#2491)
- Dependencies:
Ensure compatibility with beartype==0.9.1 (#2633)
- Miscellaneous:
Various improvements to analysis module ( #2504, #2568, #2530, #2463, #2469, #2591, #2598, #2599, #2611, #2617 )
Remove unused code ( #2499, #2509, #2518, #2532, #2533, #2519, #2564, #2595, #2593, #2618, #2620 )
Consistently use realizations, iter and
-
as separator (#2603)Improve res imports to satisfy pylint checking (#2502)
Reduce calls to fs->refcount at decref (#2501)
Cleanup unnecessary use of run_mode (#2563)
Pass python executable to cmake (#2569)
Add release notes configuration (#2570)
Replace util_mkdir_fopen with standard C++ (#2590)
Fix spelling of therefore (#2600)
Only comment coverage after all reports are sent (#2623)
Mute PEP-585 warnings from BearType in Py39 (#2610)
Version 2.30#
- Breaking changes:
Remove support for RML_ENKF (#2037)
Remove external analysis module loading (#2202)
Remove scale_correlated_obs (#2358)
Stop persisting principal component to disk (PC directory) (#2367)
Remove some experimental update schemas (#2399)
Improve bundling of shared resources, and move them under the ert_shared module (#2176, #2379)
- Bugfixes:
- New features:
Make IES algorithm available by default (#2037)
Introduce API for fetching data from file storage; making it possible to run webviz-ert with ert2 (#2065, #2154, #2100, #2219)
Show duration in run_dialog for progress (#2398)
[ert3] Introduce uniform/invariant records concept (#2070)
[ert3] Add concept of record transformation (#2040)
- Improvements:
Remove outdated help resources (#2086)
Introduce BaseService to unify api and vis interface (#2018, #2147, #2149, #2258, #2308)
Log workflow usage (#2113)
Log forward model jobs (#2098)
Update workflows docs (#2039)
Fix spelling mistake in template render docs (#2152)
Log util_abort (#2230)
Add IES to CLI-docs (#2234)
Improve retry logic when communicating with Evaluator (#2248, #2249)
Retry check if *_server.json is deleted (#2250)
Ensure error message is logged when CLI fails (#2281)
Refer to log files on unexpected crash (#2400)
[ert3] Validate ensemble size from the ensemble config against the experiment config (#2370)
[ert3] Validate that a stage in an ensemble exists in the stages config (#2371)
[ert3] Validate file-based workspace resources (#2377)
- Dependencies:
- Miscellaneous:
Delete unused const LOG_URL (#2090)
Use get to read dict (#2092)
Fix environment test (#2093)
Remove unused komodo Jenkins file (#2124)
Remove outdated tips file from docs (#2126)
Remove outdated files in libres source directory (#2127)
Refactor ErtSummary and add tests (#2112)
Simplify Record design (#2071)
Fix flaky test_singleton_start (#2134)
Make project_id Optional in connection get_info (#2131)
Remove ResLog (#2138)
Increase max runs on flaky tests (#2139)
Libres cmake cleanup (#2135)
Refactor ResConfig input validation (#2114)
Let EvaluatorServerConfig be responsible for keeping port allocated (#2097, #2242, #2254, #2260)
Ensure the service is running when test executes (#2151)
Remove unlink_node and unlink_vector (#2155)
Provide output when producing error from unix_step (#2144)
Replace util_file_exists with exists (#2142)
[ert3] Test indexed ordered dict (#2172)
[ert3] Remove an extra summary.df from summary2json job (#2182)
[ert3] Make function step use one transmitter per output (#2183)
[ert3] Remove unused _NumericalMetaData class (#2187)
[ert3] Set input and output type hints in polynomial function (#2201)
[ert3] Make input source configuration more independent (#2203)
Use Ubuntu 20.04 for Read The Docs builds (#2205)
[ert3] Test changing default mime (#2185)
Avoid using mutable instance as default argument in IO builder (#2212)
Add section about commits in CONTRIBUTING.md (#2214)
Delete empty readme (#2231)
Add module docstring to ert_data (#2232)
[ert3] Use transformations for outputs in Unix step (#2208)
Use caplog context (#2240)
Remove unused parameters in RunModel (#2236)
Test block_fs_driver_create_fs (#2302)
Don’t use hardcoded ranges in port-tests (#2246)
Move capturing inside context in integration test (#2252)
Read file to vec using iterator in es_testdata (#2253)
Remove unused run_analysis function (#2256)
Remove unnecessary alloc-funcs in analysis module (#2257)
Remove unused enkf_update files (#2264)
Remove state_map_select_matching__ (#2280)
Avoid using same objects in multiple tests (#2301)
Remove call to static private function enkf_main_smoother_update__ (#2287)
Avoid passing enkf_main_type to enkf_main_inflate (#2296)
Remove unnecessary step list alloc function (#2295)
Remove unused rng parameter from IES (#2286)
Avoid passing enkf_main_type to enkf_main_log_step_list ()(#2294)
Remove more unused files (#2292)
Rename _set_dict_from_list to _create_record_mapping (#2181)
Remove unused enkf_main_submit_jobs and its callstack in enkf_main (#2307)
Convert IES to C ++(#2312)
Remove unused ${ies_source }(#2309)
Test ies_enkf_linalg_extract_active (#2306)
Remove ‘ies’ as dependency for a test (#2321)
Refactor ert3 workspace module (#2299, #2311, #2303, #2342, #2344, #2365, #2426)
Fix production of ert narratives for communication protocols (#2319)
Reduce enkf main usage in analysis module (#2333)
Remove unused enkf_main_run_workflow (#2337)
Add tests for workspace pollution (#2293)
Replace util_int_min with std::min (#2341)
Use pytest instead of ErtTestContext (#2343)
Remove unused ResPrototypes (#2210)
Update development strategy (#2244)
Remove dependency on fs_driver_type (#2251)
Improve developer documentation (#2338)
Expose ert_share_path (#2373)
Test enkf_linalg_genX2 with catch (#2349)
Test matrix_subtract_row_mean (#2378)
Add workspace documentation (#2385)
Provide storage URL to ert-storage via env (#2316)
Remove hardcoded path to ‘true’ executable in test (#2391)
[ert3] Let serializers write to disk (#2390)
Only register signal handlers in main thread (#2413)
Add numerical analysis test for Mac (#2415)
Improve cleanup on kill signals (#2352, #2410, #2414, #2428)
Version 2.27#
- Breaking changes:
Notice that the bugfix related to HISTORY_OBSERVATION is expected to cause changes in the numerical results for users of that feature.
- Bugfixes:
Include last report step in HISTORY_OBSERVATION (#1820)
- New features:
- Improvements:
- Dependencies:
Loosen semeio requirement (#1935)
- Miscellaneous:
Version 2.26#
- Breaking changes:
Revert “Enable ensemble evaluator by default”
- Bugfixes:
Fix #1830 bug in progress calculation
- New features:
Log when MAX_RUNTIME is reached
Add support for blob records (#1855)
Implement an ert-storage transmitter
- Improvements:
GUI optimizations
Make tail configurable in oat experiments
Allow non-stochastic input records to sensitivity
Implement a –num-iterations option for IES in the cli
Updated FIELD keyword doc and in particular the requirements for the FIELD ID and GRID keyword doc with info about ERTBOX grid usage
Updated documentation of the FIELD keyword
Create ert package
- Dependencies:
Add httpx
- Miscellaneous:
Add validated record_field property to EnsembleRecord
Unite the resolving of port and sockets to use
Change the blob data type from List[StrictBytes] to StrictBytes
Use QueueDiffer in legacy tracking
Use pyrsistent and pre-rendered data in GUI
Introduce separate numerical and blob classes
Using mocked lsf bsub and bjobs commands to verify behaviour in ERT
Reduce source root implementation to one
Add Python version and activity badges to README
Stop parsing and exposing Eclipse START_DATE in ERT
Add default QUEUE_SYSTEM LOCAL to default site-config lines
Merge ert and libres python tests (#1782)
Fix verification tests by waiting for EE (#1819)
Change __token__ to Token for fetching connection info
Move ert3.data to ert.data
Run GitHub Actions on tags
Add ids to test_legacy_tracker test cases
Add timed_out field to job_queue node
Reorganize ensemble modules into ensemble package
Version 2.25#
- Bugfixes:
- New features:
Make it possible to visualise ERT3 results
Check the status of ert3 services
Support space and comma in forward model job arguments (#1472)
- Improvements:
Rename: userdata and ensemble_ids endpoints
Add section on how to restart ES-MDA in GUI (#1290)
Generate narratives on the fly when building the docs
Support building the documenation on ReadTheDocs (#1610)
ert2 use servermonitor for fetching ert-storage auth
Add ert-storage, clean experiment and webviz-ert to spe1-README (#1736)
Fix typo in RMS documantion and CLI (#1438)
Add output records to ert3 ensemble config
Implement time out for legacy evaluator
Fix resolve socket family (INET/INET6) (#1676)
- Deprecations:
Deprecate PORTABLE_EXE (#1718)
- Dependencies:
Add type stub packages to types-requirements
Require semeio>=1.1.3rc0
Remove ert-storage from dev-requirements.txt
Add scikit-build as a dev-requirement
Add setuptools_scm as a dev-requirement
- Miscellaneous:
Move all the libres code into the ert repository
ert3: Introduce common RecordIndex
Add integration tests for post_update_data (#1671)
Add some temporary debuging of events
Make cancel test more consistent (#1755)
Fix flaky prefect retry test by ignoring order of events in the test (#1730)
Use example servers in comments
Ignore some numpy type annotions that are difficult to handle in python
Added Docs Section In README.md
Split ERT 3 parameters into separate records
Have mypy ignore missing numpy imports
Make deploy to PyPi also depend on ctests
Change workflows to not trigger on all push events (#1739)
Reduce the number of macos builds on GA (#1756)
Run ert2 test data setup on python 3.8 instead of 3.7
Clone with tags in style and typing workflows
Merge ert and libres test-data
Delete libres test-data
Remove init from tests (#1734)
Remove use of temp test folder in GA
Unite the resolving of port and sockets to use (#1676)
Make verification tests wait for the ensemble evaluator to finish (#1819)
Version 2.24#
- Bugfixes:
ert3: Fix wrongly typed distribution index
Fix bug in prefect ensemble error handling
Fix retry connection in evaluator tracker
Fix rounding error in realization progress visualisation (#1672)
Re-add stderr and stdout info
Re-enable retries for Tasks
Add timeout when waiting for cancelled dispatchers
Use isoformat for timestamps when converting to str (#1637)
Pass ee_id to execute_queue_async
Fix running event loop in gui sim thread
Fix cancelling of ensemble hanging for ever
Handle dns operation timeout (#1625)
Fix JOB_QUEUE_DO_KILL_NODE_FAILURE spelling error
Update detailed progress after failure (#1658)
- New features:
Add support for Python 3.9
Add callback function for catching MAX_RUNTIME failure (#1525)
Add method keys() to LocalDataset
- Improvements:
Pass ert3 records to storage as numerical data
Define, test and document communication protocols in EE (#1235)
Connection error handling in EvaluatorTracker (#1679)
Batch all event types
Order real status according to state transitions
ert3: Ensure immutable stages config
ert3: Ensure immutable ensemble config
ert3: Ensure immutable experiment config
ert3: Introduce parameters config
ert3: Make distributions expose their arguments
Fix usage of .closed in socket code (#1600)
ERT 3: Feature/step type class
Use the prefect context to pass url, token and certification info
Force x_axis values to be strings before json serialization
Extract priors to new storage
Add certificates and tokens to websocket communication (#1326)
Add batching of events in ensemble evaluator (#1683)
Log evaluator cross talk (#1647)
Remove ensemble evaluator feature flag warning
Use phaseCount in progress calculation, drop phase (#1635)
Timeout CI pipeline after 30 mins
Refactor evaluator utils
Refactor update_step to refer to step entities
Refactor and extend testing of PartialSnapshot
Remove size cap on ensemble evaluator msg queue
Add ‘ensemble_size’ as param to ‘post_ensemble_data’
Add record class ‘response’ to extracted responses
Add test to make sure total progress is updated (#1608)
Keep tracker iteration snapshot up to date
Use ERT Storage’s TestClient
Improve cancellation of ensembles
Add token and certificates to websocket communication
Re-add stderr and stdout info
Use public MonkeyPatch
Re-use Client for dispatch lifecycle
Add –summary-conversion flag with default no to eclipse run
Require ee_id in execute_queue_async
Allow certificate to be None
- Dependencies:
Upgrade to websockets 9 (#1615)
Depend on dnspython>=2 and pydantic>=1.8.1
- Miscellaneous:
Cleanup exceptions in ert3.storage
Introduce SyncWebsocketDuplexer (#1538)
Refactor: Remove handlers from evaluator
Pin pytest-qt<4
Add integration tests for post_ensemble_data (#1669)
ert3: Use public interface when testing ensemble config
Add classifiers to setup.py
Cleanup prefect ensemble test for function defined outside the python environment
Add logging to development strategy
Add type hinting to make mypy pass on ert3 in strict mode
Version 2.23#
- Bugfixes:
- New features:
Use experiment in ert-storage for ert3 (#1554)
- Improvements:
Stop using ArgParse FileType (#1500)
Remove and stop using the nfs_adaptor for status messages (#1344)
Make legacy ensemble members connect through websocket
Updates related to row scaling
Adapt websockets events to new event model
Make ert3 ensemble config forward model point to a single stage (#1553)
Move data extraction to new ert-storage rest api (#1544)
Extract priors to new storage
Force x_axis values to be strings before json serialization
Fix x axis to str, when posting update data
Update detailed progress after failure (#1658)
Use snapshot instead of run_context (#1658)
- Miscellaneous:
Version 2.22#
- Bugfixes:
Fix wrong use of STDERR identifier
- New features:
Add ert3 status command (#1457)
Add ert3 clean sub-command
Use the new storage to fetch/store results running ert3
Add possibility to initialise examples from cli for ert3
Add forward model function step
Make TEMPLATE_RENDER support parameters.json not being present
- Improvements:
Revert “Add retry to ert3”
Look up correct stage in stages_config
Remove redundant engine code
Have ert3.engine stop closing passed streams (#1498)
Use forkserver as strategy with multiprocessing
Ensure fresh loop in prefect ensemble to fix the Bad file descriptor
Make observation active mask not a list
Reintroduce rendering of job statuses
Set prefect log level to WARNING when running
- Dependencies:
Add ert-storage as extras to setup.py
- Miscellaneous:
Reorder ert3 submodule imports
Use conditionals to import Literal
Add __all__ to ert3.data
Introduce type checking for ert3 in CI
Add type hints to ert3.storage
Run strict type checking for ert3.storage
Add type hints to ert3.engine
Add pylintrc
Run pylint for ert3 as part of style CI workflow
Replace usage of ert3 examples folder with generated test data in ert3
Remove used of example folder in ert3 evaluator tests
Remove used of example folder in ert3 cli tests
Fix flake8 errors
Remove used of example folder in ert3 stages config tests
More removal of examples folder reference from ert3 cli tests
Remove unused imports
Enable pylint error: unused-import
Reposition imports
Enable pylint error: wrong-import-position
Reorder imports
Enable pylint error: wrong-import-order
Enable pylint error: ungrouped-imports
Improve reporting of validation errors
Refactor UnixStep
Replacing magic strings
Remove faulty col resize and add tooltip
Improve storage development workflow
Add tests for the prefect ensemble
Use pydantic to instantiate all dicts
Move conftest out to tests/gui
Improve ensemble client and add new tests
Set timeout of all jobs to 15 minutes
Increase build timeout to 30 minutes
Drop SPE1 example templating hack
Fix examples/polynomial Github Actions workflow
Version 2.21#
- Bugfixes:
Set correct phase count in ESMDA model
Prevent double startup of storage server
Seperate Update creation from ensemble creation and link observation transformation
Don’t assume singular snapshot in CLI. Fixes a problem where ERT would crash on iiteration 1 if a realization failed in iteration 0.
- New features:
Add obs_location property to misfits and corresponding test (#1373)
Implement oat sensitivity algorithm
Add ert3 support for sensitivity studies
Apply row scaling in the smoother update
- Improvements:
Add failure event and use it in the legacy and prefect ensembles (#1301)
Push ensembles separarate from responses to new storage
Use numpy_vector instead of deprecated method
Fix snake_oil_field ert config
Remove the prefect option from ert
Remove coefficient generation in Prefect Ensemble
Use LocalDaskCluster to run local ensembles
Add index and ppf to distributions
Introduce experiment folder in workspace
Add uniform polynomial experiments
Add ert3 reservoir example based on SPE1 and flow
Refactor of Qt Graphical User Interface (#566)
Add error if not response could be loaded for MeasuredData
Introduce record data types
Add retry to the ert3 evaluator
Check queue hash when updating in LegacyTracker
Use forkserver as strategy with multiprocessing
Always use queue from map in LegacyTracker (#1476)
Check if partial_snapshot is None before merging
Reintroduce rendering of job statuses
JobQueue.snapshot provide the user with a snapshot of the queue state that can be queried independently of run_context and run_arg
JobQueue.execute_queue_async and JobQueue.stop_jobs_async provides asynchronous execution and stopping of queue
Remove fs dependency for summary observation collector
Force sequential execution of callbacks
Export shared rng to Python
- Deprecations:
Depecate loading functions
- Miscellaneous:
Turn monitor into a context manager (#1332)
Load config close to ensemble evaluator evaluation
Refactor data loading
Refactor plot api
Black plot api
Run test-data as a part of CI
Change patch import in ert3 cli test
Add base distribution
Fix Literal imports
Run polynomial demo during CI
Remove trailing whitespace
Break before binary operators
Make lambda’s into def’s
Run pylint during CI
Create CODE_OF_CONDUCT.md (#1414)
Add black badge to README
Run black on everything in CI
Format all files
Update badges
Move flake8 settings into .flake8 config
Fix test that was testing a (now fixed) bug in libres
Run flake on tests/ert3 during style testing
Stop using single character variable names in tests
Stop storing unused return values in tests
Fix deprecated escape characters
Drop support for variables, input and ouput data in storage
Pass data as records in ert3
Move conftest out to tests/gui
Keep ensemble config nodes in an ordered data structure to avoid sampling differences over different build machines
Write all elements in grdecl test data
Version 2.20#
- Bugfixes:
Fix for default tabs selection (#1282)
- New features:
- Improvements:
Disable logging in forward models and workflows
Unify code paths with and without monitoring
Graceful exit if storage_server.json exists
Clarify how rel paths in workflow are resolved
Return empty list in create_observations when no obs are available
Add –host setting to ert api
Storage: Allow NaNs to be returned (#1284)
Storage: Move database to /tmp while using it (#1309)
Make evaluator input files configurable
Avoid unnecessary stack trace during ert vis (#1306)
Storage: Combine ParameterDefinition & Parameter
- Dependencies:
Add pyrsistent (#1376)
- Miscellaneous:
Remove builtin and __future__ imports
Fix wrong tests folder in Github Actions
Introduce exceptions module for ert3 workspace errors
Create CONTRIBUTING.md
Fix extraction.py’s create_update
Correct spelling of modelling to British variant
Copy examples when running Jenkins CI
Run flake8 on the ert3 module as part of CI
Version 2.19#
Highlighted changes#
ERT is now pip-installable#
ERT can now be installed via PyPI by running
>>>> pip install ert
2.19.0 ERT#
- Improvements:
Improve observation format documentation
Fix plotting warnings
Introduce sub categories to job documentation section
Remove legacy logo
Improve documentation of installed workflows
Various improvements to the new (but for now optional) data storage
Various improvements to the new (but for now optional) internal workflow manager
- Miscellaneous:
Remove upper limit on matplotlib version
Use the Qt5 backend
8.0.0 libres#
- Improvements:
pip installable libres
Catch version import error
Rename all shell workflows to uppercase
Improve RMS forward model documentation
- Miscellaneous:
Remove unused EnKF update checks
Move tests to ease running them
Remove legacy logo
Update requirement list
Version 2.16#
Highlighted changes#
Isolated RMS environment#
We recommend all users to remove RMS_PYTHONPATH
from their
ERT configuration files when using ERT 2.16 or newer. Users can experience
problems with not having access to Python modules they earlier had access to
within RMS. If so, contact your ERT admins to evaluate the problem.
For Equinor users we have installed a run_external command in the RMS environment that allows our users to reconstruct the environment prior to launching RMS to allow for executing commands within the standard user environment from RMS.
2.16.0 ERT#
- New features:
Make it possible to run the IES via the command line interface
New workflow hook
PRE_FIRST_UPDATE_HOOK
- Improvements:
Improvements to the documentation
Use gunicorn instead of werkzeug for data server
Authenticate towards data server
Have job_dispatch propagate events to prepare for a new ensemble evaluator
Have the RMS-job keep track of default Python environment
7.0.0 libres#
See ERT release notes
0.6.4 semeio#
- New features:
Make data export from overburden_timeshift optional
Add all forward model jobs as command line tools
Extract saturations from RFT files
- Bug fixes:
Make CSV_EXPORT2 robust towards empty parameters.txt
Disallow whitespaces in parameter names
Update summary data when running
MISFIT_PREPROCESSOR
Install the STEA job correctly
design2param forbids invalid parameter names
ENSEMBLE
,DATE
andREAL
Version 2.15#
Highlighted changes#
Python3.6-only#
This version of ERT is now incompatible with Python version less than 3.6.
2.15.0 ERT#
- New features:
Replace Data export button functionality with a CSV-export
Add file operation jobs as workflow jobs
- Improvements:
Document magic strings
Clean up documentation with respect to outdated keywords
- Miscellaneous:
Deprecate workflow
STD_SCALE_CORRELATED_OBS
. Recommended to useMISFIT_PREPROCESSOR
instead.Drop support for Python < 3.6
Drop
CUSTOM_KW
supportDrop deprecated analysis keywords
Drop deprecated ecl config keywords
Drop deprecated
PLOT_SETTINGS
keywordDrop deprecated model config keywords
Drop support for deprecated keywords
{STORE, LOAD}_SEED
Drop support for jobs with relative paths to the config
Drop support for creating
EnkfMain
with filenameDrop support for
QC_{PATH, WORKFLOW}
keywordsDrop support for non enum log levels
Remove warning for deprecated
ERT_LIBRARY_PATH
env variableRemove unused code
New libres version
6.0.0
- Bug fixes:
Handle empty observation set in Data API
Alpha and std_cutoff passed wrongly to the now deprecated observation correlation scaling in libres
6.0.0 libres#
See ERT release notes.
0.6.0 semeio#
- New features:
Add –outputdirectory option to gendata_rft
Missing namespace support added to
design_kw
New option,
auto_scale
added to MisfitPreprocessorAdd new forward model job, for
overburden_timeshift
(OTS
)
- Other changes:
Refactor scaling factor calculation
Reports moved from being in the
storage
folder to next to the config fileFixed a bug where
csv_export2
was not executableChanged default linkage option from
single
toaverage
for MisfitPreprocessorDecreased likelihood of
storage
folders generated in source tree when running testsFixed a bug where user input observations to MisfitPreprocessor were not being used
Add documentation to
csv_export2
.Add warning for existing keys in parameters.txt for
design2params
Version 2.14#
Highlighted changes#
Restarting ES-MDA#
It is now possible to restart ES-MDA runs from an intermediate iteration. Note that this requires a bit of care due to the lack of metadata in current storage. We are aiming at resolving this in the future in the new storage that soon will be the standard.
After selecting the ES-MDA algorithm, you first need to set Current case to the case you intend to be your first case to reevaluate. After which the iteration number will be wrongly injected into the Target case format, which you have to remove manually (reset it to the original Target case format). After which you have to set Start iteration to the iteration for which you are to start from; this number must correspond to the iteration number of the case you have selected as your Current case. We recognize that this induces some manual checking, but this is due to the lack of metadata mentioned above. We still hope that this can aid our users and prevent the need of a complete restart due to cluster issues etc.
2.14.0 ERT#
- New features:
It’s now possible to restart ES-MDA
- Improvements:
Clean up ENKF_ALPHA keyword usage and documentation
Improved queue documentation
Warn user if invalid target is used to run analysis
- Miscellaneous:
Find right extension based on system when loading rml_enkf analysis module
- Bug fixes:
Ensure py2 QString conversion through py3 str
Correctly initialize active mask for IES
Fix early int conversion lead to rounding error and graphical glitches in the detailed view
5.0.1 libres#
- Improvements:
Pretty print status.json and jobs.json
Add job index to elements in jobs.json
Print update log even if points are missing or inactive
- Miscellaneous:
Remove deprecated BUILT_PYTHON option
Deprecate CUSTOM_KW
Stop generating EXIT files (only ERROR file is created)
0.5.4 semeio#
- Improvements:
All data reported by workflows are persisted
- Bug fixes:
Fix crash on emmpty defaults sheet for design matrices
Fix GENDATA_RFT job config
Version 2.13#
2.13.0 ERT#
- New features:
Jobs can provide documentation via the plugin system
- Improvements:
Resolve Python 3.8 deprecation warnings
Document job plugin system
Update COPY_DIRECTORY job docs
4.2.2 libres#
- Improvements:
Label configuring slurm jobs as running
Remove deprecated queue configuration keys
0.5.3 semeio#
- New features:
Pass job documentation of jobs to ERT via plugin system
Version 2.12#
2.12.0 ERT#
- New features:
Support Slurm as a queue system
- Improvements:
Support for –version in CLI
4.1.0 libres#
- New features:
Support Slurm as a queue system
- Improvements:
Backup PYTHONPATH when running RMS to facilitate external scripts
- Miscellaneous:
Improve tmp-file usage in tests
Remove unused configsuite dependency
0.5.1 semeio#
- New features:
Add INSERT_NOSIM and REMOVE_NOSIM
- Improvements:
Add name to ensemble set in CSV_EXPORT2
Support configsuite 0.6
Have design2params support spaces in values
SpearmanJob exposes data via the reporter
Version 2.11#
Highlighted changes#
New database#
A new storage implementation has been made. The aim is that this will end up as a more robust storage solution and that it will serve as a large step towards the future of ERT. The solution is still experimental and should not be used for classified data as of now. To enable the new storate solution use the command line option –enable-new-storage when launching ERT. Note that it will have to be used while running a case for the data to reside in the new storage, but that the same data will also be available in the old storage if you afterwards open ERT without the new storage enabled.
>>>> ert .... --enable-new-storage
4.0.2 libres#
- Bugfixes:
Always load GEN_PARAM to ensure correct state before update
0.4.0 semeio#
- New features:
Implemented Misfit preprocessor which will allow the user to run a pipeline of jobs to account for correlated observations
Implemented new CSV_EXPORT2 job which utilizes fmu-ensemble to do the export.
- Improvements:
Added reporter functionality to output data to common storage
Correlated observations scaling uses SemeioScript with reporter in place of ErtScript
Improve error messages in design_kw
Correlated observation scaling will report singular values
Correlated observation scaling will report scale factor
Version 2.10#
Highlighted changes#
Change in shell script behaviour#
The shell script jobs will no longer interpret the first path relative to the configuration file. This implies that if you want to copy a file from the area around your configuration file to the runpath, the following copying will not work anymore:
FORWARD_MODEL COPY_FILE(<FROM>=my_files/data.txt, <TO>=data.txt)
And the reason is that it is not possible to deduce whether the intent was to
copy a file relative to your configuration file or whether you wanted to copy
(or delete) something that is already in your runpath. This led to mysterious
and strange errors. From now on, you will have to explicitly ask for the path
to be relative to your configuration file using the <CONFIG_PATH>
magic
string:
FORWARD_MODEL COPY_FILE(<FROM>=<CONFIG_PATH>/my_files/data.txt, <TO>=data.txt)
- The above change takes effect for the following shell scripts:
CAREFUL_COPY_FILE
COPY_DIRECTORY
COPY_FILE
DELETE_DIRECTORY
DELETE_FILE
MAKE_DIRECTORY
MAKE_SYMLINK
MOVE_FILE
SCRIPT
SYMLINK
Python 3 compatible CSV-export#
CSV_EXPORT2
has been added as Python 3 compatible alternative to CSV_EXPORT1
.
2.10 ERT application#
- Improvements:
Improve documentation on ARGSLIST
Enable RML_ENKF in default ERT installation
- Bug fixes:
Fixed jumping cursor when filling in ES MDA weights
Fixed Python exception on exit
Logarithmic distributions are now plotted with correct axis type. The values themselves on a logarithmic scale, and the exponents on a linear scale.
Do not terminate on exception in RunContext due to race condition
[Python 2] Fix saving unicode configuration files
- Other changes:
Lower bound matplotlib version for Python 3
Remove cwrap from install requirements
Separate plotting from data by an API
Add Jinja2 as an install dependency
4.0 libres#
- Breaking changes:
The shell script jobs will no longer interpret the first path relative to the configuration file.
- Bug fixes:
Use workflow future to determine running status
Give queue index in queue error message
Ensure integer division when making CPU list
2.9 libecl#
- Improvements:
Pip-installable libecl
Improved identification of rate and total (cumulative) keywords
0.2.2 semeio#
- Highlighted changes
Add CSV_EXPORT2 as Python 3 compatible alternative to CSV_EXPORT1
- Bug fixes:
Add string representation to TrajectoryPoint for backwards compatibility
Version 2.9#
2.9 ERT application#
- Improvements:
Fix bug where changing dataset for plotting would crash ERT
Fix bug in ERT data API where inactive summary observations would exist
3.2 libres#
- Improvements:
Fix bug in normal distribution which could generate -∞ when sampled
- Other changes:
Removed ecl version from jobs.json
Remove possibility to specify iens when creating runpath
Version 2.8#
Highlighted changes#
Improvements to ERT#
When running ERT in komodo, the forward models will now run in the same komodo version as the ERT application. This happens even if the stable komodo version changes while ERT is running.
Improvements to ERT CLI#
Defining current case is now available in the cli. The see the usage and complete list of available commands, go to Running ERT.
Improvements to ERT GUI#
The viewer for job-output in the detailed monitor widget is now improved to handle larger outputs.
This will improve the experience for jobs like eclipse.
2.8 ERT application#
- New features:
CLI support current case
Output viewer supports large output from jobs like eclipse
- Improvements:
Improvements to documentation
2.8 libres#
- General bug fixes and improvements
Added support in IES_ENKF for using newly activated observations
Fixed bug in IES_ENKF when extracting active observations
Add filtering on module to prevent warnings from other modules
Fix error in triangular distribution (Also backported to 2.6)
2.7 libecl#
- General bug fixes and improvements
Add deprecation warnings when import ecl.ecl or import ert.ecl.
0.1 Semeio#
- New workflow jobs:
CORRELATED_OBSERVATIONS_SCALING - Experimental
SPEARMAN_CORRELATION - Experimental
- New jobs (Ported from ert-statoil for python 3):
STEA
GENDATA_RFT
DESIGN2PARAM
DESIGN_KW
Add komodo_job_dispatch from equlibrium
Version 2.6#
Highlighted changes#
Improvements to ERT CLI#
The text and shell interface has been removed from ERT, but the CLI interface has gotten a upgrade and now included basic monitoring to show the progress of the running experiment. The CLI now also supports MDA and running single workflows.
The see the usage and complete list of available commands, go to Running ERT.
Improvements to ERT GUI#
The ERT GUI now includes help links to relevant resources and the job monitoring window now also includes memory usage information for each job. In addition, the output from the Eclipse job is treated like any other job and you can now read it from the the job monitoring window.
Experimental features#
The new iterative ensemble smoother algorithm has been added as an update algorithm.
2.6 ERT application#
- New features:
Add basic monitoring to ERT cli
Memory usage monitoring in GUI
CLI supports MDA
CLI supports running single workflow
- Improvements:
Less resource intensive monitoring
Display config file name in all GUI window titles
Run dialog no longer closes when pressing esc
Improved exit monitoring when simulations fail
Active realizations field is automatically filled with the runable realizations available
Tailored plotting for single data points
Algorithm recommendations in menu
Check for observation data
Better support for lsf-nodes with unknown status
Communicate analysis completetion
Various improvements to the documentation
Document RMS job
Help links in the GUI
- Code structure and tooling:
Removed all C-code and CMake
Removed ERT_SHARE_PATH
Make CLI independent of Qt
- Breaking changes:
Removed the text and tui interfaces.
- Experimental features:
New iterative ensemble smother algorithm
Python 3 support
PyQt5 support
Add plugin system for forward models
2.6 libres#
- New features:
Suffix support for External Parameters
Back up existing parameters-file
Support for lower case shell scripts
- Improvements:
Make runWorkflows static
Exposed enkf_main_have_obs in python
Added support for unknown status in the queue driver
Ensure that the number of required successful realization are not higher then the ensemble size
Fix yaml load warnings in python 3
Fix ecl load warnings in python 3
Improved support for when lsf executables are temporarily unavailable
Use subprocess instead of fork
General code and performance improvements
- Bug fixes:
Log random seed
Make sure reporting does not fail
Remove double dash arguments from job arglists
- Breaking changes:
Deprecated various unused keywords
Deprecated updating workflows
Remove SCHEDULE as HISTORY_SOURCE
- Experimental features:
Programmatic initialization (Validation will come in a future release)
ERT forward models#
- Improvements:
Output from Eclipse job is treated like any other job
2.5 libecl#
General bug fixes and improvements
- Changes:
More aggressively close files when loading summary vectors.
Dump mapaxes even though they are not applied
Ignore wells with blank names
Infer format from extension
Use 0-based indices for nnc’s.
Allow for mixed case basenames
Reset before active cells are set
Version 2.5#
This is a small release which only contains some improvements to the GUI due to user feedback. See the Highlighted section for the most prominent changes. For a more in-depth overview, as well as links to the relevant pull requests, we refer the reader to the repository specific sections.
Highlighted changes#
Open job logs from the GUI#
Open the montoring by pressing details. If you select a realization and then click either its stdout or stderr you will get the corresponding output displayed in the GUI for easier debugging.
Notify user of failing workflows#
If workflows fail a list of the failing workflows will be presented to the user.
Polishing monitoring window#
Several minor improvements to the monitoring section, including embedding it into the existinging monitoring window, making the layout vertical to prevent scrolling, not setting the start and end times before they actually exist, colors etc is added to the monitoring window.
Debug after ensemble failure#
The above capablilities are available also after the entire ensemble has finished.
2.5 ert application#
- New functionality:
MacOS compatibility
Notify user of failed workflows
Allow the user to open logs from the forward models in the GUI
- Improvement:
Revert to old plot style if more than one data point
Validate that target is specified when running an update via the cli
Merge detailed view into the old progress window
Vertical layout of monitoring for better usability
Fetch queue status for each forward model in the detailed monitoring. Border color indicates: Yellow, still running on queue. Black, finished. Red, failed
- Others:
Documentation for setting up custom jobs.
Fix status on finished runs.
2.5 libres#
Minor code improvement and exposure of status files.
ert forward models#
No changes.
libecl#
No changes.
Version 2.4#
See the Highlighted section for the most prominent changes. For a more in-depth overview, as well as links to the relevant pull requests, we refer the reader to the repository specific sections.
Highlighted changes#
Unified ERT binary#
All launches of ERT is now to happen through the shell command ert
. To get
an overview of the various ERT tools, you can run ert --help
. You will then be
presented with the following overview.
[scout@desktop ert]$ ert --help
usage: ert [-h] {gui,text,shell,cli} ...
ERT - Ensemble Reservoir Tool
optional arguments:
-h, --help show this help message and exit
Available user entries:
ERT can be accessed through a GUI or CLI interface. Include one of the
following arguments to change between the interfaces. Note that different
entry points may require different additional arguments. See the help
section for each interface for more details.
{gui,text,shell,cli} Available entry points
gui Graphical User Interface - opens up an independent
window for the user to interact with ERT.
cli Command Line Interface - provides a user interface in
the terminal.
Hence, ert gui my_config_file
will launch the ERT-gui with the specified
configuration file. For detailed support for each of the options, use ert gui
--help
etc.
ERT command line interface#
The cli option listed above is new and will run ERT as a command line interface with no further interaction after initialization. This will be the supported command line interface of ERT in the future.
Forward model monitoring#
An essential new feature of ERT 2.4 is a monitoring screen in the GUI displaying the progress of each forward model in your ensemble. After initiating the run, press the Details button to get an overview of the progress of each of the forward models. In the view appearing you can click on a specific realization to get even more details regarding that specific realization.
Restarting failed realizations#
If some of your forward models failed there will appear a Restart button when the run has finished, which will rerun only the failed realizations.
Run prior and posterior separately#
Many users have requested the possibility of running the prior and posterior independently. This feature already exists in the advanced mode of the GUI, but to make it more accessible to the users we have now made the advanced mode the only mode.
To run your prior, you run an Ensemble Experiment. Then, to run an update you click Run Analysis from the top menu of the main window; you can then specify the target and source case and the update will be calculated. To evaluate your posterior, you then run a new Ensemble Experiment with your target case. After this, you can plot and compare just as if you had run an Ensemble Smoother to begin with.
Generic tooling in the forward model#
As a first step towards more generic tooling in ERT forward models ERT will now dump all parameters with their corresponding values to the runpath as JSON. The format of this file is still experimental and will most likely change in a future release of ERT, but one is still welcome to play around with the extra possibilities this gives.
Generic templating#
Jinja based templating has been a great success in Everest and will most likely be standardized in future version of ERT also; both with respect to configuration templating and templating in the forward model itself. As a first step towards this, a forward model named TEMPLATE_RENDER has been added. It will load the parameter values that is dumped by ERT (described above), optionally together with user specified json- and yaml-files and render a specified template. For more on how to write Jinja template, see the official documentation.
Eclipse version in forward model#
The recommended way of specifying the eclipse version is to pass <VERSION>
as argument to the forward model ECLIPSE100
instead of using
ECLIPSE100_<MY_ECL_VERSION>
. The old format of putting the version in the
job name will be deprecated in the future.
2.4 ert application#
PR: 162 - 257
- New functionality:
Unified ERT binary [165]
Restart failed realizations [206, 209]
Forward model monitoring in GUI [252]
- Improvement:
- Others:
Continued to move documentation into the manual.
TUI and shell is deprecated.
Improved automatic testing on FMU tutorial.
2.4 ert forward models#
PR: 114 - 126
- New functionality:
Forward model for dynamic porevolume geertsma [114]
- Improvements:
Eclipse version should be passed to job ECLIPSE_100 / ECLIPSE_300 as an argument
- Others:
Major move of forward models from ert-statoil to libres
2.4 libres#
PR: 411 - 517
- New functionality:
- Improvements:
- Others:
2.4 libecl#
PR: 506 - 579
- New functionality:
- Improvements:
- Others:
Various improvements to code due to now being a C++ project.
Improved documentation for Windows users
Improved Python 3 testing
Revert fortio changes to increase reading speed [567]
Version 2.3#
2.3 ert application#
PR: 67 - 162
2.3 libres#
PR: 105 - 411
2.3 libecl#
PR: 170 - 506
Version 2.2#
2.2: ert application#
Version 2.2.1 September 2017 PR: 1 - 66 Cherry-picked: 70
Misc:
Build and testing:
Queue and running:
2.2: libres#
Version 2.2.9 September 2017 PR: 1 - 104 Cherry-picks: [106, 108, 110, 118, 121, 122, 123, 127]
Misc:
Build and test fixes:
Config refactor:
In this release cycle there have been large amount of changes to the code configuring the ERT state; the purpose of these changes has been to prepare for further development with Everest. The main net change is that a new configuration object - res_config has been created ,which holds all the configuration subobjects:
Queue layer:
As part of this development cycle the job_dispatch script has been included in the libres distribution. There are many PR’s related to this script:
Documentation:
2.2: libecl#
Version 2.2.0 September 2017 PR: 1 - 169 Open PR: 108, 145
Grid:
Build & testing:
libecl now fully supports OSX. On Travis it is compiled with -Werror=all which should protect against future warnings.
C++:
Well:
Core:
Support for variable length strings in binary eclipse files [13, 146].
Renamed root package ert -> ecl [21]
Load INTERSECT summary files with NAMES instead WGNAMES [34 - 39].
Possible memory leak: [61]
Refactored binary time search in __get_index_from_sim_time() [113]
Possible to mark fortio writer as “failed” - will unlink on close [119].
Made EclVersion class [160]
Functionality to dump an index file for binary files: [155, 159, 163, 166, 167]
Misc:
Version 2.1.0 February 2017 PR: 1150 - 1415 Open PR: 1352, 1358, 1362
Queue system/workflows:
Functionality to block/restrict nodes from LSF [1240, 1256, 1258, 1274, 1412, 1415].
Use bhist command to check lsf job status if job has expired from bjobs [1301].
Debug output from torque goes to stdout [1151].
Torque driver will not abort if qstat returns invalid status [1411].
Simulation status USER_EXIT - count as failed [1166].
Added Enum identifier ‘JOB_QUEUE_DO_KILL_NODE_FAILURE [1268].
Have deprecated the ability to set queue options directly on the drivers [1288].
Added system for version specific loading for workflow job model description files [1177].
Job loader should not try to load from directory [1187].
Refactoring of max runtime - initiated from WPRO [1237].
Determine which nodes are running a job [1251].
Build updates:
Check if python modules are present in the required version [1150].
Do not build ERT_GUI if PyQt4 is not found [1150, 1230].
Do not fail build numpy is not found [1153].
Allow for user provided CMAKE_C_FLAGS on linux [1300].
Require exactly version 2.7 of Python [1307].
Travis testing improvements [1363].
Removed devel/ directory from source [1196].
Setting correct working directory, and build target dependency for sphinx-apidoc / html generation [1385].
Eclipse library:
C++ move constructor and operator= for smspec_node [1155, 1200].
fortio_ftruncate( ) [1161].
INIT writer will write keywords DEPTH, DX, DY, DZ [1164, 1172, 1311, 1388].
Grid writer will take unit system enum argument [1164].
New function ecl_kw_first_different( ) [1165].
Completion variables can be treated as totals [1167].
Fixed bug in ecl_kw_compare_numeric( ) [1168].
Refactored / inlined volume calculations in ecl_grid [1173, 1184].
Made function ecl_kw_size_and_type_equal() public [1192].
Fixed bug in ecl_grid_cell_contains() [1402, 1404, 1195, 1419].
OOM bug in ecl_kw_grdecl loader for large files [1207].
Cache cell volumes in ecl_grid [1228].
Geertsma / gravity functionality [1227, 1284, 1289, 1292, 1364, 1408].
Summary + restart - will allow some keyword differences [1296].
Implemented ecl_rst_file_open_write_seek( ) [1236].
Optionally apply mapaxes [1242, 1281].
Expose and use ecl_file_view datastructere - stop using ‘blocks’ in ecl_file objects [1250].
ecl_sum will internalize Aquifer variables [1275].
Make sure region properties RxxT are marked as total + depreecated some properties [1285].
ecl_kw_resize() + C++ operator[] [1316]
Added small C++ utility to create eclipse filenames[1396].
Make sure restart and INIT files are written with correct unit ID [1399, 1407].
Skip keyword data type: ‘C010’ without failing [1406, 1410].
Adding parsing of the last (optional) config token for the SLAVES kwd [1409].
Add nnc index to the information exported by ecl_nnc_export() [1204].
Marked solvent related total keywords ?NIT and ?NPT.* as totals [1241].
Top active cell in grid [1322].
Added absolute epsilon to ecl_kw comparsion [1345,1351].
Smoother, updates and ‘running’:
Fixed bug with local updates of GEN_DATA [1291].
Changed default MDA weights and removed file input [1156, 1190, 1191].
Bug in handling of failed realisations [1163].
Fix bug missing assignment of analysis module in ES-MDA [1179].
OpenMP implementation of fwd_step [1185, 1324,1342].
Removes the ability to update dynamic variables [1189].
Allow max CV FOLD to be the number of ensembles [1205, 1208].
Fix for min_realizations logic [1206].
Can assign a specific analyis module for one local update [1224].
Handle updates when some summary relaisations are “too short” [1400, 1405].
Extending hook manager to support PRE_UPDATE and POST_UPDATE hooks [1340,1360].
RML logging is on by default [1318].
Changed default ENKF_ALPHA value to 3.0 [??]
Implemented subsspacce inversion algorithm [1334, 1344].
libgeometry:
Added function to create new geo_surface (i.e. IRAP) object [1308].
Get (x, y) pos from surface [1395].
Python code:
cwrap has been moved out to stand-alone module, out of ert package [1159, 1320, 1325, 1326, 1328, 1332, 1338, 1341, 1343, 1347, 1350, 1353]
Simplified loading of shared libraries [1234].
Python3 preparations [1231, 1347].
Added __repr__ methods: [1266, 1327, 1329, 1331, 1348, 1373, 1375, 1377, 1384, 1387].
Implement __getitem__( ) for gen_data [1331].
Removed cstring_obj Python class [1387].
EclKW.numpy_array returns shared buffer ndarray [1180].
Minor bug in ecl_kw.py [1171].
Added EclKW.numpyView( ) and EclKW.numpyCopy( ) [1188].
Bug in EclKW slice access [1203].
Expose active_list better in Python [1392].
@TYPE@_vector suppports negative indices in __getitem__ and __setitem__; added repr method [1378].
added root() methdo ert/__init__.py [1293].
GUI / Configuration / Documentation
Bug when viewing plots while simulating [1157.]
Bug when plotting short vectors [1303].
Completely refactored the ERT Gui event system [1158, 1162].
Marked keywords INIT_SECTION and SCHEDULE_FILE as deprecated [1181].
Removed outdated keywords from documentation [1390].
Documented UMASK keyword [1186].
ConfigParser: Can turn off validation + warnings [1233, 1249, 1287].
Make ies advanced option only [1401].
Removing MAX_RUNNING_LOCAL and MAX_RUNNING_LSF from user doc [1398].
Apply plot style to other plots [1397].
Fig bug in initialization when out of range [1394].
Added new object for generic config settings [1391].
Changes to plot settings [11359,376,1380,1382,1386].
Fix bug in load case manually [1368].
Documentation of plugins [1194].
Changed all time handling to UTC. This will affect loading old cases [1229, 1257].
Removed keyword QC_PATH + updated GRID [1263].
Making sure the ertshell is creating the run path [1280].
Create Doxygen [1277,1278,1294,1309,1317].
Ability to run analysis from GUI [1314].
Improved documentation of priors [1319].
Bug in config parsing with relative paths [1333].
Field documentation updates [1337].
libwecl_well:
Internalize rates for wells and connections in the well library [1403].
New function well_ts_get_name() [1393].
libutil:
Functions for parsing and outputting dates in ISO format[1248].
stringlist_join - like Python str.join [1243].
bug in matrix_dgemm [1286].
Resurrected block_fs utilities from the past [1297].
Slicing for runpath_list [1356].