Informations générales et mise à disposition
La plateforme SALOME est distribuée sous la licence LGPL (GNU Lesser General Public License) version 2.1. Tous les produits requis par SALOME sont distribués sous licence LGPL (ou équivalent) ou sous licence “libre pour un usage non commercial”.
La plateforme SALOME est fournie avec SolverLab, qui permet de résoudre des équations aux dérivées partielles. D’autres solveurs dédiés à une physique particulière sont intégrés dans des applications métiers. Par exemple:
- salome_meca intègre le solveur code_aster
- salome_cfd intègre les solveurs Code_Saturne et Neptune_CFD
D’autre applications métiers avec des codes non open-sources sont également développées mais non distribuées sur internet.
SALOME est développé et qualifié sur Linux et Windows. SALOME est construit et testé sur différentes plateformes Linux : Red Hat, CentOS 7 et 8, Debian 9 et 10, Ubuntu 18 et 20, Fedora. Si des binaires spécifiques ne sont pas distribués pour vos plateformes Linux, vous pouvez utiliser les binaires génériques “universels”. Ces binaires sont construits sur la plateforme CentOS 7. Les bibliothèques nécessaires pour faire fonctionner les binaires sur d’autres plateformes plus récentes sont incluses dans l’archive.
L’acronyme SALOME signifie « Simulation numérique par Architecture Logicielle en Open source et à Méthodologie d’Évolution ».
Construction et installation
SAT est un outil utilisé pour la maintenance et l’empaquetage de la plateforme SALOME. Il facilite la construction sur diverses plateformes Linux et Windows de logiciels volumineux qui reposent sur de nombreux prérequis. Les fonctionnalités suivantes sont prises en charge :
- définition du contenu de l’application : quels sont les produits (prérequis, codes, modules) nécessaires et quelles sont les versions requises.
- configuration de l’application : comment obtenir la source des produits, comment les compiler, quelles options utiliser.
- préparation du logiciel complet : toutes les sources nécessaires avec les bonnes versions sont récupérées dans les dépôts git/svn/cvs, ou dans des tarballs déjà préparés.
- gestion des patchs si certains sont nécessaires pour compiler sur des plateformes spécifiques (portage)
- gestion de l’environnement à mettre en place à la compilation et à l’exécution
- compilation automatique de l’application complète (l’application avec tous ses produits).
- production d’un lanceur qui met en place l’environnement et démarre l’application
- empaquetage : création de paquets binaires et/ou sources pour distribuer l’application sur diverses plates-formes.
SAT est une interface en ligne de commande (CLI) basée sur le langage python. Il s’agit d’une suite de commandes, qui sont détaillées plus loin dans cette documentation. Ces commandes sont utilisées pour effectuer les opérations sur l’application. SAT permet de compléter les commandes en utilisant le script complete_sat.sh fourni.
La plateforme SALOME s’appuie sur un grand nombre de produits tiers, notamment Python, Qt, sip, PyQt, boost, swig, Open CASCASDE Technology, qwt, omniORB, Hdf5, Paraview. En fonction de la plateforme, certains produits tiers sont intégrés dans le tarball SALOME, d’autres sont directement fournis par le système (produits natifs installés avec yum ou apt).
Avant d’utiliser ou de compiler SALOME pour la première fois, il est conseillé de vérifier si tous les prérequis du système sont installés. Pour cela, il est pratique d’utiliser la commande SAT suivante, qui listera les dépendances système manquantes :
./sat config SALOME-9.8.0 --check_system
Pour la visualisation 3D, il est recommandé d’utiliser une carte graphique dédiée (NVIDIA ou AMD RADEON) et d’installer le pilote propriétaire correspondant.
Vous pouvez télécharger à partir du site web ou du site ftp de SALOME l’archive tarball SALOME correspondant à votre système d’exploitation. Si toutefois votre plateforme Linux n’est pas supportée, vous pouvez sélectionner le paquetage Linux universel.
Après avoir extrait le contenu du paquetage, vérifiez que toutes les dépendances du système sont installées :
./sat config SALOME-9.8.0 --check_system
Vérifiez aussi que votre carte graphique est correctement configurée.
Puis, lancez SALOME avec la commande:
./salome
Vous trouverez plus d’instructions dans le fichier README.
SALOME est construit sur Windows 10 avec le compilateur Visual Studio 2017. Il est important de choisir un nom très court pour le répertoire d’installation, pour éviter de dépasser la limite de taille du PATH (par exemple C:\SAL).
SALOME peut être installé à partir d’un assistant d’installation .exe
ou d’une archive .zip
.
Pour lancer l’assistant d’installation, double-cliquez dessus et suivez les instructions. A la fin de l’installation, lancez SALOME en double-cliquant sur run_salome.exe
.
Si la politique de sécurité informatique de votre entreprise interdit l’installation de logiciels avec des .exe
, nous fournissons aussi SALOME via une archive.zip
archive. Pour l’installer :
- Créer un répertoire de 4 lettres maximum à la racine de votre disque (par exemple C:\SAL)
- Aller dedans et dézipper SALOME ;
- Aller dans le répertoire créé par l’action précédente ;
- Lancer SALOME via la commande :
run_salome.bat
ou bienrun_salome.exe
.
Le code source de SALOME est inclus dans les paquets SALOME sous forme de fichiers tarballs contenus dans le répertoire ARCHIVES. Pour installer le code source dans le répertoire SOURCE, utilisez la commande :
./sat prepare SALOME-9.8.0
Le code source de SALOME peut également être récupéré directement dans les dépôts git. Tous les détails sur la page gitweb.
Le code source de SALOME est inclus dans les paquets SALOME et peut être compilé, soit partiellement (un ou plusieurs produits), soit complètement. Pour plus d’informations, suivez les instructions du fichier README présent dans le répertoire d’installation.
Architecture de Salomé
SALOME est un système distribué, ce qui signifie que toutes les fonctionnalités de l’application sont exposées sous forme d’objets et que chaque objet peut utiliser n’importe lequel des services fournis par d’autres objets du système, ou même par des objets d’autres systèmes. La plateforme SALOME utilise le middleware CORBA pour permettre la distribution des composants sur des ressources distantes. Par conséquent, la plupart des composants SALOME sont définis comme des serveurs CORBA et implémentent une interface CORBA. Ils peuvent être lancés soit dans un serveur dédié, soit intégrés dans le processus principal de SALOME. Cette possibilité est exploitée par le module YACS pour coupler des codes de calcul. Les composants SALOME qui n’ont pas besoin de CORBA sont écrits avec la configuration SALOME “light”. Cette configuration fournit un cadre d’interface graphique pour écrire des applications classiques d’interface graphique à un processus (composants SALOME light). Ces composants peuvent être exécutés séparément ou fonctionner dans la même session que les composants classiques complets.
Avec des ordinateurs de plus en plus puissants, CORBA devient moins utile dans SALOME, en dehors de YACS et du cas d’utilisation de couplage de code. Lorsque CORBA n’est pas nécessaire, un mode optimisé a été développé afin d’éviter de lancer le serveur CORBA pour la session SALOME. Ce mode, appelé SSL, sera le mode par défaut à partir de SALOME 9.9. Avec ce mode, toutes les fonctions sont exécutées à l’intérieur du processus principal de SALOME. L’utilisateur n’a pas besoin de “tuer” les serveurs après avoir utilisé SALOME. Le débogage et les tests sont également plus faciles.
Pour utiliser le mode session-less pour lancer des scripts python (SALOME 9.7.0 ou 9.8.0):
- soit, ajouter la variable d’environnement
SALOME_EMB_SERVANT
à 1. Sous Linux:
export SALOME_EMB_SERVANT=1
ou sous Windows:
SET SALOME_EMB_SERVANT=1
- ou ajouter dans votre script python:
salome.standalone() salome.salome_init()
Pour tester ce mode dans l’interface graphique (uniquement pour certains modules en 9.8.0), lancez SALOME avec:
./salome sessionless
L’étude est un document dans l’interface graphique, une couche d’abstraction entre les données réelles du document (probablement des données distantes disponibles via CORBA) et la présentation des données (dans le navigateur d’objets). Il contient un arbre d’instances d’objets de données.
Chaque module peut publier ses données dans SALOME study pour permettre aux autres composants d’y accéder. La publication dans l’étude permet également la persistance de ces données grâce au menu “Save Study”. Notez que la persistance de données complexes peut également être assurée par des méthodes spéciales, comme la “Save graph” du module YACS.
Scripting Salomé avec Python
Toutes les fonctionnalités développées en C++ sont mappées sur l’API Python et peuvent être exécutées avec Python. SALOME utilise Python pour sa puissance et sa simplicité. Cette caractéristique fait la force de la plateforme SALOME et permet la création de scripts et l’automatisation de cas d’utilisation complexes. L’écriture des scripts python de SALOME est facilitée par la fonctionnalité de dump Python
: l’utilisateur expérimente des actions complexes en mode GUI puis les dumpe dans un script Python. Il peut ensuite les étendre et les paramétrer. Ce mode de travail s’avère très efficace.
L’utilisateur a plusieurs possibilités. Il est possible :
- d’exécuter un script au lancement de l’interface graphique :
./salome my-script.py
- d’exécuter un script en lançant SALOME en mode TUI :
./salome -t -w1 mon-script.py
-t : mode texte,
-w1 : tue les serveurs à la fin du script.
- de charger un script python à l’intérieur de l’interface graphique, à partir du menu Fichier.
- d’exécuter des commandes Python dans la fenêtre Python intégrée à l’interface graphique
Il est possible d’utiliser à la fois l’interface utilisateur graphique GUI et l’interface utilisateur textuelle TUI pour travailler avec SALOME. L’interface TUI est la plus adaptée aux longs calculs en mode batch. Les résultats des calculs peuvent ensuite être contrôlés à l’aide de l’interface graphique. La fonctionnalité Python dump permet d’expérimenter des actions avec l’interface graphique et de sauvegarder ces actions dans un script Python, qui peut être rejoué plus tard. Les modules avancés comme SHAPER sont plus adaptés à l’interface graphique (notamment le sketcher), mais leurs actions peuvent néanmoins être enregistrées dans des scripts Python.
Utilisation de MEDCoupling
MEDCoupling est la bibliothèque SALOME permettant de traiter les maillages et les champs numériques (données d’entrée et de sortie des codes de simulation orientés vers la physique des champs). Elle fournit plusieurs fonctionnalités puissantes, qui peuvent être divisées en quatre catégories :
- Mouvement des données : lecture/écriture depuis/vers un fichier, réduction, extraction, duplication, agrégation, comparaison, échange de données de mémoire à mémoire à travers le processus.
- Analyse des données : extraire/recueillir des informations dans les données pour les transformer en un condensé de données exploitables (pas nécessairement liées à un champ) pour une utilisation ultérieure.
- Conversion des données : interpoler, projeter, réparer, décimer, convertir le format pour faire dialoguer les codes de simulation entre eux.
- Optimisation des données pour les codes de simulation : renumérotation, partition pour les codes multiprocesseurs.
La persistance des données est basée sur le format .med
qui fait partie du produit medfile
. medfile
spécifie le standard de champ et de maille. Les fichiers sont écrits avec la bibliothèque hdf5 et supportent le parallélisme.
La documentation du fichier med est fournie par le module FIELDS : menu Aide/Guide d’utilisation/Module FIELDS/MedFile Cette documentation est rédigée en français et présente notamment la référence de connectivité au sein des “Guides d’utilisation”.
Le module FIELDS de SALOME fournit la bibliothèque MEDCoupling (une bibliothèque C++ dédiée à la manipulation de maillages et de champs cohérents avec le modèle MED) ainsi qu’une interface graphique pour accéder à certaines opérations usuelles. Il simplifie les manipulations MED et donne également accès à des visualisations MED simplifiées liées au module PARAVIS. Le module FIELDS fournit la documentation des bibliothèques MEDCoupling et medfile.
La bibliothèque MEDCoupling est incluse dans les paquets SALOME, mais est également distribuée dans des paquets autonomes. Pour l’installer, téléchargez la tarball MEDCoupling et extrayez l’archive :
wget ftp://ftp.cea.fr/pub/salome/targz/MEDCOUPLING-9.7.0/MEDCOUPLING-9.7.0-CO7-SRC.tgz tar xfz MEDCOUPLING-9.7.0-CO7-SRC.tar.gz cd MEDCOUPLING-9.7.0-CO7-SRC source env_launch.sh python >>> import medcoupling ...
Utilisation de SALOME
Il suffit d’exécuter la commande :
./salome context # créer une session bash avec l'environnement SALOME défini
Il est possible d’utiliser certains modules « standalone » de SALOME indépendamment des autres. Par exemple, vous pouvez exécuter SALOME paraview :
paraview # exécuter paraview fourni par SALOME
Depuis la version 9.4, SALOME utilise pip pour gérer les modules python inclus dans SALOME. Les utilisateurs de SALOME peuvent donc personnaliser leur python avec le module de leur choix. Par exemple, on peut ajouter h5py à son installation SALOME en exécutant les commandes suivantes :
./salome context # définit l'environnement de salome, y compris python python -m pip install h5py==2.10.0 --no-dependencies # ajouter h5py à SALOME # Pour supprimer un module qui n'est plus nécessaire : python -m pip uninstall h5py
Lorsqu’il est démarré, SALOME lance un serveur CORBA qui parfois n’est pas tué à la fin. Si vous observez d’anciens processus SALOME, il est possible de les supprimer avec la commande suivante :
./salome killall
Sous Windows, il faut exécuter la commande :
call kill_salome.bat
Selon l’environnement de votre bureau, les chaînes de caractères dans SALOME peuvent être trop petites ou trop grandes. Cela a également une influence sur la hauteur des icônes. Il est possible d’ajuster l’échelle de la police en utilisant le paramètre QT_FONT_DPI
. Par exemple, pour augmenter la taille de 10% :
export QT_FONT_DPI=110
Pour un affichage 3D performant avec SALOME, il est conseillé d’avoir une carte graphique dédiée (Nvidia ou AMD) et d’installer le pilote propriétaire depuis le gestionnaire de paquets de votre plateforme Linux.
Si vous avez besoin de travailler à distance via ssh
ou dans une machine virtuelle, il faut utiliser la commande ./mesa_salome
. Les vues 3D de SALOME utilisent maintenant l’API OpenGL 3, qui n’est pas entièrement supportée par le transfert X11. Pour résoudre ce problème, nous conseillons donc d’utiliser la commande ./mesa_salome
lorsque vous exécutez SALOME via ssh
. Les performances sont moindres, mais cette commande est entièrement compatible avec SALOME.
Si vous devez travailler fréquemment sur un ordinateur distant, et que vous voulez de bonnes performances d’affichage, nous recommandons d’utiliser TurboVNC pour lancer un bureau distant et VirtualGL pour utiliser la carte graphique distante: vglrun ./salome
.
SALOME 9 a été amélioré pour être capable de gérer de grands ensembles de données. Tous les modules (SMESH, PARAVIS, MEDCoupling) supportent maintenant les entiers int64
, ce qui permet de gérer de grands maillages. Le module SMESH a été optimisé pour afficher de tels maillages et intègre maintenant des algorithmes de maillage très efficaces (comme Gmsh Hextreme).