forked from KTH-Nek5000/KTH_Toolbox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFRAMEWORK.txt
72 lines (59 loc) · 2.64 KB
/
FRAMEWORK.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#Configuration file for Nek5000 framework developed at KTH
# Place for short description; doxygen style
/**
@defgroup toolbox Toolbox
@ingroup framework
@brief Toolbox for Nek5000
@details
This directory contains number of tools used by toolboxes developed at KTH.
Files are grouped by taks 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
subdirectories (submodules). This structure can be repeated recursively with submodules becoming
parent modules for nex level structures. The top level directories are related to the main services
that have to be provided for toolboxes. Examplary framework structure is presented in a figure.
@image html framework.png Examplary framework structure.
Modules can provide tools, [runtime parameters] (@ref parameter_list_page), memory structures (common blocks),
define interfaces and perform some tasks.
The main goal is to simplify development of toolboxes by defining simple tasks that could be used by number of tools.
At the same time clear definition of the inteface alows to keep number of different implementation of the same task.
Each module has to contain:
- FRAMEWORK.txt -module description
- makefile_usr.inc - compilation rules
- source code
- optionally example of \a setup.par including corresponding runtime parameter section
Dependences between modules are described in FRAMEWORK.txt (present in almost every directory) including:
- documentation section witten in a form of doxygen C comment
+ definition of group
+ description of module purpose
+ definition of interface provided by module
+ list of required interfaces from submodules (module dependency)
+ example of module call
+ list of provided runtime parameters
+ list of requred runtime parameters (module dependency)
+ example of section in \a setup.par file
- SUBMODULES - list of existing local submodules (different task implementations)
- EXCLUSIVE - list of local submodules that cannot be used simultaneously
- DEFAULT - default submodules
- CONFLICTS - list of modules in conflict with current module (from other tree branches)
- REQUIRED - list of required modules (from other tree branches)
- OBJECT - list of object files for USR variable in makenek
- INCLUDE - list of include files
*/
#List of existing submodules
SUBMODULES driver \
io \
utility \
tools \
popstprocessing
#List of conflicting submodules
EXCLUSIVE
#Default submodules
DEFAULT
#List of conflicting modules
CONFLICTS
#List of required modules
REQUIRED
#List of object files
OBJECT
#List of include files
INCLUDE