De Mageia wiki
Aller à : navigation, rechercher
Cette page est une ébauche. Elle mérite des améliorations.
Elle mérite des améliorations.|Si vous voulez contribuer, cliquez simplement sur l'onglet modifier. Consultez également les autres pages dont le contenu est à réviser.


Compilation, installation et configuration de Code_Saturne 3.x sur Mageia 3 ou supérieur. Code Saturne est logiciel de calcul scientifique dans le domaine de la mécanique des fluides.

Introduction

Code_Saturne est logiciel de calcul scientifique dans le domaine de la mécanique des fluides. Ce logiciel développé par la direction R&D d'EDF (Électricité de France) sous licence GPL sert entre autres à faire des calculs très fiables d'éléments très critiques dans les centrales nucléaires ou d'autres éléments de centrales électriques à gaz ou charbon.

Des paquets de fichiers .deb précompilés existent pour les dristribution Linux Debian et Ubuntu mais pas pour Mageia Linux. L'objet de cet article sera donc de compiler, installer et configurer Code Saturne sur Mageia Linux avec le maximum de paquetages déjà disponibles sur Mageia Linux.

Prérequis

D'après le fichier Compatiblity inclus dans les sources du futur Code Saturne 3.0.2, les prérequis logiciels sont les suivants :

Code source de Code_Saturne

  • La version 3.x de l'outil de calcul en mécanique des fluides Code_Saturne intègre désormais le noyau de Code_Saturne (et son IHM) (Kernel (including Graphical User Interface)) et le Préprocesseur (Preprocessor) dans la même archive du code source au contraire de la 2.0.x. Cette version 3.0.x inclut aussi le nouveau composant : Parallel Location and Exchange version 1.0

Liens de téléchargement direct :
Version 3.0.1 : http://code-saturne.org/cms/sites/default/files/releases/code_saturne-3.0.1.tar.gz

Page de téléchargement en anglais :
version 3.0.x : http://code-saturne.org/cms/download/3.0

Page d'informations en français :
http://innovation.edf.com/recherche-et-communaute-scientifique/logiciels/code-saturne/presentation-code-saturne-45341.html

Page d'informations en anglais :
http://research.edf.com/research-and-the-scientific-community/software/code-saturne/introduction-code-saturne-80058.html

Compilateurs et interpréteurs de script

Bibliothèques obligatoires

Les composants des bibliothèques BFT (Base Functions and Types), FVM (Finite Volume Mesh) et MEI (Mathematical Expressions Interpreter) sont désormais dans la même archive du code source de Code_Saturne 3.x au contraire de la 2.0.x.

Bibliothèques optionnelles

