Table of Contents

Configuration of the TELEMAC system under the Python environment

links from Installation notes and Python for TELEMAC


Environment Variables

A (small) number of environment variables must be set in your user profile. Namely you have to modify the variable $PATH and to create a new variable called $SYSTELCFG. Once these are setup, a configuration file (commonly named the “systel.cfg” file) has to be modified depending on your operating system configuration.

$PATH

For the installation procedure with Python, the ”~root\scripts\python27” directory should be added to your PATH. Here is the instruction to do so depending on your operating system:

export PATH=/home/user/opentelemac/v7p1/scripts/python27/:$PATH

Please note that the symbol ”:“ is used as separator on Linux and Unix operating systems.


c:\opentelemac\v7p1\scripts\python27
Please note that the symbol ”;” is used as separator on MS Windows operating systems.


Optionally, if you are using a Fortran Compiler, you should make sure that it is accessible to you within a command line windows or terminal, and if you are using the TELEMAC-MASCARET system in parallel, you should make sure that MPI utilities such as mpiexec and mpif90 depending on operating system are also within your PATH.

$SYSTELCFG

The variable SYSTELCFG provides TELEMAC-MASCARET with the path to one of the configuration files ”~root/configs/*.cfg” present in the directory ”~root/configs/”. In the same way it was done for the PATH, here is the instruction to do so depending on your operating system:


export SYSTELCFG=/home/user/opentelemac/v7p1/configs/systel.cis-ubuntu.cfg
Please note that SYSTELCFG only supports one configuration file, altough one configuration file can include multiple configurations.


c:\opentelemac\v7p1\configs\systel.cis-winxp.cfg


Again, please note that SYSTELCFG only supports one configuration file, altough one configuration file can include multiple configurations.


The file $SYSTELCFG/systel.cfg.

For the installation procedure with Python, the core of the TELEMAC configuration lies in the “systel.cfg” file (the name of the file can be defined by the user) situated at the address given by the environment variable $SYSTELCFG (see above). This file is directly interpreted by TELEMAC.

The file “systel.cfg” is made of one short section defining the list of configuration names of your computer followed by as many sections as you have configurations on your computer. Sections are separated by names in square brackets (i.e. [Configurations]) and where each section contains a number of pairs key = value, or key : value (i.e. configs : fedgfortrans fedgfopenmpi ubugfortrans ubugfopenmpi susgfortrans susgfopenmpi). The sections withing the configuration file are as follows:

The details of the keys and values for each sections is as follows:


1. [Configurations]

This section has only one keys.

For instance, on Windows operating systems:
configs : wintelscal wintelmpi wing95scal
For instance, on Ubuntu Linux operating systems::
configs : ubugfortrans ubugfopenmpi
For instance, on OpenSUSE Linux operating systems:
configs : susgfortrans susgfopenmpi


Again, the names in the lists above are arbitrary and could define configurations for a number of computers within an organisation. The “systel-edf.cfg” is such a configuration file, where most of the types of computers used at EDF-LNHE are represented.


2. [user-configuration-name]

This section has a larger number of keys necessary to configure your TELEMAC on your computer. Here [user-configurtaion-name] takes the value defined by the user, for instance [wing95scal]. That name is also used by TELEMAC to create a subdirectory within the tree structure of each module at the same level as the “source” to store the compiled object, libraries and executables created for that specific configuration. In order to help with this setup a number of pre-defined configurations have been stored in “systel-*.cfg”. It is therefore recommended that you make a copy of one of the files provided, rename it “systel.cfg” and select the most appropriate configs' value for your own configurations.


In this section of the file or in any of these sections (should you define multiple configurations for your computer) the following keys are required:

= root =

For instance on MSWindows operating systems:
root : c:\opentelemac\v7p1
and on Linux operating systems:
root : /home/user/opetelemac/v7p1

= version =

version : v7p1

= language =

= modules =

For instance, the compilation of the entire TELEMAC system, re-creating all existing objects, libraries and executables would simply write on MSWindows operating system:<br />
[wintel32s]
root: c:\opentelemac\v7p1
version: v7p1
modules: clean system

: It is recommeneded that you just use the following by default:

modules: update system

Note that the order of appearance of the names of the module has no bearing on the compilation of the TELEMAC system. In addition, TELEMAC will sort out the dependencies between modules automatically, which means, for instance, that the following will compile TELEMAC-2D only:

modules: update telemac2d

= options =

options : parallel mpi

= cmd_* =


: For instance, for the Intel Fortran compiler

'''cmd_obj''': ifort.exe /c /Ot /iface:cref /iface:nomixed_str_len_arg /nologo
/names:uppercase /convert:big_endian /extend_source:132 '''<mods>''' '''<incs>''' '''<f95name>'''
'''cmd_lib''': xilib.exe /nologo /out: '''<libname>''' '''<objs>'''
'''cmd_exe''': xilink.exe /nologo /subsystem:console /stack:536870912 /out:<exename> '''<objs>''' '''<libs>'''

: (One should note the absence of space between '/out:' and '<exename>')


: For instance, for the gfortran compiler on Linux operating systems:

'''cmd_obj''': gfortran -c -O3 -ffixed-line-length-132 
-fconvert=big-endian -frecord-marker=4 '''<mods>''' '''<incs>''' '''<f95name>'''
'''cmd_lib''': ar cru '''<libname>''' '''<objs>'''
'''cmd_exe''': gfortran -fconvert=big-endian -frecord-marker=4 -v -lm -lz -o '''<exename>''' '''<objs>''' '''<libs>'''

: (One should note the space between '-o' and '<exename>')


= mods, libs, incs = * 'mods', 'libs', 'incs': for the compilation of (parts of) the TELEMAC system, the following keys are added to further fine tune the compiler directive, including linking to external libraries. These keys are built based on two words. The first 4 letters, are incs, libs, or mods and define how the compiler should link to include, library and module files. For instance, on Linux operating system, for the gfortran compiler and the MPICH2 implementation, assuming that libmetis is under /usr/lib while the XDMF library is one level up from the ~root directory of the TELEMAC system:

'''mods_all''': -M<config>
'''libs_all''': '''<root>'''\..\lib\XDMF\XdmfUtils.a /usr/lib/libfmpich.so
'''incs_parallel''': -I/usr/include/mpich2
'''libs_parallel''': /usr/lib/metis-4.0/libmetis.a


: While the '“_all”' are use commonly accorss all modules, it is possible to also specify specific dependencies, such as '“libs_parallel”', for which the libmetis only applies to the executables of the parallel module (partel in particular).


: At the compilation stage the key '<root>' is replaced by '~root' of the TELEMAC system and '<config>' by the appropriate local directory created for a specific module and configuration (where the objects, libraries and executables are).


= sfx_* = * 'sfx_*': defines the suffixes of each type of files created through the compilation commands. There are 4 of them: 'sfx_lib', 'sfx_obj', 'sfx_mod', 'sfx_exe' and 'sfx_zip'. A library would have a '”.lib”' extension on windows while having a '”.a”' extension on Linux, for instance. The suffix can also be empty, which is appropriate for executables on Linux, for instance, as opposed to '”.exe”' on MS Windows operating system. Note that 'sfx_zip' is used to define what type of ZIPPER will be called, depending on the platform. So '”.zip”' will launch a windows-like zip archive while '”.gztar”' will launch the standard tarball and gzip tools, if installed.


= options' relatives = * 'parallel', 'mpi', etc.: last but not least, some of the options defined with the key '“options”' are completed with their own keys. These keys further inform how TELEMAC is launched. At this stage, only the '“mpi”' option has such key, but a number of other keys will be defined in the future, for example, to put a simulation in a queue system on a cluster of computer.



: For instance on Linux operating systems with the MPICH2 implementation (where the command 'mpiexec' completes the launch of the TELEMAC modules), the following two keys are added to the configuration:

'''mpi_cmdexec''': /usr/bin/mpiexec '''<wdir>''' '''<ncsize>''' '''<host>''' '''<exename>'''
:mpi_hosts: -localonly


: The field '<wdir>' is replaced by the absolute path of the temporary sub-directory where the simulation is launched from. The field '<ncsize>' is read from the keyword of your CAS file (PARALLEL PROCESSORS). The field '<host>' is taken from the key '“mpi_hosts”' is there, or replaced by '”-localonly”' by default. The field '<exename>' is replaced by the name of the temporary executable created by TELEMAC within the temporary sub-directory.


Important note

For the installation procedure with Perl, the environment variable 'SYSTELCFG' sets the directory where TELEMAC will find the file '“systel.ini”'. For the installation procedure with Python, the environment variable 'SYSTELCFG' sets the configuration file and its path, without assuming that the name of the file would be '“systel.ini”'. The name of the configuration can be set by the user and will be here referenced by '“systel.cfg”'.