Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

TELEMAC (Installation)

Vorwort

This tutorial walks you through installing open TELEMAC-MASCARET on Debian Linux-based systems (including Ubuntu and derivatives like Linux Mint). Plan for roughly 1-2 hours and a stable internet connection; the downloads exceed 1.4 GB.


Dieser Abschnitt umfasst nur die *Installation von TELEMAC. Für Tutorials zu hydro(-morpho)dynamischen Modellen mit TELEMAC siehe die TELEMAC tutorials section.

Einige Installationsmöglichkeiten stehen zur Verfügung:

Custom Installation (Recommended)
Mint Hyfo VM
SALOME-HYDRO
Docker Image

Weiter lesen und gehen Sie durch die folgenden Abschnitte.

Grundlegende Anforderungen

Die Zusammenarbeit mit TELEMAC erfordert Software, um Quelldateien herunterzuladen, zu kompilieren und das Programm auszuführen. Die obligatorischen Softwarevoraussetzungen für die Installation von TELEMAC auf Debian Linux] werden in den folgenden Abschnitten erläutert.

Python3

** Geschätzte Dauer: 5-8 Minuten.**

Python3 wurde standardmäßig auf Debian seit Version 10 (Buster) installiert und es ist erforderlich, TELEMACs Compiler/launcher-Skripte auszuführen. Um Python3 zu starten, öffnen Sie ein Terminal und führen Sie python3; um zu beenden, verwenden Sie exit() oder drücken Sie Ctrl+D.

TELEMAC benötigt die NumPyBibliothek; die meisten Workflows setzen sich auch auf SciPy und Matplotlib. Da TELEMAC nicht standardmäßig ist, hilft Python Header und eine saubere Umgebung.

Um die gemeinsamen Systempakete zu installieren, führen Sie:

sudo apt update
sudo apt install python3-numpy python3-scipy python3-matplotlib python3-pip python3-dev python3-venv

Wenn Sie auf einer älteren Debian-Version sind, die nicht distutils in der Standard-Python enthalten ist, installieren Sie auch python3-distutils.

Um zu testen, ob die Installation erfolgreich war, geben Sie python3 in Terminal ein und importieren Sie die drei Bibliotheken:

