KTH framework for Nek5000 toolboxes; testing version
0.0.1
|
This framework provides platform for development and shearing the tools based on Nek5000 code. It contains number of utilities that allow Nek5000 users to perform additional tasks. The main objective is to allow different users to exchange their code that is not part of Nek5000 core but operates through standard user interface (mainly through userchk).
To make this platform easy to expand and reuse existing code we introduce specific directory structure representing different tasks. All files are grouped by taks and placed in a tree structure, where the parent directories (modules in Doxygen nomenclature) perform some operations and can define tasks and interfaces that have to be provided by their subdirectories (submodules). This structure can be repeated recursively with submodules becoming parent modules for next level structures. A backbone of the whole framework is module called frame that provides dynamical databases for all tools (modules), runtimes parameters and timers introduced by framework. This module should be started first and all the remaining tools should be registered with it. For more information check Toolbox page.
The top level direcotries in the framework point to stable release of three main github repositories (using git submodules):
Each ot these repositories can be downloaded separately by executing
git clone https://github.com/Nek5000/Nek5000.git -b master git clone https://github.com/KTH-Nek5000/KTH_Toolbox -b master git clone https://github.com/KTH-Nek5000/KTH_Examples -b master
or as a single framework by
git clone --recursive https://github.com/KTH-Nek5000/KTH_Framework
The second method is preferred as Nek5000 repository has neither development nor stable branches and all the development goes directly to master branch. As stable releases are marked by tags the user has to be careful to clone Nek5000 version compatible with current tool version. On the other hand the submodule within KTH_Framework points to the speciffic commit in Nek5000 repository forcing consistency between tools and Nek5000 versions. For the same reason user has to be careful using
git submodule update --remote Nek5000
as it would load all the new commits. The proper way of upgrading KTH_Fremwork is running from the main framework directory
git fetch git merge origin/master git submodule update --recursive
To make this platform easy to use we pay attention to Doxygen based documentation of every tool. It has to provide detailed description of the tool itsef, the routine interfaces, runtime parameters and possible dependencies between modules. The general description of every tool is given in FRAMEWORK.txt, which is present in almost every directory. This documentation is available online as GitHub Pages (gh-pages bfranch) and can be generated locally by executing at the top level of the local copy of KTH_Framework repository:
mkdir html doxygen ./docs/Doxyfile rm doxygen.warning
It requires doxygen 1.8.11 or newer and the dot tool from Graphviz. All files required by doxygen are located under ./docs/. It includes configuration file (Doxyfile), bibliography (doxy.bib) and web pages contents (mainpage.dox).
To reference the KTH framework, please cite this article [3]