Vous trouverez ici la liste des bibliothèques optionnelles qui peuvent être liés à Code_Saturne. Le numéro de version est celui utilisé pour développer et tester la version 3.0.x de Code_Saturne. D'autres versions (plus récentes ou anciennes ) peuvent-être encore compatible.

  • pyqt: >= 4.3 - (nécessaire pour l'interface graphique (GUI) de Code_Saturne GUI)

Téléchargement des sources : http://www.riverbankcomputing.co.uk/software/pyqt/download

  • qt: >= 4.3 - (nécessaire pour l'interface graphique (GUI) de Code_Saturne GUI)

Téléchargement des sources : http://qt-project.org/downloads et http://qt-project.org/wiki/Get_The_Source

  • libxml2: >= 2.6.19 - (nécessaire pour l'interface graphique (GUI) de Code_Saturne GUI)

Téléchargement des sources : http://xmlsoft.org/downloads.html

  • Metis: >= 5.0 - (for optimised domain decomposition)

Téléchargement des sources : http://glaros.dtc.umn.edu/gkhome/metis/metis/download

  • Par Metis: >= 4.0 - (for optimised domain decomposition)

Téléchargement des sources : http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download

  • Scotch et PT-Scotch: >= 6 - (for optimised domain decomposition)

Téléchargement des sources : https://gforge.inria.fr/frs/?group_id=248 et http://www.labri.fr/perso/pelegrin/scotch/

  • CGNS: >= 3.1 - (pour lire ou écrire les fichiers au format CGNS)

Téléchargement des sources : http://cgns.sourceforge.net/download.html

  • MED: >= 3.0 - (pour lire ou écrire les fichiers au format MED/SALOME)

L'archive avec le code source de MED_fichier se trouve directement à http://files.salome-platform.org/Salome/other/med-3.0.6.tar.gz ou dans l'archive des sources de Code Aster

Pour ce dernier, pour l'extraire d’après http://www.code-aster.org/V2/spip.php?article418 et http://www.code-aster.org/V2/spip.php?article68 ,faire

tar xvzf aster-full-src-11.4.0-1.noarch.tar.gz aster-full-src-11.4.0/SRC/med-3.0.6.tar.gz 

Téléchargement des sources : http://www.code-aster.org/V2/spip.php?rubrique7

Liens de téléchargement direct :
http://www.code-aster.org/FICHIERS/aster-full-src-11.4.0-1.noarch.tar.gz

  • hdf5: > 1.6.4 - (nécessaire pour l'utilisation des bibliothèques CGNS et MED )

Sources : http://www.hdfgroup.org/downloads/

  • Zlib: 1.2.3 - (pour importer les maillages compressés)

Sources : http://www.zlib.net/

Bibliothèques optionnelles supplémentaires

autres librairies optionnelles non indiquées dans les pré-requis du fichier COMPATIBILITY

  • Libccmio >= 2.6.1

Sources : recherchez libccmio-2.6.1.tar.gz sur Internet disponible en archive à https://svn.scorec.rpi.edu/wsvn/TSTT/Tools/iMeshIO/libccmio-2.6.1.tar.gz?op=log&rev=2353&sc=0&isdir=0 ou demander la dernière version auprès de l'éditeur cd-adapco d'apres le 2ème post dans ce forum.
Attention, l'utilisation de cette librairie pour lire les fichiers Star-CCM+ (*.ccm) nécessite d'utiliser la commande reorient. Veuillez donc consulter les posts suivants : post1 et post2 pour plus d'informations sur ce point.

  • Syrthes >= 4.0

Sources : http://innovation.edf.com/recherche-et-communaute-scientifique/logiciels/syrthes-41220.html

Liens de téléchargement direct :
http://innovation.edf.com/recherche-et-communaute-scientifique/logiciels/syrthes/syrthes-telechargement-280982.html puis prendre les 4 fichiers de la version Debian.

Bibliothèques MPI

Dans le cas de calcul parallèle, il est nécessaire d'utiliser une bibliothèque MPI. Les bibliothèques suivantes ont été utilisées avec succès par l'équipe de développement de Code_Saturne (voir fichier COMPATIBILITY)
(le numéro donné est celui de la dernière version au moment de la rédaction de ce document), mais aucune commande spécifique n'est utilisé dans le code de sorte que toute autre bibliothèque MPI devrait fonctionner.

  • MPICH: 3.0.4
  • MPICH2: 1.2.5

Téléchargement des sources MPICH : http://www.mpich.org/downloads/
Téléchargement des sources MPICH2 : http://www.mcs.anl.gov/research/projects/mpich2staging/goodell/downloads/index.php?s=downloads

  • Open-MPI: 1.6.4

Téléchargement des sources : http://www.open-mpi.org/software/ompi/v1.6/

Note : Les bibliothèques LAM/MPI 7.1.x (http://www.lam-mpi.org/7.1/) ne sont plus supportées par Code_Saturne 3.x

Installation

Installation des prérequis

Toutes les étapes d'installation de librairies et de compilation se feront avec le compte root. Le lancement de Code_Saturne se fera avec un compte utilisateur normal.

0) Passer en compte root

su - root

puis indiquez le mot de passe du compte root

1) Installer l'ensemble des logiciels (compilateurs, bibliothèques) nécessaires pour mettre en place un environnement de développement :
Avec Mageia 3, nous installons :

  • En version 4.7.2 : gcc, gcc-c++, gcc-cpp, gcc-gfortran. GFortran supporte le Fortran 95.
  • glibc 2.17

Mageia 3 :

urpmi meta-task task-c++-devel task-c-devel task-x11 gcc-gfortran

En plus du make de mageia3, vous aurez besoin de cmake pour compiler les librairies Metis et CGNSlib :

urpmi cmake

2) Installer l'ensemble des logiciels nécessaires au prérequis pour l'interface graphique :
Avec Mageia 3, nous installons :

  • Python 2.7.3 et ses librairies (dont python-matplotlib)
  • PyQT (python-qt4) 4.9.6 et ses librairies
  • QT4 4.8.4 et ses librairies
  • LibXML2 2.9.0 et ses librairies

Mageia 32bits :

urpmi python libpython2.7 libpython-devel python-qt4 python-qt4-assistant python-qt4-core python-qt4-designer python-qt4-devel \
python-qt4-gui python-qt4-multimedia python-qt4-network python-qt4-opengl python-qt4-script python-qt4-xml python-qt4-xmlpatterns \
libqt3support4 libqt4-devel libqtcore4 libqtdbus4 libqtdesigner4 libqtgui4 libqthelp4 libqtmultimedia4 libqtnetwork4 libqtopengl4 \
libqtscript4 libqtscripttools4 libqtxml4 libqtxmlpatterns4 qt4-common qt4-qtconfig qt4-qtdbus qt4-xmlpatterns qtscriptbindings \
libxml2_2 libxml2-devel libxml2-python libxml2-utils python-matplotlib

Mageia 64bits :

urpmi python lib64python2.7 lib64python-devel python-qt4 python-qt4-assistant python-qt4-core python-qt4-designer python-qt4-devel \ 
python-qt4-gui python-qt4-multimedia python-qt4-network python-qt4-opengl python-qt4-script python-qt4-xml python-qt4-xmlpatterns \
lib64qt3support4 lib64qt4-devel lib64qtcore4 lib64qtdbus4 lib64qtdesigner4 lib64qtgui4 lib64qthelp4 lib64qtmultimedia4 lib64qtnetwork4 lib64qtopengl4 \
lib64qtscript4 lib64qtscripttools4 lib64qtxml4 lib64qtxmlpatterns4 qt4-common qt4-qtconfig qt4-qtdbus qt4-xmlpatterns qtscriptbindings \
lib64xml2_2 lib64xml2-devel libxml2-python libxml2-utils python-matplotlib

Dans une installation de mageia 3 où le package task-kde4-minimal a déjà installé, il pourrait n'y avoir que l'installation des paquets principaux suivants et leurs librairies de dépendances en 32 bits: lib64python-devel, lib64qassistant4, python-qt4-assistant, python-qt4-devel, qt4-designer.

3) Installer l'ensemble des logiciels nécessaires au prérequis hors besoin pour l'interface graphique :
Avec Mageia 3, nous installons :

  • hdf5 1.8.9 et ses librairies
  • Zlib 1.2.7 et ses librairies
  • LibBlas 3.4.2 et ses librairies
  • CGNS 3.1 et ses librairies (N'EXISTE PAS SUR MAGEIA 3)
  • MED 3.0 et ses librairies (N'EXISTE PAS SUR MAGEIA 3)
  • Metis 5.0 et ses librairies (N'EXISTE PAS SUR MAGEIA 3)
  • Scotch 6.0 et ses librairies (N'EXISTE PAS SUR MAGEIA 3)

Mageia 3 :

urpmi libzlib1 libzlib-devel hdf5 libhdf5-devel libhdf5_7 libhdf5_hl7 libblas3 libblas-devel (32 bits)
urpmi lib64zlib1 lib64zlib-devel hdf5 lib64hdf5-devel lib64hdf5_7 lib64hdf5_hl7 lib64blas3 libblas-devel (64 bits)

4) Installer l'ensemble des logiciels nécessaires au prérequis pour le calcul parallèle hors besoin pour l'interface graphique :
Avec Mageia 3, nous installons :

La solution plus à jour pour fonctionner et la plus performante

  • Open-MPI 1.6.4 et ses librairies
urpmi openmpi libopenmpi1 libopenmpi-devel (32 bits)
urpmi openmpi lib64openmpi1 lib64openmpi-devel (64 bits)

et nous n'installons pas

  • Mpich et ses librairies (N'EXISTE PAS SUR MAGEIA 3)
  • Mpich2 1.2.1 et ses librairies (alors que le prérequis est Mpich2 1.2.5 )

parce qu'ils ne respectent pas les prérequis de Code Saturne ou n'existe pas sur Mageia.

Note : il sera souhaitable d'utiliser Open-MPI à la place des autres librairies et en particulier LAM/MPI parce Open-MPI est plus complet et à jour que LAM/MPI. Source.

Compilation de Code Saturne et de ses librairies annexes

Note : je considère ici que le code source de code_saturne et ds librairies optionnelles ou obligatoires ont été téléchargés via les liens indiqués à l'étape Prérequis au début de ce document.
Les sources de code_saturne et ds librairies optionnelles ou obligatoires ont été déposés dans le répertoire /home/user/code-saturne :

47668927 code_saturne-3.0.1.tar.gz

0a) Compilation de CGNS (optionnel)

Cette librairie est nécessaire pour ajouter le support de l'importation ou l'exportation de fichiers au format CGNS par Code_Saturne.

tar xzvf cgnslib_3.1.4-2.tar.gz
cd cgnslib_3.1.4

Si Mageia 32 bits alors mettre -DENABLE_64BIT:BOOL=OFF ci-dessous

cmake -DBUILD_CGNSTOOLS:BOOL=OFF \
-DCGNS_BUILD_SHARED:BOOL=ON \
-DCGNS_USE_SHARED:BOOL=ON \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/opt/code_saturne-3.0.1/lib/cgnslib-3.1.4 \
-DENABLE_64BIT:BOOL=ON \
-DENABLE_FORTRAN:BOOL=OFF \
-DENABLE_HDF5:BOOL=ON \
-DENABLE_LEGACY:BOOL=OFF \
-DENABLE_SCOPING:BOOL=OFF \
-DENABLE_TESTS:BOOL=OFF 
make
make install
ls -l /opt/code_saturne-3.0.1/lib/cgnslib-3.1.4/bin
ls -l /opt/code_saturne-3.0.1/lib/cgnslib-3.1.4/include
ls -l /opt/code_saturne-3.0.1/lib/cgnslib-3.1.4/lib
cd ..

0b) Compilation de libccmio (Optionnel)

Cette librairie est nécessaire pour ajouter le support de l'importation de fichiers au format STAR-CCM+ par Code_Saturne.

(permettre la lecture de fichiers Star-CCM+ , extension de fichier *.ccm). Avec libccmio-2.6.1, on a libccmio 2.6.1, libadf ?, libcgns 2.30

tar xzvf libccmio-2.6.1.tar.gz
cd libccmio-2.6.1/
./compile.linux17
make -f Makefile
mkdir -p /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib
mkdir -p /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/include/libccmio

identifier le nom du repertoire en fonction de l'architecture en 32 ou 64 bits

ls -l lib

-si vous avez Mageia en 32bits, veuillez remplacer le texte linux_2.4-x86-glibc_2.3.2 ci-dessous par le résultat de la commande ci-dessus :

cp -p -r lib/linux_2.4-x86-glibc_2.3.2/debug-shared/libadf* /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib
cp -p -r lib/linux_2.4-x86-glibc_2.3.2/debug-shared/libccmio* /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib

-si vous avez Mageia en 64bits, exécutez les commandes ci-dessous :

cp -p -r lib/linux64_2.4-x86-glibc_2.2.5/debug-shared/libadf* /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib 
cp -p -r lib/linux64_2.4-x86-glibc_2.2.5/debug-shared/libccmio* /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib

suite des commandes pour Mageia 32 ou 64 bits :

cp -p -r libadf/*.h /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/include
cp -p -r libadf/*.c /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/include
cp -p -r libccmio/*.h /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/include/libccmio
cp -p -r libccmio/*.c /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/include/libccmio
cp -p -r /opt/code_saturne-3.0.1/lib/cgnslib-3.1.4/lib/*.so* /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib (Ligne a exécuter UNIQUEMENT si vous avez installé cgnslib à l'étape précédente)
chmod a+x /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib/*.so
ls -l /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/include
ls -l /opt/code_saturne-3.0.1/lib/libccmio-2.6.1/lib
cd ..

0c) Compilation de LibMED (OBLIGATOIRE pour utiliser des fichiers créés par SALOME)

Cette librairie est nécessaire pour ajouter le support de l'importation ou l'exportation de fichiers au format MED par Code_Saturne.

tar xvzf aster-full-src-11.4.0-1.noarch.tar.gz aster-full-src-11.4.0/SRC/med-3.0.6.tar.gz
cd aster-full-src-11.4.0/SRC
tar xzvf med-3.0.6.tar.gz
cd med-3.0.6
./configure --prefix=/opt/code_saturne-3.0.1/lib/med-3.0.6
make
make install
ls -l /opt/code_saturne-3.0.1/lib/med-3.0.6/include
ls -l /opt/code_saturne-3.0.1/lib/med-3.0.6/lib
cd ../../..

0d) Compilation de Metis (Optionnel)

Cette librairie peut être utilisé pour optimiser le partitionnement du maillage. Suivant le maillage, le calcul en parallèle de maillages partitionnés avec ces librairies peut être de 10% à 50% plus rapide que la méthode de partitionnement intégré dans code_saturne par courbe de remplissage de l'espace. La qualité de partitionnement de Metis est habituellement légèrement inférieure à celle obtenue avec Scotch or PT-Scotch, mais ces bibliothèques sont plus rapides.

tar xzvf metis-5.1.0.tar.gz
cd metis-5.1.0

Compilation des librairies dynamiques (nécessaires pour Code_Saturne)

make config shared=1 prefix=/opt/code_saturne-3.0.1/lib/metis-5.1.0
make
make install

Et compilation ensuite des librairies statiques (nécessaires pour Syrthes)

make distclean
make config prefix=/opt/code_saturne-3.0.1/lib/metis-5.1.0
make
make install
ls -l /opt/code_saturne-3.0.1/lib/metis-5.1.0/include
ls -l /opt/code_saturne-3.0.1/lib/metis-5.1.0/lib
cd ..

0e) Compilation de Scotch (Optionnel)

Cette librairie peut être utilisé pour optimiser le partitionnement du maillage. Suivant le maillage, le calcul en parallèle de maillages partitionnés avec ces librairies peut être de 10% à 50% plus rapide que la méthode de partitionnement intégré dans code_saturne par courbe de remplissage de l'espace. La qualité de partitionnement de Scotch est habituellement légèrement supérieure à celle obtenue avec Metis, mais ces bibliothèques sont plus lentes.

tar xzvf scotch_6.0.0.tar.gz
cd scotch_6.0.0/src

Mageia 32 bits / Compilation des librairies dynamiques nécessaires pour Code_Saturne et compilation ensuite des librairies statiques nécessaires pour Syrthes.

cp -p Make.inc/Makefile.inc.i686_pc_linux2.shlib ./Makefile.inc
make
mkdir -p /opt/code_saturne-3.0.1/lib/scotch-6.0.0
make prefix=/opt/code_saturne-3.0.1/lib/scotch-6.0.0 install
make clean
cp -p -f Make.inc/Makefile.inc.i686_pc_linux2 ./Makefile.inc 
make
make prefix=/opt/code_saturne-3.0.1/lib/scotch-6.0.0 install

Mageia 64 bits / Compilation des librairies dynamiques nécessaires pour Code_Saturne et compilation ensuite des librairies statiques nécessaires pour Syrthes.

cp -p Make.inc/Makefile.inc.x86-64_pc_linux2.shlib ./Makefile.inc
make
mkdir -p /opt/code_saturne-3.0.1/lib/scotch-6.0.0
make prefix=/opt/code_saturne-3.0.1/lib/scotch-6.0.0 install
make clean
cp -p -f Make.inc/Makefile.inc.x86-64_pc_linux2 ./Makefile.inc 
make
make prefix=/opt/code_saturne-3.0.1/lib/scotch-6.0.0 install
ls -l /opt/code_saturne-3.0.1/lib/scotch-6.0.0/include
ls -l /opt/code_saturne-3.0.1/lib/scotch-6.0.0/lib
cd ../..


Problème d'éditions de liens avec bibliothèques bzip2 et lzma à corriger lors de la compilation :

Mageia 32 bits

urpmi libbzip2-devel liblzma-devel liblzmadec0 liblzmadec-devel

Mageia 64 bits

urpmi lib64bzip2-devel lib64lzma-devel lib64lzmadec0 lib64lzmadec-devel

Editez le fichier Makefile.inc et ajoutez les paramètres

-DCOMMON_FILE_COMPRESS_BZ2 -DCOMMON_FILE_COMPRESS_LZMA

à la fin de la ligne

CFLAGS          =

afin d'ajouter le support de gestion de gestion en entrée et sortie de graphes compressés au format bzip2 et lzma par les binaires de la distribution scotch en plus de Zlib.

0f) Compilation de OpenMPI (Optionnel) (mais OBLIGATOIRE pour utiliser SYRTHES avec Code_Saturne)

Pour utiliser Code_Saturne avec Syrthes, il est obligatoire que Code_saturne et Syrthes utilisent la même version d'OpenMPI et de la librairie PLE (inclus dans Code_saturne pour cette dernière). Voir documentation d'installation de Code_saturne 3.0, chapitre 7- Installing for SYRTHES coupling. De plus Syrthes n'arrivent pas à trouver les librairies même statiques fournies par les rpm OpenMPI dans les dépots Mageia.

tar xzvf openmpi-1.6.5.tar.gz
cd openmpi-1.6.5
./configure --prefix=/opt/code_saturne-3.0.1/lib/openmpi-1.6.5 --enable-static
make
make install
ls -l /opt/code_saturne-3.0.1/lib/openmpi-1.6.5/include
ls -l /opt/code_saturne-3.0.1/lib/openmpi-1.6.5/lib
cd ..

1) Compilation de Code_Saturne (Code_Saturne Preprocessor, Kernel and Graphical User Interface)

tar xzvf code_saturne-3.0.1.tar.gz

Compilation de la librairie libple :

cd code_saturne-3.0.1/libple
./configure --prefix=/opt/code_saturne-3.0.1/lib/libple-1.0.3 \
--with-pic \
--with-mpi=/opt/code_saturne-3.0.1/lib/openmpi-1.6.5
make 
make install
ls -l /opt/code_saturne-3.0.1/lib/libple-1.0.3/include
ls -l /opt/code_saturne-3.0.1/lib/libple-1.0.3/lib
cd ..

Configuration minimale code_saturne :

./configure --prefix=/opt/code_saturne-3.0.1 \ 
--disable-openmp \
--with-pic \
--with-ple \
--with-libxml2 \
--without-blas \
--with-mpi \
--without-metis \
--without-scotch \
--with-hdf5 \
--with-cgns=/opt/code_saturne-3.0.1/lib/cgnslib-3.1.4 \
--with-med=/opt/code_saturne-3.0.1/lib/med-3.0.6 \
--without-ccm \
--with-zlib \
--with-salome \
--with-libiconv \
--with-libintl

ou configuration recommandée avec METIS, SCOTCH, CCM pour code_saturne :

./configure --prefix=/opt/code_saturne-3.0.1 \ 
--disable-openmp \
--with-pic \
--with-ple \
--with-libxml2 \
--without-blas \
--with-mpi \
--with-metis=/opt/code_saturne-3.0.1/lib/metis-5.1.0 \
--with-scotch=/opt/code_saturne-3.0.1/lib/scotch-6.0.0 \
--with-hdf5 \
--with-cgns=/opt/code_saturne-3.0.1/lib/cgnslib-3.1.4 \
--with-med=/opt/code_saturne-3.0.1/lib/med-3.0.6 \
--with-ccm=/opt/code_saturne-3.0.1/lib/libccmio-2.6.1 \
--with-zlib \
--with-salome \
--with-libiconv \
--with-libintl

ou configuration maximale NON recommandée avec OpenMP, BLAS pour code_saturne :

./configure --prefix=/opt/code_saturne-3.0.1 \ 
--enable-openmp \
--with-pic \
--with-ple \
--with-libxml2 \
--with-blas \
--with-mpi \
--with-metis=/opt/code_saturne-3.0.1/lib/metis-5.1.0 \
--with-scotch=/opt/code_saturne-3.0.1/lib/scotch-6.0.0 \
--with-hdf5 \
--with-cgns=/opt/code_saturne-3.0.1/lib/cgnslib-3.1.4 \
--with-med=/opt/code_saturne-3.0.1/lib/med-3.0.6 \
--with-ccm=/opt/code_saturne-3.0.1/lib/libccmio-2.6.1 \
--with-zlib \
--with-salome \
--with-libiconv \
--with-libintl

Affichage du résultat de la configuration avant compilation :

...
Configuration options:
use debugging code: no
use malloc hooks: no
use graphical user interface: yes
use long integers: no
Zlib (gzipped file) support: yes
MPI (Message Passing Interface) support: yes
  MPI I/O support: yes
  MPI2 one-sided communication support: yes
OpenMP support: no
BLAS (Basic Linear Algebra Subprograms) support: no
Libxml2 (XML Reader) support: yes
ParMETIS (Parallel Graph Partitioning) support: no
METIS (Graph Partitioning) support: no
PT-SCOTCH (Parallel Graph Partitioning) support: no
SCOTCH (Graph Partitioning) support: no
CCM support: no
HDF (Hierarchical Data Format) support: yes
CGNS (CFD General Notation System) support: yes
MED (Model for Exchange of Data) support: yes
  MED MPI I/O support: no
MEDCoupling support: no
SALOME GUI support: yes
SALOME Kernel support: no
Dynamic loader support (for YACS): dlopen
...

ou avec Scotch, METIS, CCM en plus :

...
Configuration options:
use debugging code: no
use malloc hooks: no
use graphical user interface: yes
use long integers: no
Zlib (gzipped file) support: yes
MPI (Message Passing Interface) support: yes
  MPI I/O support: yes
  MPI2 one-sided communication support: yes
OpenMP support: no
BLAS (Basic Linear Algebra Subprograms) support: no
Libxml2 (XML Reader) support: yes
ParMETIS (Parallel Graph Partitioning) support: no
METIS (Graph Partitioning) support: yes
PT-SCOTCH (Parallel Graph Partitioning) support: no
SCOTCH (Graph Partitioning) support: yes
CCM support: yes
HDF (Hierarchical Data Format) support: yes
CGNS (CFD General Notation System) support: yes
MED (Model for Exchange of Data) support: yes
  MED MPI I/O support: no
MEDCoupling support: no
SALOME GUI support: yes
SALOME Kernel support: no
Dynamic loader support (for YACS): dlopen
...

Lancez la compilation :

make
make install
ls -l /opt/code_saturne-3.0.1/bin
ls -l /opt/code_saturne-3.0.1/include
ls -l /opt/code_saturne-3.0.1/lib
cd ..

2) Test du binaire Code Saturne

a) Revenez a votre compte utilisateur standard et essayez les commandes suivantes :

  • test du script de la librairie "Parallel Location and Exchange" :
/opt/code_saturne-3.0.1/bin/ple-config --version

L'affichage du résultat doit être :

1.0.3
  • test de code_saturne
/opt/code_saturne-3.0.1/bin/code_saturne info --version

L'affichage du résultat doit être :

Code_Saturne version: 3.0.1
  • test du préprocessseur
/opt/code_saturne-3.0.1/libexec/code_saturne/cs_preprocess

L'affichage du résultat doit être du genre suivi les options compilés :

 .--------------------------------.
 |                                |
 |   Préprocesseur Code_Saturne   |
 |                                |
 `--------------------------------'
 code_saturne version 3.0.1   (compilée le mar. 30 juil. 2013 16:55:30 CEST)
 Support du format de fichiers STAR-CCM+
 Support du format de fichiers CGNS 3.1.4
 Support du format de fichiers MED 3.0.6 (HDF5 1.8.9)
 Lecture de fichiers compressés ('.gz') avec Zlib 1.2.7

b) Revenez a votre compte utilisateur standard et essayez la commande suivante :

  • test de l'interface graphique
 /opt/code_saturne-3.0.1/bin/code_saturne gui

L'affichage du résultat doit être :

Une interface graphique doit apparaitre

Note importante : La commande

/opt/code_saturne-3.0.1/bin/code_saturne autovnv

ne fonctionne pas pour l'instant parce que le module vtk pour Python (python-vtk) n'existe pas sur Mageia 3 et génère l'erreur :

Traceback (most recent call last):
 File "/opt/code_saturne-3.0.1/bin/code_saturne", line 77, in <module>
   retcode = cs.execute()
 File "/opt/code_saturne-3.0.1/lib/python2.7/site-packages/code_saturne/cs_script.py", line 73, in execute
   return self.commands[command](options)
 File "/opt/code_saturne-3.0.1/lib/python2.7/site-packages/code_saturne/cs_script.py", line 100, in autovnv
   import cs_autovnv
 File "/opt/code_saturne-3.0.1/lib/python2.7/site-packages/code_saturne/cs_autovnv.py", line 55, in <module>
   from autovnv.Study import Studies
 File "/opt/code_saturne-3.0.1/lib/python2.7/site-packages/code_saturne/autovnv/Study.py", line 45, in <module>
   from autovnv.PlotVTK import PlotVTK
 File "/opt/code_saturne-3.0.1/lib/python2.7/site-packages/code_saturne/autovnv/PlotVTK.py", line 36, in <module>
   import vtk
ImportError: No module named vtk

3) Compilation de Syrthes (Optionnel)

Permet le couplage de Code_Saturne avec le code de thermique solide SYRTHES.

gunzip -S .zip syrthes4.1.1-debian.tgz.part*.zip
cat syrthes4.1.1-debian.tgz.part* >> syrthes4.1.1-debian.tgz
tar xvfz syrthes4.1.1-debian.tgz
cd syrthes4.1.1-debian/src/syrthes-install/
cp -p setup.ini setup.ini.ORI
vi setup.ini

Modifiez le fichier setup.ini comme les parties en gras ci-dessous :

#--------------------------------------------------------
# Architecture Name
#--------------------------------------------------------
#nom_arch  Linux_x86_64    <- for specific architecture
#nom_arch                  <- leave empty for automatic default
#                              value (based on uname)
nom_arch 
#
#--------------------------------------------------------
# C compiler (sequential)                                             
#--------------------------------------------------------
#compC  /home/toto/gcc-x.y.z/gcc <- for specific C compiler  
#compCX /home/toto/gcc-x.y.z/g++ <- for specific C++ compiler (only needed for MPI installation) 
#compC   gcc                     <- leave gcc for automatic default
#compCX  g++                     <- leave g++ for automatic default
#                                  
compC   gcc 
compCX  g++ 
#
# Specific options for compiler 
#specific_inc= -I /myinclude/inc -I /myinclude2/inc 
#specific_lib= -L /mylib/lib1 -L /mylib/lib2
#specific_debug= -g 
#specific_option= -D _SYRTHES_MPI_IO_
#
# parallel compilation
#specific_makej= -j8
#
#--------------------------------------------------------
# Graphical user Interface
#--------------------------------------------------------
gui  INSTALL=yes 
#  
#--------------------------------------------------------
# Interpreted functions
#--------------------------------------------------------
# Answer by yes or no
#
# interpreted function module - SYRTHES - sequential version
syrthesppfunc  INSTALL=yes
#
#--------------------------------------------------------
# SYRTHES4 - kernel - sequential version
#--------------------------------------------------------
# Answer by yes or no
#
# SYRTHES - sequential version
syrthesseq     INSTALL=yes
#
#
#--------------------------------------------------------
# SYRTHES4 - tools for meshes and results conversions
#--------------------------------------------------------
# Choose your type of installation and answer by yes or no
# Select the line corresponding to your choice
#
# for MED format conversion : choose to istall or the path to the libraries
#hdf5   USE=yes  INSTALL=yes
#hdf5  USE=no   INSTALL=no
#hdf5  USE=yes  PATH=/.../syrthes4.1/extern-libraries/opt/hdf5-1.8.8/arch/MY_ARCH
hdf5   USE=yes  INSTALL=no
#
#
#med    USE=yes  INSTALL=yes
#med   USE=no   INSTALL=no
#med   USE=yes  PATH=/.../syrthes4.1/extern-libraries/opt/med-3.0.6/arch/MY_ARCH
med    USE=yes  PATH=/opt/code_saturne-3.0.1/lib/med-3.0.6
#
#
# Answer by yes or no
#
# mesh format conversion tool
syrthesconvert INSTALL=yes
#
# results file format conversion tool SYRTHES --> Paraview/Ensight
syrthesensight INSTALL=yes
#
# results file format conversion tool SYRTHES --> SALOME-MED
syrthesmed     INSTALL=yes
#
#--------------------------------------------------------
# SYRTHES4 - parall version (optional)
#--------------------------------------------------------
# Choose your type of installation and answer by yes or no
# Select the line corresponding to your choice
# mpi is required, metis AND/OR scotch are required
#
#mpi   USE=yes  INSTALL=yes
#mpi  USE=no   INSTALL=no
#mpi  USE=yes  PATH=/.../syrthes4.1/extern-libraries/opt/openmpi-1.4.3/arch/MY_ARCH
 mpi   USE=yes  PATH=/opt/code_saturne-3.0.1/lib//openmpi-1.6.5
#
#metis USE=yes INSTALL=yes
#metis USE=no  INSTALL=no
#metis  USE=yes PATH=/.../syrthes4.1/extern-libraries/opt/metis-5.0.2/arch/MY_ARCH
metis  USE=yes PATH=/opt/code_saturne-3.0.1/lib/metis-5.1.0
#
#scotch USE=yes INSTALL=yes
#scotch USE=no  INSTALL=no
#scotch  USE=yes PATH=/.../syrthes4.1/extern-libraries/opt/scotch_5.1.12b/arch/MY_ARCH
scotch USE=yes  PATH=/opt/code_saturne-3.0.1/lib/scotch-6.0.0
#
# Answer by yes or no
# 
# mesh partitionning - SYRTHES parallel version - rebuilding results file
syrthespp    INSTALL=yes
syrthesmpi   INSTALL=yes
syrthespost  INSTALL=yes
#
#--------------------------------------------------------
# Optional extern libraries
#--------------------------------------------------------
# Choose your type of installation and answer by yes or no
# Select the line corresponding to your choice
#
# BLAS Linear algebra library
blas  USE=no  INSTALL=no
#blas USE=yes PATH=/home/...
#
#--------------------------------------------------------
# SYRTHES for coupling with Code-Saturne (optional)
#--------------------------------------------------------
# Warning : MPI installation must be defined before
#
#ple USE=no
#ple USE=yes   PATH=/.../saturne/opt/libple-1.0/arch/MY_ARCH
ple USE=yes   PATH=/opt/code_saturne-3.0.1/lib/libple-1.0.3
#
#syrthescfd INSTALL=no
syrthescfd INSTALL=yes
#
#
./syrthes_install.py
mkdir -p /opt/code_saturne-3.0.1/lib/syrthes-4.1.1
cd /home/user/code-saturne/syrthes4.1.1-debian/arch/
ls

Commande pour Mageia 64bits :

cd Linux_x86_64

Commande pour Mageia 32bits (remplacer Linux_i586 ci-dessous par le nom exact du répertoire) :

cd Linux_i586

Reprise des commandes pour Mageia 32 et 64bits :

cp -p -r * /opt/code_saturne-3.0.1/lib/syrthes-4.1.1
ls -l /opt/code_saturne-3.0.1/lib/syrthes-4.1.1/bin
ls -l /opt/code_saturne-3.0.1/lib/syrthes-4.1.1/include
ls -l /opt/code_saturne-3.0.1/lib/syrthes-4.1.1/lib
cd /opt/code_saturne-3.0.1/lib/syrthes-4.1.1/bin

Editez le fichier syrthes.profile et remplacez la ligne :

SYRTHES4_HOME=/home/user/code-saturne/syrthes4.1.1-debian/arch/Linux_x86_64

par

SYRTHES4_HOME=/opt/code_saturne-3.0.1/lib/syrthes-4.1.1

4) Definition des variables d'environnement

Afin d'éviter d'indiquer chaque fois le chemin complet vers les binaires ou scripts de Code_Saturne, il est nécessaire :
- soit d'utiliser un script setenv.sh qui sera à lancer une fois au début de votre travail avec Code_Saturne dans un seul et meme terminal ou
- soit mettre ces variables d'environnement dans le fichier .bashprofile dans votre repertoire HOME et le travail sera fait une fois pour toutes.
Voici comment mettre en oeuvre ces 2 solutions :

  • création du fichier de chargement des variables d'environnements de Code Saturne dans /opt/code_saturne-3.0.1/bin/setenv.sh et mettez-y les lignes ci-dessous :
# setup code saturne environment
export PATH=$PATH:/opt/code_saturne-3.0.1/bin/
# syrthes
. /opt/code_saturne-3.0.1/lib/syrthes-4.1.1/bin/syrthes.profile

Rendre executable le fichier

chmod a+x /opt/code_saturne-3.0.1/bin/setenv.sh
  • modification du fichier bashprofile du compte utilisateur
cd
vi .bashprofile 

et mettez tout à la fin de ce fichier les lignes suivantes

# setup code saturne environment
export PATH=$PATH:/opt/code_saturne-3.0.1/bin/
# syrthes
. /opt/code_saturne-3.0.1/lib/syrthes-4.1.1/bin/syrthes.profile