Python 3.11.1 (default, Jul  25 2030, 13:03:44) [GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> a = numpy.array((1, 1))
>>> print(a)
[1 1]
>>> exit()

Keiner der drei Bibliotheksimporte sollte eine ImportError-Nachricht zurückgeben. Um mehr über Python zu erfahren, lesen Sie den Abschnitt unter Pakete, Module und Bibliotheken.

Gier

** Geschätzte Dauer: <5 Minuten**

Installation und Nutzung von Git sind unter der git section of this eBook. Zusätzlich zu dem, was dort beschrieben wird, benötigen Sie Git Large File Storage (Git LFS), um große Vermögenswerte zu handhaben, wenn ein TELEMAC-bezogenes Repository es verwendet. Bei Debian benötigen Sie in der Regel nur git (nicht git-all, die viele Extras zieht), plus git-lfs. Installieren und initialisieren:

sudo apt update
sudo apt install git git-lfs
git lfs install

git lfs install richtet LFS für Ihr Benutzerkonto ein; so ist es harmlos, auch wenn ein bestimmtes Repository keine LFS verwendet.

GNU Fortran 95 Compiler (gfortran)

** Geschätzte Dauer: 3-10 Minuten.***

Das Python-basierte Build-System von TELEMAC erfordert einen Fortran-Compiler; die gemeinsame Wahl auf Debian ist der GNU Fortran-Compiler (gfortran), der rückwärtskompatibel mit GNU Fortran 95 ist und neuere Standards unterstützt. Debian liefert gfortran aus seinen Standard-Repositories. Um es zu installieren, öffnen Sie ein Terminal und führen Sie:

sudo apt update
sudo apt install gfortran

Nach der Installation überprüfen Sie Ihr Setup mit gfortran --version; der Compiler muss auf Ihrem PATH für TELEMAC Skripte sein, um es zu finden.

Mehr Compiler und Essentials

** Geschätzte Dauer: 2-5 Minuten.**

Für den Aufbau von TELEMAC und dessen Abhängigkeiten benötigen Sie C/C++ und CMake. Installieren Sie Debians build-essential (die gcc, g++ und make) und cmake angibt; dies ist erforderlich, um Quellen zu kompilieren, einschließlich paralleler (MPI) Builds, obwohl MPI selbst von Paketen wie OpenMPI bereitgestellt wird, die Sie später installieren werden. Das dialog-Paket ist optional, aber nützlich, da einige Helper-Skripte einfache Textschnittstellen verwenden. Für die Bearbeitung von Shell-Skripten können Sie gedit (weiterlesen oder Alternativen wie Nano oder Vim) verwenden. Lauft!

sudo apt update
sudo apt install -y build-essential cmake dialog gedit gedit-plugins

Installationspfad einrichten

Bis zu diesem Punkt wurde Software über Debians Paketmanager (APTITUDE, apt) installiert. Im Gegensatz dazu wird TELEMAC (d.h. git-cloned) aus dem GitLab-Repository in ein Verzeichnis heruntergeladen, das Sie wählen. Sein Build/install Workflow ist insbesondere nicht standardmäßig, so dass Pfadwahlen wichtig sind. Wählen Sie eine der folgenden Einstellungen:

In den folgenden Abschnitten zeigen wir eine Einzelbenutzerinstallation von TELEMAC (einschließlich SALOME) mit ROOT=/home/HyInfo/opt.

Holen Sie sich TELEMAC Repo

** Geschätzte Dauer: 25-40 Minuten (große Downloads).***

Holen Sie die TELEMAC Quellen mit Git-LFS. Im Terminal erstellen oder wählen Sie Ihr Arbeitsverzeichnis (hier: /home/HyInfo/opt - siehe oben), und ändern Sie (cd) in es; zum Beispiel:

cd /home/HyInfo/opt
git clone https://gitlab.pam-retd.fr/otm/telemac-mascaret.git

Damit wird das Repository in ein Unterverzeichnis namens telemac-mascaret. Für schnellere Downloads können Sie einen flachen Klon mit --depth=1 verwenden, um zu verstehen, dass diese Geschichte begrenzt.

Nach dem Klonen des Repository, identifizieren Sie die neueste markierte Veröffentlichung. Aktualisieren Sie zuerst Ihre Tagliste und zeigen Sie verfügbare Versionen an:

cd telemac-mascaret
git fetch --tags
git tag -l

Ab November 2025 ist die jüngste offizielle Veröffentlichung der GitLab “Releases” Seite v9.0.0. Schauen Sie sich das genaue Tag (entdeckt HEAD) an oder erstellen Sie einen Zweig daraus:

git checkout tags/v9.0.0

Wenn ein neuerer Tag später erscheint, ersetzen Sie seinen Namen entsprechend.

Optionale Anforderungen (Parallelismus und andere)

Dieser Abschnitt führt Sie durch die Installation zusätzlicher Pakete, die für die parallele Ausführung erforderlich sind und mit SALOME's .med-Dateien arbeiten. Bestätigen Sie, dass das Terminal gcc (typischerweise über build-essential) mit gcc --version installiert ist. Die folgenden Pakete ermöglichen Parallelität und bieten erhebliche Geschwindigkeiten für Simulationen:

Systembreite Installation

Installieren Sie Voraussetzungen für MPI, Metis, HDF5, MED und MUMPS. Paketnamen unterscheiden sich leicht zwischen Debian und Ubuntu-Derivaten (Mint), so verwenden Sie das unten stehende Paket.

Debian (aktuelle Stallungen und Tests):

sudo apt update
sudo apt install -y libopenmpi-dev openmpi-bin libhdf5-dev hdf5-tools libmetis-dev libmetis5 libmumps-dev libmumps-seq-dev libscalapack-openmpi-dev libmedc-dev libmed-tools

Ubuntu und Derivate (fähiges Universum zuerst, wenn noch nicht getan):

sudo add-apt-repository -y universe
sudo apt update
sudo apt install -y sudo apt install -y libmedc11t64 libmedc-dev libmed-tools libmed11 libmed-dev libmedimport0v5 libmedimport-dev libopenmpi-dev openmpi-bin libhdf5-dev hdf5-tools libmetis-dev libmumps-seq-dev libmumps-dev libscalapack-openmpi-dev

Anmerkungen:

Wenn Ihre Veröffentlichung “t64” Pakete verwendet (z.B. libmedc11t64), akzeptieren Sie diese Namen wie von apt angeboten.

SALOME

Dieser Workflow erklärt die Installation von SALOME auf Linux Mint / Ubuntu. Die Mindestlaufzeitabhängigkeiten erfordern (mindestens) folgende Anlagen:

sudo apt update
sudo apt install python3-pytest-cython python3-sphinx python3-alabaster python3-cftime libcminpack1 python3-docutils libfreeimage3 python3-h5py python3-imagesize liblapacke clang python3-netcdf4 libnlopt0 libnlopt-cxx0 python3-nlopt python3-nose python3-numpydoc python3-patsy python3-psutil libtbb12 libxml++2.6-2v5 liblzf1 python3-stemmer python3-sphinx-rtd-theme python3-sphinxcontrib.websupport sphinx-intl python3-statsmodels python3-toml python-is-python3

Die minimalen Kompilierungsabhängigkeiten erfordern folgende Anlagen:

sudo apt update
sudo apt install pyqt5-dev pyqt5-dev-tools libboost-all-dev libcminpack-dev libcppunit-dev doxygen libeigen3-dev libfreeimage-dev libgraphviz-dev libjsoncpp-dev liblapacke-dev libxml2-dev llvm-dev libnlopt-dev libnlopt-cxx-dev python3-patsy libqwt-qt5-dev libfontconfig1-dev libglu1-mesa-dev libxcb-dri2-0-dev libxkbcommon-dev libxkbcommon-x11-dev libxi-dev libxmu-dev libxpm-dev libxft-dev libicu-dev libsqlite3-dev libxcursor-dev libtbb-dev libqt5svg5-dev libqt5x11extras5-dev qtxmlpatterns5-dev-tools libpng-dev libtiff5-dev libgeotiff-dev libgif-dev libgeos-dev libgdal-dev texlive-latex-base libxml++2.6-dev libfreetype6-dev libgmp-dev libmpfr-dev libxinerama-dev python3-sip-dev python3-statsmodels tcl-dev tk-dev 
  1. Bestätigen Sie Ihre Linux-Version:

    • Debian: Katze /etc/os-Release

    • Mint: lsb_release -a

    • Ubuntu: inxi -Sx (auch auf Mint)

  2. SALOME-Build herunterladen

    • Gehen Sie zum offiziellen SALOME-Downloadformular

    • Wählen Sie die neueste Version mit dem Ubuntu Build (das entspricht der Mint-Basis); oder wählen Sie die weniger häufig aktualisierte “Linux Universal”

  3. Überprüfen Sie die Prüfsumme: von SALOMEs md5-Seite, holen Sie die passende .md5-Datei für Ihr Archiv und überprüfen Sie lokal

    • Beispiel für den 9.15-Terball: md5sum SALOME-9.15.0.tar.gz

    • Vergleiche mit “SALOME-9.15.0.tar.gz.md5” aus der md5 page - nicht überspringen

  4. Extrahieren Sie irgendwo sauber und gesund; zum Beispiel als sudo für das gesamte System (Anpassen Sie den Namen, wenn Sie ein anderes Archiv gewählt haben), oder folgen Sie diesem Workflow fow Installation TELEMAC in /home/HyInfo/opt/:

    mkdir -p /home/HyInfo/opt/salome
    tar -xzf ~/Downloads/SALOME-9.15.0.tar.gz -C /opt/salome --strip-components=1
    chown -R "$USER":"$USER" /home/HyInfo/opt/salome
  1. Lassen Sie SALOME Ihr System überprüfen und installieren, was es verlangt

    • Wählen Sie im extrahierten SALOME-Verzeichnis den Anwendungsnamen aus

    cd /home/HyInfo/opt/salome/sat
    ./sat config --list
    • Verwenden Sie den angegebenen Bewerbungsnamen; die folgenden Beschreibungen gehen davon aus, dass der Bewerbungsname SALOME-9.15.0-native ist

    • Führen Sie den eingebauten Checker aus; es druckt, welche Pakete fehlen könnten:

    cd /home/HyInfo/opt/salome/sat
    ./sat config SALOME-9.15.0-native --check_system
    • Installieren Sie die Pakete, die es über apt auflistet, und führen Sie dann den Scheck, bis er sauber ist.

  2. Stellen Sie sicher, dass 3D/OpenGL in Ordnung ist: Überprüfen Sie den richtigen Treiberstapel (insbesondere für NVIDIA) vor dem Start; Lesen Sie mehr über SALOME PLATFORM FAQ

  3. Starten Sie SALOME aus dem Ordner SALOME:

Wenn Sie Berechtigungsfehler treffen, stellen Sie sicher, dass Sie an einen Standort, den Sie besitzen, extrahiert oder das Eigentum repariert. Einige Benutzer liefen in Probleme, die seltsame Standorte oder WSL versuchen; halten Sie sich an einen normalen Dateisystempfad, den Sie steuern.

Es gibt auch eine Container-Option: man kann SALOME über Docker/Apptainer ausführen, aber ParaViS/ParaView Beschleunigung innerhalb von Containern ist ursächlich Buggy und bricht oft; die SALOME-Forumdokumente machen Probleme in Docker.

Compile TELEMAC

Anpassung und Überprüfung der Konfigurationsdatei (systel.x.cfg)

** Geschätzte Dauer: 2-20 Minuten.***

Die systel.x.cfg-Datei sagt TELEMAC, wie Sie ihre Module auf Ihrem Computer erstellen und starten. Genauer gesagt, es ist die zentrale Konfiguration von TELEMAC, die Builds und Laufzeitumgebungen definiert, einschließlich Compiler, Compiler-Flags, MPI und zugehörige Optionen, externe Bibliotheken und Pfade. In der Praxis verwenden wir diese Datei, um Flaggen zu erklären und TELEMAC auf optionale Abhängigkeiten zu verweisen. Standardmäßig sucht TELEMAC Konfigurationsdateien unter ./configs/ (z.B. configs/systel.cfg) und man kann den Pfad mit der SYSTELCFG-Umgebungsvariable oder der -f-Option des Python Launchers überschreiben.

Dieser Abschnitt beschreibt die Einrichtung von systel.x.cfg für:

Beachten Sie, dass wir die Einweg-Installation von TELEMAC unter dem lokalen Home-Verzeichnis /home/HyInfo/opt/telemac-mascaret beschreiben und SALOME in /home/HyInfo/opt/salome installiert haben.

Beachten Sie, dass wir die API weder aktiviert haben noch die AED2 (waqtel) und GOTM (general ocean)module.

Unsere cfg und pysource-Dateien definieren einen einzigen Build (z.B. hyinfompiubu auf Mint / Ubuntu) für TELEMAC v9.09@@@, der mpi und dyn-Optionen ermöglicht und GNU-Compiler verwendet (cc=mpicc,fc=mpifort, unterstützt vongfortran). Externe Bibliotheken werden über Bibliotheksblöcke für OpenMPI, HDF5, MED (viaSALOME), METIS und MUMPS mit ScaLAPACK, BLAS und LAPACK verknüpft. RPATH-Einträge werden hinzugefügt, so dass die Laufzeit HDF5 und verwandte Bibliotheken lokalisieren kann, indem Pfade verwendet werden, die typisch Debian- und Ubuntu-Layouts entsprechen.

Mint 22 / Ubuntu 24
Debian 12
Customization

The following configuration provides a TELEMAC configuration called hyinfompiubu. It enables optimized core flags, position-independent builds, and big-endian unformatted I/O with modified record markers, plus MPI settings on Linux Mint 22 / Ubuntu 24.04. Executables are launched with mpirun -np <ncsize>, and meshes are partitioned using partel. Build artifacts are placed under <root>/builds/hyinfompiubu/{bin,lib,obj}, and the file also defines suffixes, validation paths, and Python F2PY settings (f2py, gnu95).

Zum Kompilieren von TELEMAC:

  1. Laden Sie systel.mint22.cfg von unserem GitHub-Repository herunter oder kopieren Sie die untenstehenden Dateiinhalte in den Ordner TELEMAC/configs, hier: /home/HyInfo/opt/telemac-mascaret/configs.

  2. Öffnen Sie systel.mint22.cfg in einem Texteditor (z.B. gedit) und ersetzen Sie die beiden /home/HyInfo/opt/salome path Intances durch Ihren SALOME-Installationspfad.

  3. Überprüfen Sie Installationspfade von optionalen, insbesondere HDF5, MED und Mumps.

  4. Sparen Sie systel.mint22.cfg und schließen Sie den Texteditor.

# _____                              _______________________________
# ____/ TELEMAC Project Definitions /______________________________/
#
[Configurations]
configs: hyinfompiubu
#
# _____          _________________________________________________
# ____/ General /_________________________________________________/
#
[general]
language: 2
modules:  system
version:  9.0
options:  mpi dyn
hash_char: #
# Suffixes
sfx_zip:  .tar.gz
sfx_lib:  .a
sfx_obj:  .o
sfx_exe:
sfx_mod:  .mod
# Validation paths
val_root:      <root>/examples
val_rank:      all
# Compilers
cc:      mpicc
cflags:  -fPIC -O3
fc:      mpifort
# Core Fortran flags; TELEMAC expects big-endian unformatted files
fflags:  -cpp -O3 -fPIC -fconvert=big-endian -frecord-marker=4 -DHAVE_MPI
# Build commands
cmd_obj_c: [cc] [cflags] -c <srcName> -o <objName>
cmd_obj:   [fc] [fflags] -c <mods> <incs> <f95name>
cmd_lib:   ar cru <libname> <objs>
cmd_exe:   [fc] [fflags] -o <exename> <objs> <libs>
# Splitter and MPI run
par_cmdexec:   <config>/partel < <partel.par> >> <partel.log>
mpi_cmdexec:   mpirun -np <ncsize> <exename>
mpi_hosts:
# ----- Optional library blocks merged in libs_all / incs_all -----
# OpenMPI include dir (Ubuntu 24.04)
inc_mpi:       -I /usr/lib/x86_64-linux-gnu/openmpi/include
# HDF5 (Ubuntu serial headers; change to /usr/include/hdf5/openmpi if using libhdf5-openmpi-dev)
inc_hdf5:  -I /usr/include/hdf5/openmpi
libs_hdf5: -L /usr/lib/x86_64-linux-gnu/hdf5/openmpi -lhdf5_fortran -lhdf5hl_fortran -lhdf5_hl -lhdf5
ldflags_opt:   -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/openmpi
ldflags_debug: -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/openmpi

# MED (from SALOME packages)
inc_med:       -I /home/HyInfo/opt/salome/BINARIES-UB24.04/medfile/include
libs_med:      -L /home/HyInfo/opt/salome/BINARIES-UB24.04/medfile/lib -lmedC -lmed -lmedimport
# METIS
inc_metis:     -I /usr/include
libs_metis:    -L /usr/lib/x86_64-linux-gnu -lmetis
# MUMPS + ScaLAPACK (MPI build)
inc_mumps:     -I /usr/include
libs_mumps:    -L /usr/lib/x86_64-linux-gnu -ldmumps -lmumps_common -lpord -lscalapack-openmpi -lblas -llapack
# Aggregate include and library flags
incs_all: [inc_mpi] [inc_hdf5] [inc_med] [inc_metis] [inc_mumps]
libs_all: [libs_hdf5] [libs_med] [libs_metis] [libs_mumps]

# ===== Build section =====
[hyinfompiubu]
brief: Ubuntu 24.04 gfortran + OpenMPI + MED/HDF5 + METIS + MUMPS/ScaLAPACK
system: linux
mpi:   openmpi
compiler: gfortran
pyd_fcompiler: gnu95
f2py_name: f2py
# build tree under <root>=HOMETEL
bin_dir: <root>/builds/hyinfompiubu/bin
lib_dir: <root>/builds/hyinfompiubu/lib
obj_dir: <root>/builds/hyinfompiubu/obj
# override/extend general flags if needed
options: mpi dyn
cmd_obj:   [fc] [fflags] -c <mods> <incs> <f95name>
cmd_lib:   ar cru <libname> <objs>
cmd_exe:   [fc] [fflags] -o <exename> <objs> <libs>
# inherit mods_all/incs_all/libs_all from [general]
mods_all:  -I <config>

Setup Python Source File

** Geschätzte Dauer: 4-20 Minuten.***

Die Python Quelldatei lebt auch im /configsordner von TELEMAC, wo eine Vorlage namens pysource.template.sh zur Verfügung steht. Konkret ist die pysource-Datei ein Shell “env”-Skript, das man in jedem Terminal source vor dem Bau oder der Ausführung von TELEMAC. Der Python Launcher setzt vier Anker: HOMETEL,SYSTELCFG, USETELCFG und SOURCEFILE. Die Python-Skripte von TELEMAC sehen SYSTELCFG aus und wählen den Abschnitt unter USETELCFG. Dieser Abschnitt führt entweder über unsere pysource.mint22.sh / pysource.debian12.sh (ohne AED2) oder eine angepasste Quelldatei.

Mint 22 / Ubuntu 24
Debian 12
Customization

Um die Einrichtung der pysource.mint22.sh-Datei auf Linux Mint 22 / Ubuntu 24 zu erleichtern, ist unsere Vorlage für den Einsatz mit der oben beschriebenen systel.mint22.cfg-Konfigurationsdatei konzipiert und basiert auf der standardmäßig bereitgestellten pysource.template.sh. Zum Kompilieren von TELEMAC:

  1. Laden Sie pysource.mint22.sh von unserem GitHub-Repository herunter oder kopieren Sie die Dateiinhalte unten in den Ordner TELEMAC/configs, hier: /home/HyInfo/opt/telemac-mascaret/configs und speichern Sie als pysource.mint22.sh.

  2. Öffnen Sie pysource.mint22.sh in einem Texteditor (z.B. gedit) und überprüfen Sie Installationspfade. Beachten Sie, dass die Datei die folgende Definition enthält, die sie fast unabhängig von der Definition Ihres Installationspfades macht, solange Salome im gleichen Verzeichnis lebt, relativ zu dem, wo Sie TELEMAC heruntergeladen haben: _THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

  3. Überprüfen Sie Installationspfade von optionalen, insbesondere HDF5, MED (insbesondere SALOME) und Mumps.

  4. Sparen Sie pysource.mint22.sh und schließen Sie den Texteditor.

Unsere pysource.mint22.sh-Datei sieht so aus:

#!/usr/bin/env bash
# TELEMAC environment for Linux Mint 22 (Ubuntu 24.04 base) with MPI/HDF5/METIS/MED/MUMPS/ScaLAPACK

# Resolve this script's directory and HOMETEL from it so it works no matter where you cloned TELEMAC
# Expected layout: ~/opt/telemac/{configs, scripts, sources, ...}
_THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
export HOMETEL="$(cd "${_THIS_DIR}/.." && pwd)"
export SOURCEFILE="${_THIS_DIR}"

# Configuration file and config name used by telemac.py
# Adjust USETELCFG to match a section present in your systel.mint22.cfg
export SYSTELCFG="${HOMETEL}/configs/systel.mint22.cfg"
export USETELCFG="hyinfompiubu"

# Make TELEMAC Python utilities available
# (Both python3 helpers and legacy unix scripts are often useful)
if [ -d "${HOMETEL}/scripts/python3" ]; then
  export PATH="${HOMETEL}/scripts/python3:${PATH}"
fi
if [ -d "${HOMETEL}/scripts/unix" ]; then
  export PATH="${HOMETEL}/scripts/unix:${PATH}"
fi

# Compilers and MPI (OpenMPI from APT)
export MPI_ROOT="/usr"
export CC="mpicc"
export FC="mpifort"
export MPIRUN="mpirun"

# Library/include roots from Ubuntu 24.04 packages
# OpenMPI libraries
_OMPI_LIB="/usr/lib/x86_64-linux-gnu/openmpi/lib"
_OMPI_INC="/usr/lib/x86_64-linux-gnu/openmpi/include"

# HDF5 (serial headers via libhdf5-dev; libs in the multiarch lib dir)
# If you later install parallel HDF5 (libhdf5-openmpi-dev), set _HDF5_INC="$_OMPI_INC"
_HDF5_INC="/usr/include/hdf5/openmpi/"
_HDF5_LIB="/usr/lib/x86_64-linux-gnu/hdf5/openmpi"

# MED (optional - not actively used in the corrent setup)
_MED_INC="/usr/include/med"
_MED_LIB="/usr/lib/x86_64-linux-gnu"

# METIS
_METIS_INC="/usr/include"
_METIS_LIB="/usr/lib/x86_64-linux-gnu"

# MUMPS (both seq and mpi dev packages provide headers+libs under multiarch dir)
_MUMPS_INC="/usr/include"
_MUMPS_LIB="/usr/lib/x86_64-linux-gnu"

# ScaLAPACK (OpenMPI build)
_SCALAPACK_LIB="/usr/lib/x86_64-linux-gnu"

# Expose common hints some TELEMAC configs look for (non-fatal if unused)
export MPI_INCLUDE="${_OMPI_INC}"
export MPI_LIBDIR="${_OMPI_LIB}"

export HDF5_ROOT="/usr"
export HDF5_INCLUDE_PATH="${_HDF5_INC}"
export HDF5_LIBDIR="${_HDF5_LIB}"

export MED_ROOT="$HOME/opt/salome/BINARIES-UB24.04/medfile/"
export MED_INCLUDE_PATH="$HOME/opt/salome/BINARIES-UB24.04/medfile/include"
export MED_LIBDIR="$HOME/opt/salome/BINARIES-UB24.04/medfile/lib"

export METIS_ROOT="/usr"
export METIS_INCLUDE_PATH="${_METIS_INC}"
export METIS_LIBDIR="${_METIS_LIB}"

export MUMPS_ROOT="/usr"
export MUMPS_INCLUDE_PATH="${_MUMPS_INC}"
export MUMPS_LIBDIR="${_MUMPS_LIB}"

export SCALAPACK_LIBDIR="${_SCALAPACK_LIB}"

# Build and wrapped API locations (created after you compile)
# Keep these early in the path so Python can import the TELEMAC modules and extensions
if [ -d "${HOMETEL}/builds/${USETELCFG}/wrap_api/lib" ]; then
  export PYTHONPATH="${HOMETEL}/builds/${USETELCFG}/wrap_api/lib:${PYTHONPATH}"
fi

# TELEMAC Python helpers
if [ -d "${HOMETEL}/scripts/python3" ]; then
  export PYTHONPATH="${HOMETEL}/scripts/python3:${PYTHONPATH}"
fi

# Runtime search paths
# Put OpenMPI first to avoid picking up non-MPI BLAS/LAPACK accidentally
# The standard multiarch directory is added as a safety net
for _libdir in \
  "${_OMPI_LIB}" \
  "${_MED_LIB}" \
  "${_METIS_LIB}" \
  "${_MUMPS_LIB}" \
  "${_SCALAPACK_LIB}" \
  "/usr/lib/x86_64-linux-gnu"
do
  case ":${LD_LIBRARY_PATH}:" in
    *:"${_libdir}":*) ;;
    *) export LD_LIBRARY_PATH="${_libdir}:${LD_LIBRARY_PATH}";;
  esac
