Skip to content

Releases: jouvetg/igm

v2.2.2

08 Jul 10:38
Compare
Choose a tag to compare
re-introduce features removed after samuel update

v2.2.1

15 Feb 10:58
Compare
Choose a tag to compare
ci: updated workflow to have python match 3.10 requirement in setup.py

v2.2.0

14 Feb 14:43
Compare
Choose a tag to compare

IGM was redesigned by Brandon to make it a bit more user friendly, robust, and modular.

Breaking change: If you have a custom module mymodule.py, you must change the name of function params_mymodule, initialize_mymodule, update_mymodule, finalize_mymodule to params, init, update, and finalize.

Minor changes:

  • working_dir parameter was removed
  • it is now possible to pass the parameter file as input in the command line igm_run --param_file params1.json
  • reorganized modules into folders (allowing users to create more complex structures not limited to a file)
  • Added the ability to make different .json files (so you can run a bash script testing multiple different situations)
  • Changed how custom modules work (you can use a file, folder, or add your modules directly to igm codebase)
  • Made more user friendly error handling (with regard to the above)
  • Worked on dependencies between modules
  • Worked on logging modules for debugging
  • Fixed namespace collisions (as in modules and variable name conflicts)
  • Added more software related things (CI/CD and unit testing)

v2.1.0

13 Nov 22:17
Compare
Choose a tag to compare
  • The definition of the sliding coefficient was changed with the new rule : new_slidingco = old_slidingco^(-1/iflo_exp_weertman) , this is now described in the concept paper that way. I also changed the default sliding co accordingly (before was 10000, it is now ~ 0.045). In case you force init_slidingco in your parameter file with your own value, make sure to update this value : so you just need to replace iflo_init_slidingco=your_value by iflo_init_slidingco=yourvalue^(-1.0/3.0) (usually iflo_exp_weertman=3). With the new definition, slidingco close to zero (like 0.1 to 0) means high basal sliding, higher values (1 is very high) means a lot of friction.

v2.0.4

24 Oct 08:12
Compare
Choose a tag to compare
v2.0.4 Pre-release
Pre-release

There were major change with the former IGM released before August 2023,

  • The all-in-one igm class was split into multiple independent modules/files (functions) that may work independently

  • igm is no longer a class, but a package with a number of functions

  • state is a variable that contains all "state" variables, e.g. state.thk permits to access ice thickness, it replaces the former glacier, but without the functions.

  • all parameters are handled separately in params

  • Each modules have a series of function. The most important are params_XXX(parser), init_XXX(params,state) and pdate_XXX(params,state), which provide the parameters, initialize and update the quantity XXX within the time iteration.

  • former geology.nc and observation.nc are now merged into input.nc

  • former output ex.nc file is now called output.nc, while ts.nc is called now output_ts.nc

  • rename following parameters:

    RGI      ->       oggm_RGI_ID
    resample ->       coarsen
    tstart   ->       time_start
    tend     ->       time_end
    tsave    ->       time_save
    dtmax    ->       time_step_max
    
  • By default, IGM implements the Physics Informed Deep Learning emulators, but the former emulator can still used provided (1) calling module iceflow_v1 instead os iceflow ii) the path the emulator must be provided iii) should you used the optimize module for iceflow_v1, then use the optimize_v1 iv) should you used the particle module for iceflow_v1, then use the particle_v1).

  • 24 oct 2023: there were major update of module and parameter name, use the script patch_reform_names.py located at the root of the github repo to update your parameters or user-define modules. This utility script is used to update the names of the modules and parameters of igm
    after a major update of the code done on Oct 24, 2023. Follow the following procedure: 1) Go to the folder where you have your igm parameter file and user-defined modules, 2) Run the script below with the name of the parameter file and the name of the modules as arguments. 3) Both will produce a copy of the former (params_old.json, mymodule_old.py) and the new (reformed) ones (params.json, mymodule.py), check the code runs with the new files. If yes, you can delete the old files. If not, you must investigate the differences between the old, possibly correct manually. You can also look manually the correspondence table in patch_reform_names.py between old and new parameters and modules names.

              python patch_reform_names.py params.json 
              python patch_reform_names.py mymodule.py 

v2.0.0

20 Sep 14:18
135cc45
Compare
Choose a tag to compare
Delete igm_run.py