Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Quote of the day:
Anything that can go wrong, will go wrong- Murphy's law

 

...

 

Info

Developer guidelines
A detailed guidelines and recommendations for code developers could be found here

 

 

4.1.2 FC2K main window

Image RemovedImage Added

Fig. 1. FC2K main window
Warning

If you open an existing project, all relative paths defined within project will be relative to a directory within which fc2k was started

 

4.1.3 Actor description

 Image Added

Fig. 2. FC2K actor description


This group of graphical controls allows to set the description of the actor and its "place" in hierarchy of Kepler elements in Kepler "Component" browser

...

 

Warning

A name of user subroutine must be exactly the same as it was defined in user code

 

4.1.4 Environment

Image Added

Fig. 3. FC2K environment tab


The Environment text fields shows UAL and Kepler locations.

...

Below you can find explanation of FC2K arguments tab.

Image RemovedImage Added
Fig. 24. "Arguments" tab
  • Type - Defines a type of an argument. It is possible to choose either IDS based type (e.g. equilibrium, topinfo, etc.) or primitive type (e.g. int, long, double, char)
  • Single slice - Determines if IDS is passed as single slice or an array. (This setting is valid for IDS types only )
    • if turned ON - Only one slice is passed. An actor will get an additional port to define a time.
    • if turned OFF - All IDSes for given shot run is passed.
  • Is array - Determines if a primitive type  is passed as a scalar or an array
    • if turned ON - An argument is passed as an array. It requires definition of array size (dynamic array are not supported) 
    • if turned OFF - An argument is passed as a scalar.
  • Array size - Defines the size of an array of primitive types
  • Input - Defines argument as an input
  • Output - Defines argument as an output
  • Label - User defined name of an argument (and actor port)

 

Warning

Restrictions concerning type and order of arguments

Arguments specified in this tab must match a type and order of arguments of the routine/function.

Image RemovedImage Added

Fig. 35. An example of subroutine arguments

...

Code specific parameters are all parameters which are specific to the code (like switches, scaling parameters, and parameters for built-in analytical models) as well as parameters to explicitly overrule fields in the ITM data structures.

Image RemovedImage Added

Fig. 46. "Parameters" tab
  • Frequently Used XML - Actual value of the code parameters
  • Default XML - Default values of the code parameters
  • Schema - A (XSD) XML schema

...

4.1.7 "Source" tab explained

Image RemovedImage Added

Fig. 57. "Source" tab

The purpose of this tab is to define all code related issues:

  • a programming language
  • utilized compiler,
  • type of code execution (sequential of parallel)
  • libraries being used

4.1.7

...

A user, using this tab, selects programming language of codes provided, compiler used to built library and type of code execution (sequential or parallel)

Image Removed

Fig. 6. "Source" tab - code description
  • Type - Defines programming language of user codes. It could be set to:
    • Fortran
    • _C/C++
  • Compiler - Defines compiler being used. Possible values:
    • ifortg95gfortran
    • gccg++
  • Parallel MPI - If turned ON uses MPI compilers (mpiifort for ifort, mpif90 for gfortran, mpigxx for C)
  • OPENMP - Defined if usage of OpenMP directives is turned ON/OFF
  • Batch - If turned ON, submits a user code to jobs queue (combined with Parallel MPI or OPENMP switch runs user code as parallel job)

...

.1

...

Libraries

"Main library"

"Main library" field allows to define a path to library containing user subroutine/function.

Image RemovedImage Added

Fig. 78. "Source" tab - A path to "main" and "optional" library
"Optional library"

"Optional library" field allows to define a path to optional library containing user subroutine/function.

 

"Custom libraries"

"Custom libraries" are non-standard static libraries required for building the user code.

Image RemovedImage Added

Fig. 89. "Source" tab - A list of "custom" libraries

...

"System libraries" are system libraries handled by pkg-config mechanism and required for building the user code.

Image RemovedImage Added

Fig. 910. "Source" tab - A list of "system" libraries

...

  • add library from the list,
  • remove library
  • display detailed info (library definition returned by pkg-config mechanism)

Image RemovedImage Added

Fig. 1011. Adding "system" libraries
Tip
  • Tooltips show a detailed info about parameters that would be added to Makefile for selected library
  • "Search" field allows for easy filtering the list of libraries
  • Only ITM libraries (80+) are shown by default. To see a list of all libraries (250+) defined by pkg-config mechanism "List all system libraries" checkbox should be selected.
  • The libraries marked as built for compiler other than currently selected one are filtered out of the list. To turn off this filter unselect appropriate checkbox

 

4.1.8 "Settings" tab explained

A user, using this tab, selects programming language of codes provided, compiler used to built library and type of code execution (sequential or parallel)

Image Added

Fig. 12. "Settings" tab - code description
  • Programming languange:
    • Type - Defines programming language of user codes. It could be set to:
      • Fortran
      • _C/C++
    • Compiler - Defines compiler being used. Possible values:
      • ifortgfortran
      • gccg++
  • Computation:
    • Parallel MPI - If turned ON uses MPI compilers (mpiifort for ifort, mpif90 for gfortran, mpigxx for C)
    • OPENMP - Defined if usage of OpenMP directives is turned ON/OFF
    • Batch - If turned ON, submits a user code to jobs queue (combined with Parallel MPI or OPENMP switch runs user code as parallel job)
  • Additional features:
    • Calls init method - If user function needs any pre-initialization, an additional function will be called.
    • Returns diagnostic info - adds output diagnostic information

4.1.9 "Documentation" tab explained

The "Documentation" tab specifies an user-defined Kepler actor description. It could be displayed from actor pop-up menu.

Image RemovedImage Added

Fig. 1113. "Documentation" tab

4.1.10 "Interface" tab explained

The "Interface" tab specifies interface for Kepler actor.

Image Added

Fig. 14. "Interface" tab

4. Incorporating user codes into Kepler using FC2K - exercises

...