done

# Add include directories to CPATH so builds find headers without extra flags
for _incdir in \
  "${_OMPI_INC}" \
  "${_HDF5_INC}" \
  "${_MED_INC}" \
  "${_METIS_INC}" \
  "${_MUMPS_INC}"
do
  case ":${CPATH}:" in
    *:"${_incdir}":*) ;;
    *) export CPATH="${_incdir}:${CPATH}";;
  esac
done

# Convenience: print a one-line summary so you know which config is active
echo "TELEMAC set: HOMETEL='${HOMETEL}', SYSTELCFG='${SYSTELCFG}', USETELCFG='${USETELCFG}'"

# Make Python unbuffered for clearer build logs
export PYTHONUNBUFFERED="1"

Zusammensetzen

** Geschätzte Dauer: 20-30 Minuten (Verknüpfung dauert Zeit).***

Der Compiler wird von den Python-Tools von TELEMAC über die Shell-Umgebung aufgerufen, die von Ihrem pysourceScript (pysource.mint22.sh oder pysource.debian12.sh) gesetzt wird. Dieses Skript sagt TELEMAC, wo Hilfeprogramme und Bibliotheken leben und welche Konfiguration zu verwenden ist. Mit ihm an Ort und Stelle wird die Zusammenstellung von Terminal geradeaus. Wählen Sie zunächst die entsprechende pysource-Datei aus und verifizieren Sie dann das Setup mit config.py:

