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 <https://github.com/Statoil/res/pull/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:

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