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:

../_images/version-8.0-suggestor.png

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.

../_images/version-8.0-localization.gif

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:

../_images/version-8.0-delete-runpath.gif

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.

../_images/version-8.0-update.gif

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:
  • Add STOP_ON_FAIL option for wf jobs (link)

  • Add option to delete run_path (link)

  • Move misfit preprocessor into core ert (link)

  • Implement streaming algorithm (link)

  • Implement adaptive localization (link)

  • Store observations (link)

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:
  • Use parameters from storage instead of ensemble_config (#5674)

  • Remove ANALYSIS_COPY (#5826)

  • Pass in storage to BatchSimulator.start (#5656)

  • Change init for genKw (#5637)

  • Remove ActiveList (#5695)

  • Don’t allow creating new case with existing name. (#5861)

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:
  • Make refcase only required if using HISTORY_OBSERVATION (#5830)

  • Remove the old config parser (#5657)

  • Only make time map required if DATE is used in GEN_OBS (#5805)

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:
  • Relax protobuf pin to “<4” (#3968)

  • Define usage of setuptools_scm in pyproject.toml (#4081)

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:
  • Stop special casing PRED as a GEN_KW (#3820)

  • Remove BLOCK_OBSERVATION keyword (#3732)

  • Remove UMASK config option (#3892)

  • Remove CONTAINER keyword (#3834)

  • Remove CONTAINER keyword (#3834)

  • Remove BINARY_FLOAT and BINARY_DOUBLE file formats (#3947)

Bugfixes:
  • Fix bug where random seed would overflow (#3863)

  • Fix has_data check in initRun (#3964)

  • Free obs_data in load_observations_and_responses (#3916)

New features:
  • Add a cli argument for specifying a log dir (#3819)

  • Add DisableParametersUpdate workflow (#3861)

  • Add Experiment server for CLI (#3768)

Improvements:
  • Overwrite Storage config file if it exits on disk (#3913)

  • Use variable defining matrix start size (#3856)

Dependencies:
  • Pin beartype to less than 0.11 (#3904)

  • Pin protobuf and grpcio-tools (#3909)

  • Run isort and add isort checking to CI (#3812)

  • Fix deprecation warning in py310 from setDaemon (#3848)

  • Move the iterative ensemble smoother to its own repository (#3844)

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:
  • Add a cli argument for specifying a log dir (#3819)

  • Introduce basic experiment server (#3438)

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:
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:
  • Refactor analysis config min_required_realizations (#3426)

  • Raise exception if analysis can not be performed (#3302)

  • Change verbose flag behaviour to output info-level an greater logs (#3332)

  • Change update configuration (#3322)

  • Remove unused functions on EnKFMain (#3400)

Bugfixes:
  • Fix edit analysis varables for run_analysis_panel (#3330)

  • Fix iteration nr bug in IES and add ies cli integration test (#3457)

New features:
  • ert3: Add GUI monitoring (#3167)

Improvements:

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:
  • Fix AnalysisIterConfig._repr_() and add test (#3171)

  • Fix index out of bounds for active realizations < ensemble size in ESMDA (#3200)

  • Fix bug where valid run_path was not recognised (#3254)

New features:
  • Add event viewer tool to gui (#3136)

  • ert3: Add realization selection support in ert3 (#3095)

  • ert3: Add visualise parameter to ert3 for starting webviz-ert (#3209)

  • ert3: Add support for a scalar NumericalRecord (#2934)

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:
  • Pin PyQt5-sip to 12.9.1 or lower (#3261)

  • Pin click in dev-requirements to 8.0.2 (#3172)

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:
  • Remove the IDE (Built-in config editor) (#3148)

  • Remove legacy tracker (#2965)

  • Remove enkf_obs instance from local_obsdata (#3046)

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:
  • Pin pylint to version <2.13.0 (#3161)

  • Remove requirement mypy < 0.920 (#3090)

  • Remove dependency on semeio (#2980)

  • Remove dependency on BLAS and LAPACK (#3000)

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:
  • Keyword data ndarray copy (#2806)

  • Cleanup redundant parameters (#2853)

  • Remove usage of thread_pool in job_queue (#2883)

  • [ert3] Add snakeoil example for ert3 (#2703)

  • Replace ResLog with Python logging (#2710)

  • [ert3] Implement discrete uniform and constant distribution (#2224)

Improvements:
  • [ert3] Improve error handling around ert3 initialization (#2779)

  • [ert3] Increase worker memory requirements on PBS (#2832)

  • [ert3] Add better error handling when trying to rerun an experiment (#2891)

  • Improve the summary collector (#2871)

  • matrix_type -> Eigen (#2872)

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)

  • Improve snake oil example ( #2848, #2888 )

  • 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:
  • Remove local dataset notion (#2645)

  • Remove unused functions in enkf_fs_manager (#2664)

  • Remove unused class History (#2718)

  • Remove unused python obs and measure (#2725)

  • Remove unused code in python interface with analysis module (#2716)

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:
  • Pin fastapi==0.70.1 (#2677)

  • Bump ert-storage >= 0.3.7 (#2679)

  • Don’t ask for storage as an extras in CI (#2695)

  • Pin Pandas version (#2765)

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:

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:
  • Fix IES analysis to allow custom initial ensemble mask (#2074)

  • Properly remove RMS environment when using run_external (#2104)

  • Fix crash in CSV Export plugin (#2157)

  • Fix occasional GUI crash in detailed view when opening files (#2300)

  • Fix crash in MISFIT_PREPROCESSOR due to inf values (#2356)

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:
  • Add flake8 to dev-requirements (#2188)

  • Specify version-range for beartype (#2243)

  • Set lower-bound on ert-storage >= 0.3.4 (#2324)

  • Add Conan and Catch2 (#2350)

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)

  • Improve test for active observations (#2141, #2148)

  • 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] Refactor statistical tests (#2156, #2209)

  • [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)

  • [ert3] Improve input/output handling (#2174, #2284)

  • 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)

  • Prefect tests simplification (#2192, #2317)

  • 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:
  • ert3: Add fast sensitivity algorithm (#1941)

  • ert3: Support blob output records (#1920)

Improvements:
  • Fix misspelling of keyword LSF_RESOURCE in documentation (#1242)

  • Improved on-premise integration testing (#1936, #1938)

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:
  • Fix initial ensemble state

  • Fix flaky legacy ensemble test by making job queue always launch jobs (#1794)

  • Fix GUI crash (#457)

  • Fix bug where the last summary obs was not loaded (#1813)

  • Fix bug in progress calculation (#1830)

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:
  • Fix 1307 by removing the signaller from the pool (#1307)

  • Fix extraction bug when no observations

  • Fix function ensemble run on PBS cluster by cloudpickling function (#1505)

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

  • Introduce RecordTransmitter (#1334, #1447, #1328, #1502)

  • 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:
  • Refactor Realization/Stages/Steps (#1220)

  • Drop broken ertplot script (#547)

  • Add development strategy

  • Remove new legacy storage db (#1544)

  • Advertise ert_shared entry point as ert (#418)

  • Add function step tests for function defined outside python environment (#1556)

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:
  • Run eclipse using eclrun when available

  • Add row scaling API

  • Fist working iteration of prefect evaluator (#1125)

  • Introduce ert3 (#1311)

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:
Miscellaneous:
  • Remove builtin and __future__ imports

  • Fix wrong tests folder in Github Actions

  • Introduce exceptions module for ert3 workspace errors

  • Create CONTRIBUTING.md

  • Refactor Storage API Server (#1102, #1116)

  • 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 and REAL

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 use MISFIT_PREPROCESSOR instead.

  • Drop support for Python < 3.6

  • Drop CUSTOM_KW support

  • Drop deprecated analysis keywords

  • Drop deprecated ecl config keywords

  • Drop deprecated PLOT_SETTINGS keyword

  • Drop 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 filename

  • Drop support for QC_{PATH, WORKFLOW} keywords

  • Drop support for non enum log levels

  • Remove warning for deprecated ERT_LIBRARY_PATH env variable

  • Remove 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 MisfitPreprocessor

  • Add 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 file

  • Fixed a bug where csv_export2 was not executable

  • Changed default linkage option from single to average for MisfitPreprocessor

  • Decreased likelihood of storage folders generated in source tree when running tests

  • Fixed 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:
  • Print warning if decimal point is not . [212]

  • Fixed bug such that initial realization mask contains all [213]

  • Fixed bug in iterated smoother gui [215]

  • Always display advanced settings [216]

  • Change default plot size to emphasize discrete data [243]

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:
  • Job description can set environment vars [431]

  • Experimental dump of parameters to runpath as json [436]

  • Jinja based rendering forward model [443]

  • New config keyword NUM_CPU to override eclipse PARALLEL keyword [455]

  • Expose the algorithm iteration number as magic string <ITER> [515]

Improvements:
  • Fix bug in default standard deviation calculations [513]

  • Start scan for active observations at report step 0, instead of 1 [439]

  • Bug fixes in linear algebra code [435]

  • Improved job killing capabilities of local queue [488]

Others:
  • Various improvements to code due to now being a C++ project

  • Removed traces of WPRO and the RPCServer [428]

  • CAREFUL_COPY moved to libres [424]

  • Split simulator configuration into multiple files [477]

2.4 libecl#

PR: 506 - 579

New functionality:
  • Ability to compute geertsma based on dynamic porevolume [530]

  • Support for Intersect NNC format [533]

  • Support for extrapolation when resampling [534]

  • Ability to load summary data from .csv-files [536]

  • Identify region-to-region variables [551]

Improvements:
  • Load LGR info when loading well info [529]

  • Do not fail if restart file is missing icon [549]

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:

  • Using res_config changes from libres [16]

  • files moved from libecl to libres: [51]

  • replaced ert.enkf with res.enkf [56]

  • Created ErtVersion: [61, 66].

  • Using res_config: [62]

  • Removed dead workflow files: [64]

Build and testing:

  • Cleanup after repo split [1, 2, 3 , 4, 5 , 6]

  • Added test_install functionality [7]

  • Added travis build script for libecl+libres+ert: [15, 17, 18, 19, 21, 26, 27, 39, 52-55, 63]

  • MacOS build error: [28].

  • Created simple gui_test bin/gui_test [32]

  • cmake - create symlink: [41, 42, 43]

  • Initial Python3 testing [58, 60].

Queue and running:

  • Added base run model - gui model updates: [20].

  • Added single simulation pretest running [33, 36, 50, 67].

  • Add run_id to simulation batches.

2.2: libres#

Version 2.2.9 September 2017 PR: 1 - 104 Cherry-picks: [106, 108, 110, 118, 121, 122, 123, 127]

Misc:

  • implement legacy from ert.xxx [1, 20, 21, 22]

  • Setting up libres_util and moving ert_log there [13, 44, 48].

  • Added subst_list + block_fs functionality to res_util - moved from libecl [27, 68, 74].

  • Do not generate parameters.txt if no GEN_KW is specified.[89]

  • Started using RES_VERSION [91].

  • CONFIG_PATH subtitution settings - bug fixed[43, 96].

  • Will load summary if GEN_DATA is present [123, 127]

Build and test fixes:

  • Simple functionality to do post-install testing[3]

  • Use libecl as cmake target[6,`15 <https://github.com/Equinor/res/pull/15/>`__]

  • removed stale binaries [7, 9]

  • travis will build all repositories [23].

  • Travis + OSX [69, 72]

  • Remove equinor specific settings from build sytem [38].

  • Travis split for parallel builds [79].

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:

[10, 14, 35, 39, 45, 52, 54, 58-62, 66, 75]

Queue layer:

  • Improved logging [17, 37].

  • Funcionality to create a queue_config object copy [36].

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:

[28, 40, 41, 51, 53, 63, 64, 83, 84, 85, 93, 94, 95, 97-99,

101, 103, 108, 110]

  • Create a common run_id for one batch of simulations, and generally treat one batch of simulations as one unit, in a better way than previously: [42, 67]

  • Added PPU (Paay Per Use) code to LSF driver [71].

  • Workflow job PRE_SIMULATION_COPY [73, 88].

  • Allow to unset QUEUE_OPTION [87].

  • Jobs failing due to dead nodes are restarted [100].

Documentation:

  • Formatting bugs: [49, 50]

  • Removed doxygen + build rst [29]

2.2: libecl#

Version 2.2.0 September 2017 PR: 1 - 169 Open PR: 108, 145

Grid:

  • Extracted implementation ecl_nnc_geometry [1, 66, 75, 78, 80, 109].

  • Fix bug in cell_contains for mirrored grid [51, 53].

  • Extract subgrid from grid [56].

  • Expose mapaxes [63, 64].

  • grid.get_lgr - numbered lookup [83]

  • Added NUMRES values to EGRID header [125].

Build & testing:

  • Removed warnings - added pylint [4, 5, 6, 10, 11, 12]

  • Accept any Python 2.7.x version [17, 18]

  • Remove ERT testing & building [3, 19]

  • Changes to Python/cmake machinery [25, 30, 31, 32, 49, 52, 62].

  • Added cmake config file [33, 44, 45, 47].

  • Only one library [54, 55, 58, 69, 73, 77, 91, 133]

  • Removed stale binaries [59].

  • Require cmake >= 2.8.12 [67].

  • Fix build on OSX [87, 88, 95, 103].

  • Fix broken behavior with internal test data [97].

  • Travis - compile with -Werror [122, 123, 127, 130]

  • Started to support Python3 syntax [150, 161]

  • Add support for paralell builds on Travis [149]

libecl now fully supports OSX. On Travis it is compiled with -Werror=all which should protect against future warnings.

C++:

  • Removed use of deignated initializers [7].

  • Memory leak in EclFilename.cpp [14].

  • Guarantee C linkage for ecl_data_type [65].

  • New smspec overload [89].

  • Use -std=c++0x if -std=c++11 is unavailable [118]

  • Make all of (previous( libutil compile with C++ [162]

Well:

  • Get well rates from restart files [8, 20].

  • Test if file exists before load [111].

  • Fix some warnings [169]

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].

  • Allow keywords of more than 8 characters [120, 124].

  • ecl_sum writer: Should write RESTART keyword [129, 131]

  • Made EclVersion class [160]

  • Functionality to dump an index file for binary files: [155, 159, 163, 166, 167]

Misc:

  • Added legacy pacakge ert/ [48, 99]

  • Improved logging - adding enums for og levels [90, 140, 141]

  • Refactored to use snake_case instead of CamelCase [144, 145]


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].