cd /home/HyInfo/opt/telemac-mascaret/configs    # adjust this path to your install
source pysource.mint22.sh                       # or: source pysource.debian12.sh
config.py

Mit den Skripten pysource.mint22.sh oder pysource.debian12.sh sollten Sie die TELEMAC-Pfade und den Konfigurationsnamen ansprechen. Laufen config.py sollte das ASCII-Banner anzeigen und mit My work is done beenden. Wenn nicht, lesen Sie die Fehlerausgabe sorgfältig; typische Ursachen sind typos in Pfaden oder Dateinamen, oder Fehler innerhalb pysource.x.sh oder Ihr systel.*.cfg.

Nachdem config.py erfolgreich abgeschlossen ist, compile TELEMAC. Verwenden Sie die --clean-Flag, um alle Artefakte aus früheren Builds zu entfernen und Konflikte zu vermeiden:

compile_telemac.py --clean

Der Build wird eine Weile laufen und sollte mit der Nachricht My work is done beenden. Wenn es mit Fehlern aufhört, scrollen Sie bis zum ersten Fehler und fixieren Sie das gemeldete Problem, bevor Sie den Befehl erneut ausführen.

Prüfung TELEMAC

** Geschätzte Dauer: 5-10 Minuten.***

Nach dem Schließen des Terminals oder auf einem neuen Systemstart werden Sie die TELEMAC-Umgebung neu laden, bevor Sie es ausführen:

