Model Bundles¶
Warning
The model bundle abstraction is undergoing an overhaul (slated for LIVVkit 3.1) to make adding new models significantly easier. We are actively working on supporting MALI (MPAS-Albany Land Ice), BISICLES (Parallel Ice Sheet Model), and others. If you’d like to help or request support for your model, please open an issue on github.
Adding new models requires a new implementation in the bundles
directory. Currently, CISM_glissade
is the only implemented bundle and it should be used as a template for a new bundle. Simply copy the
entire directory to a new directory where the name should indicate the model being added (e.g.,
cism_albany
, mpas_li
).
Warning
The bundle’s name needs to follow the Python naming convention for a Python package (see PEP 8#package-and-module-names).
The new bundle will need to be edited for use each component (verification, performance, numerics, and validation). These functions primarily are used to accommodate for model-specific implementations of things such as parsing log files, assimilating timing data, and arranging data onto standard grids.
In addition to implementing component specific modules, each bundle must provide component level configuration files to provide information about which test cases are run, file and variable naming schemes, and data locations.
When the new bundle has been implemented and placed in the bundles
directory it will
automatically be registered by LIVVkit at runtime. It is important to note that in order to use
LIVVkit on a new model it will also have to conform to the standards described in the
Model Output/LIVVkit Input Hierarchy section.
Note
It is critical that the model_variant
sub-directory in the LIVVkit input directory hierarchy
name is the same as the directory name that you have implemented in bundles
.