...
For user conveniency it provides two kinds of interfaces: user friendly graphical interface that allows non-experienced users to define an actor in intuitive way and command line interface foreseen for more advanced users that may want to e.g. automatise actor generation process using scripts.
- iWrap generates a Fortran/CPP wrapper, which intermediates between Kepler actor and user code in terms of:
- reading/writing of in/out physical data (IDS)
- passing other arguments to/from the actor
- iWrap creates a Python script (aka an actor) that:
- calls a user code
- provides error handling
- calls debugger (if run in "debug" mode)
Info |
---|
Glossary Scenario (aka workflow)
Actor
Native code
|
...
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: one of predefined values: 'Legacy IDS' 'HDC IDS''legacy' (currently only 'Legacy IDS' type has been implemented)
- example: 'Legacy IDSlegacy'
- arguments 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:
- for data type 'IDS': predefined name of one of the IDSesfor data type 'HDC' : TBD
- 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 containing parameters and schema entry:
- 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'
...
- 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
Example - Fortran code description
Code Block | ||||
---|---|---|---|---|
| ||||
--- !code_description programming_language: Fortran code_name: demo_code data_type: legacy arguments: - name: equilibrium00 type: equilibrium intent: IN - name: equilibrium01 type: equilibrium intent: IN - name: equilibrium10 type: equilibrium intent: OUT - name: equilibrium11 type: equilibrium intent: OUT code_path: ./lib/libmy_lib.a code_parameters: parameters: ./code_paramneters/parameters.xml schema: ./code_paramneters/parameters.xsd documentation: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam... ' language_specific: compiler: Intel mpi_flavour: MPICH2 open_mp: false system_libraries: - fftw3f - glib - mkl custom_libraries: - ./lib/custom/libcustom1.a - ./lib/custom/libcustom2.a |
Actor description
Warning |
---|
|
Actor description syntax
- actor_name:
- 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'
- actor_type:
- meaning: MPI compiler flavour to be used
- values: string, one of: MPICH, MPICH2, MVAPICH2, OpenMPI, etc.
- example 'MPICH2'
- data_type:
- meaning: data type handled by the physics code
- value: 'legacy' (currently only 'Legacy IDS' type has been implemented)
- example: 'legacy'
- install_dir:
- meaning: MPI compiler flavour to be used
- values: string, one of: MPICH, MPICH2, MVAPICH2, OpenMPI, etc.
- example 'MPICH2'
Example
Code Block | ||||
---|---|---|---|---|
| ||||
--- !actor_description
actor_name: core2dist
actor_type: python
data_type: legacy
install_dir: /afs/eufus.eu/user/g/g2bpalak/IWRAP_ACTORS
... |
iWrap graphical interface
...