cd ~/opt/telemac-mascaret/configs    # adjust if you installed elsewhere
source pysource.mint22.sh            # or: source pysource.debian12.sh

Führen Sie einen vordefinierten Fall aus dem Ordner examples aus:

cd ~/opt/telemac-mascaret/examples/telemac2d/gouttedo
telemac2d.py t2d_gouttedo.cas

Um die Parallelität zu überprüfen, installieren Sie htop, um die CPU-Nutzung zu visualisieren:

sudo apt update
sudo apt install htop

Starten Sie den CPU-Monitor:

htop

In einem neuen Terminal-Tab führen Sie ein TELEMAC-Beispiel mit der --ncsize=Nfahne, wobei N die Anzahl der logischen CPUs ist, die verwendet werden sollen (mindestens N stehen zur Verfügung):

cd ~/opt/telemac-mascaret/examples/telemac2d/gouttedo
telemac2d.py t2d_gouttedo.cas --ncsize=4

Alternativ verwenden Sie --nctile und --ncnode, um Kerne pro Knoten (NCTILE) und Anzahl der Knoten (NCNODE) mit NCSIZE = NCTILE * NCNODE anzugeben. Die folgenden beiden Befehle sind gleichwertig (von ~/opt/telemac-mascaret/examples/telemac2d/donau):

