FAQ

Informations générales et mise à disposition

1. Qu’est-ce que la plateforme SALOME ?
La plateforme SALOME est un environnement logiciel open source pour les Pre- et Post-traitments et l’intégration de solveurs numériques issus de domaines scientifiques variés. CEA et EDF utilisent SALOME pour réaliser un grand nombre de simulations, typiquement liées aux équipements des centrales nucléaires et aux énergies alternatives. Pour accomplir ces tâches, SALOME inclut un outil de modélisation CAO, des générateurs de maillage et des fonctions de visualisation 3D avancées
2. Quelles règles pour la modification et la distribution de SALOME ?

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”.

3. SALOME fournit-il un solveur open source gratuit ?

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.

4. Quels sont les systèmes d’exploitation pris en charge par la plateforme SALOME ?

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.

5. Que signifie SALOME ?

L’acronyme SALOME signifie « Simulation numérique par Architecture Logicielle en Open source et à Méthodologie d’Évolution ».

Construction et installation

1. Qu’est-ce que SAT ?

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.

2. Quels sont les prérequis de SALOME ?

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).

3. Que faut-il installer sur ma station de travail pour exécuter ou construire SALOME ?

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.

4. Comment installer SALOME sous Linux ?

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.

5. Comment installer SALOME sous Windows ?

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 bien run_salome.exe.
6. Comment obtenir le code source de SALOME ?

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.

7. Comment compiler SALOME ?

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é

1. Comment CORBA est utilisé dans SALOME ?

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.

2. Qu’est-ce que SALOME session-less (SSL) ?

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
3. Qu’est-ce qu’une étude SALOME ?

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.

4. Comment les modules SALOME interagissent-ils avec SALOME study ?

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

1. Quelle est la relation entre SALOME et 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.

2. Comment utiliser SALOME avec Python ?

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
3. Quand dois-je utiliser GUI ou TUI ?

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

1. Qu’est-ce que 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.

2. Où puis-je trouver la documentation du format de fichier medfile ?

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”.

3. A quoi sert le module FIELDS de SALOME ?

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.

4. Comment installer et utiliser un tarball MEDCoupling ?

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

1. Comment démarrer une session bash avec l’environnement 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

 

2. Comment utiliser pip dans 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

 

3. Comment supprimer l’ancien processus résiduel de SALOME ?

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

 

4. Est-il possible d’ajuster la taille de la police dans SALOME ?

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

 

5. Comment résoudre les problèmes d’affichage 3D ?

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.

6. SALOME peut-il traiter des données volumineuses ?

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).