KTH framework for Nek5000 toolboxes; testing version  0.0.1

Toolbox for Nek5000. More...

+ Collaboration diagram for Toolbox:

Modules

 Driver module
 Driver routines for toolboxes.
 
 Input/output module
 I/O routines for toolboxes.
 
 Post processing tools
 Set of tools for post-processing.
 
 Tools module
 Set of tools for Nek5000 framework.
 
 Utility module
 Diverse utilities for toolboxes.
 

Detailed Description

Toolbox for Nek5000.

This directory contains a number of tools used by toolbox developed at KTH. All the files are grouped by tasks and placed in a tree structure, where the parent directories (modules) perform some operations and can define tasks and interfaces that have to be provided by their sub-directories (sub-modules). This structure can be repeated recursively with sub-modules becoming parent modules for the next level structures. The top level directories are related to the main services that have to be provided for toolboxes. An exemplary framework structure is presented in the figure.

Examplary framework structure.

Modules can provide tools, runtime parameters, memory structures (common blocks), define interfaces and perform some tasks. The main goal is to simplify the development of the toolbox by defining simple tasks that could be used by a number of tools. At the same time, a clear definition of the inteface makes it possible to have the number of different implementations of the same or various tasks. A good example is the time stepping tool, which can be used for both power iteration and spectra calculation with the Arnoldi algorithm. In this case, the time stepping module defines the interface of stepper_vsolve, while both power iteration and Arnoldi algorithm sub-modules provide its implementation.

Each module has to contain:

Dependences between modules are described in FRAMEWORK.txt, which is present in almost every directory. It is a documentation file written in a form of doxygen C comment including:

In addition there is a bash script toolbox_path.sh located at the top level directory of the toolbox. It provides a set of the environment variables defining absolute paths of each of the modules in the toolbox containg the code. These variables are later used in makefile_usr.inc to define compilation rules. It prevents copying the source files from the toll's directory to the compilation directory except those include files marked _template in the source code directory that require user modification.