telemac2d.py t2d_donau.cas --nctile=4 --ncnode=2
telemac2d.py t2d_donau.cas --ncsize=8

Während die Berechnung läuft, sehen Sie die Gesamt-CPU-Nutzung. Wenn mehrere Kerne eine anhaltende Aktivität in unterschiedlichen Prozenten zeigen, funktioniert der Parallellauf.

TELEMAC sollte das Beispiel starten und mit My work is done beenden. Um Effizienz zu messen, variieren --ncsize. So läuft beispielsweise auf einem modernen Laptop der donau Fall oft in ca. 1 Minute mit --ncsize=4 und ca. 2-3 Minuten mit --ncsize=2; genaue Timings hängen von Hardware, Maschengröße und I/O. *Scaling ist nicht linear aufgrund von Domänen-Partition-Overhead, Speicherbandbreiten und Hyperthreading, so dass das Starten mehrerer kleinerer Jobs auf weniger Kerne effizienter als ein Job auf vielen Kernen sein kann.

TELEMAC generieren Dokumentation

TELEMAC enthält viele Anwendungsbeispiele unter /telemac-mascaret/examples/ und Sie können die Benutzer- und Referenzhandbücher lokal erstellen. Zuerst die TELEMAC-Umgebung laden:

source ~/opt/telemac-mascaret/configs/pysource.mint22.sh

