Skip to content

Resolve "Allow multiple models in one inifile"

What does this MR do?

Implements the proposition done in #107 (closed)

  • Now there is one xml called common that has all the keywords that any model would need.
  • Now each model has its own xml. The idea is that xml files don't get too long and that keywords can be explained in different sections of the documentation.
  • If the adaptivity policy is waterFlux, then the adaptivity category is moved into the richards. category.
  • The C++ code has not changed too much inside simulation objects since we pass to each simulation the sub-category of the model (i.e inifile.sub("richards")). In order to have this feature, some keywords have to be copied into the sub-category: grid extension and adaptivity.*. For that purpose, I created the static function Setup::inifile(...).

Changes from the initial proposition:

  • The generated ini files are merged together with CMake so that the config.ini passed to the user with the command dorie create has all the possible keywords.

  • All the test have the modified keywords.

  • The documentation was updated taking into account the new format.

  • The parameter scraper was split into two wrapper scripts:

    • scrape_folder performs the parameter scraping and matches the instances found with the XML files. It dumps its data into a YAML file and can concatenate data if the file already exists. This way, parameter data from subsequent runs gets accumulated.
    • write_config uses the YAML file data to write single INI, HTML, and RST files.
  • Minor changes to the formatting of the config file docs, the config files themselves, and the handling of file paths inside the module.

Is there something that needs to be double checked?

Name convention for the numerics category.

Can this MR be accepted?

A passing pipeline is enough for testing.

  • Implemented
  • Pipeline passing
  • Added entry to CHANGELOG.md

Related issues

Closes #107 (closed)

Edited by Lukas Riedel

Merge request reports