...
Generic information common for all (or at least majority of) programming languages.
programming_language
- meaning: language of physics code
- value: one of predefined values: 'Fortran', 'CPP'
- example: 'Fortran'
code_name
- meaning:
- name of user method / subroutine to be called,
- must be exactly the same as name of called method / subroutine
- it is used also as an actor name
- value: string
- example: 'my_subroutine'
- meaning:
data_type
- meaning: data type handled by the physics code
- value: 'legacy' (currently only 'Legacy IDS' type has been implemented)
- example: 'legacy'
arguments
- list of arguments- argument definition:
- name:
- meaning: user defined argument name
- value: string
- example: equilibrium00
- type:
- meaning: a type of an IDS argument
- value:
- predefined name of one of the IDSes
- example: 'equilibrium'
- intent
- meaning: determines if given argument is input or output one
- value: predefined - string "IN", "OUT"
- name:
- argument definition:
code_path:
- meaning: path to system library (C, CPP) , script (Python), etc containing the physics code, including method/subroutine to be run
- value: string, valid path to file
- example: 'any text'
code_parameters
- a structure containingparameters
and schemaentry
:- parameters:
- meaning: path to XML file containing user defined parameters of the physics code
- value: string, valid path to file
- example: './code_parameters/parameters.xml'
- schema:
- meaning: path to XSD file contains schema of XML parameters, to be able to validate them
- value: string, valid path to file
- example: './code_parameters/parameters.xsd'
- parameters:
documentation
:- meaning: human readable description of native code
- value: string
- example: 'any text'
Language specific part - Fortran/C++
compiler
:- meaning: the name/vendor of the compiler (and not compiler command!) used to compile native codes
- value: string, one of vendors of compilers, currently: 'Intel' or 'GCC'
- example: 'Intel'
mpi_flavour
:- meaning: MPI compiler flavour to be used
- values: string, one of: MPICH, MPICH2, MVAPICH2, OpenMPI, etc.
- example 'MPICH2'
open_mp
:- meaning: if user code should be compiled with OpenMP flag
- values: boolean
- example 'true'
system_libraries
:- meaning: a list of system libraries, managed using pkg-config mechanism, that has to be used while native code linking
- value: a list of system libraries names, as they are published by pkg-config
example:
- fftw3f
- glib
- mkl
custom_libraries
:- meaning: additional libraries, not managed by pkg-config mechanism, necessary to link of the physics code :
- value: a list of paths to libraries
example:
- ./lib/custom/libcustom1.a
- ./lib/custom/libcustom2.a
...
Actor description syntax
actor_name
:- meaning: the arbitrary, user defined name of the actor. It determines: the name of class to be generated and directory where actor will be put
- value: string
- example: 'core2dist'
actor_type
:- meaning:
- values: 'python' (currently only python type has been implemented)
- example
data_type
:- meaning: data type handled at the workflow level
- value: 'legacy' (currently only 'Legacy IDS' type has been implemented)
- example: 'legacy'
install_dir
:- optional parameter
- meaning: user chosen folder, where an actor will be installed
- values: string,
- example : /my/working/dir/IWRAP_ACTORS
- if not defined, a default installation directory will be used
...
Usage of actor within workflow
Importing actor to workflow script
To make an actor class visible inside a workflow script it has to be imported:
from <actor_package>.actor import <actor_class>
In a current version both: <actor_package> and <actor_class> are set to the same value provided by user as an 'actor name'.
...