Um das Benutzerhandbuch zu generieren (dies kann eine Weile dauern und erfordert Latex, d.h. texlive auf Debian/Ubuntu):

doc_telemac.py

Um das Referenzhandbuch zu erzeugen:

doc_telemac.py --reference

Um Dokumentations- und Validierungsberichte für alle Beispielfälle zu erstellen:

validate_telemac.py

Utilities (Vor- und Nachbearbeitung)

QGIS und das Q4TS Plugin (Linux und Windows)

** Geschätzte Dauer: 5-10 Minuten (abhängig von Verbindungsgeschwindigkeit).****

QGIS ist ein leistungsstarkes Tool zum Betrachten, Erstellen und Bearbeiten von geospatialen Daten und ist sowohl für die Vor- als auch Nachbearbeitung nützlich. Die Installationsanleitung erscheint in den QGISAnweisungen und der QGIS tutorial in diesem eBook. Das Q4TS Plugin unterstützt die Vorbereitung und Nachbearbeitung von Dateien für TELEMAC und kann mit SALOME an TELEMAC von einer GUI angeschlossen werden.

To install Q4TS, follow the developers’ instructions at https://gitlab.pam-retd.fr/otm/q4ts:

Nach der Installation fügt Q4TS Tools in der QGIS Processing Toolbox für MED -- SLF-Konvertierung, Netzveredelung, Grenzerstellung, Friktionstabellenbearbeitung und mehr hinzu. Grundlegendes Dienstprogramm für die Nachbearbeitung wird in der steady-flow simulation tutorial <tm-use-q4ts> mit Telemac2d beschrieben.

