Release notes for ERT
=====================
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 `_]
- removed stale binaries [`7 `_, `9 `_]
- travis will build all repositories [`23 `_].
- Travis + OSX [`69 `_, `72 `_]
- Remove statoil specific settings from build sytem [`38 `_].
- Travis split for parallell 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 blacklist 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].