To get started with the Q4TS plugin, see Fig. 1 (Windows: Fig. 2) and consult the developers’ user manual on GitLab: https://gitlab.pam-retd.fr/otm/q4ts/.

Linux (Ubuntu)
Windows
configure Q4TS on Ubuntu Linux

Figure 1:Die Konfiguration des Q4TS auf Ubuntu Linux. Um diese Pfade in QGIS einzustellen, gehen Sie zu Einstellungen (Top-Menü) > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Artelia Mesh Werkzeuge

Artelia provides a Python-based analysis toolkit on GitHub: https://github.com/Artelia/Mesh_tools. Hydro-informatics.com has not yet tested Mesh Tools, but it appears promising for inspecting and analyzing existing meshes rather than generating new ones; see the related discussion in the TELEMAC forum.

Nach der Installation des Plugins über den QGIS Plugin Manager, zugreifen Sie es aus Mesh > *Mesh Tools.

BlueKenue (Windows oder Linux+Wine)

** Geschätzte Dauer: 10 Minuten.**

BlueKenueTM is a Windows-based pre- and post-processing tool from the National Research Council Canada, which is designed for TELEMAC. It offers functionality similar to Fudaa and includes a capable mesh generator, which is the main reason to install BlueKenueTM. Download the installer from the developer site: https://chyms.nrc.gc.ca/download_public/KenueClub/BlueKenue/Installer/BlueKenue_3.12.0-alpha+20201006_64bit.msi (credentials are noted in the Telemac Forum). Then choose the install method for your platform:

  1. Unter Windows: führen Sie den BlueKenue .msi Installer direkt aus.

  2. On Linux: use Wine amd64 through PlayOnLinux to install BlueKenueTM. For Ubuntu/Debian systems, see the PlayOnLinux section in this eBook. Installing with plain Wine only is discouraged due to common compatibility issues.

Typical BlueKenueTM executable locations are:

Weitere plattformübergreifende Beratungen finden Sie in der CHyMS FAQ, insbesondere in der Rubrik Blue Kenue auf weitere Betriebssysteme.

Fudaa-PrePro (Linux und Windows)

*** Geschätzte Dauer: 5-15 Minuten (obere Zeitgrenze, falls Java installiert werden muss).***

Fudaa-PrePro ist ein Java-basiertes grafisches Frontend für das TELEMAC-System, das Ihnen hilft, Modelle durch die Definition von Maschen, Grenz- und Ausgangsbedingungen und Lenkung (.cas)-Dateien zu erstellen, und es kann auch Simulationen starten und die grundlegende Nachbearbeitung unterstützen. Es wird durch das Fudaa-Projekt gepflegt und mit Dokumentationen und Downloads auf ihrer Website verteilt, und es wird von den TELEMAC-Entwicklern als benutzerfreundlicher Vorprozessor zur Berechnung von Berechnungen referiert. Bereiten Sie sich mit der Vor- und Nachbearbeitungssoftware Fudaa-PrePro vor:

Wenn Sie einen Fehler wie:

Error: Could not find or load main class org.fudaa.fudaa.tr.TrSupervisor

Bearbeiten Sie supervisor.sh und ersetzen Sie $PWD Fudaa mit $(pwd)/Fudaa, so dass der Klassenpfad richtig entscheidet. Sie können die Standard-RAM-Einstellung auch unter supervisor.sh (oder supervisor.bat) einstellen. Fudaa-PrePro wird oft mit -Xmx6144m (≈6 GB) verschifft, für sehr große Maschen (Millionen Knoten) erhöht oder auf Low-RAM-Systemen reduziert. Setzen Sie -Xmx auf ein vernünftiges Vielfaches von 512 MB. Zum Beispiel, um 2 GB zu verwenden und den Klassenpfad zu beheben:

#!/bin/bash
cd "$(dirname "$0")"
java -Xmx2048m -Xms512m -cp "$(pwd)/Fudaa-Prepro-1.4.2-SNAPSHOT.jar" org.fudaa.fudaa.tr.TrSupervisor "$@"