From Mageia wiki
(Redirected from Code Saturne FR)
Jump to: navigation, search
Compilation, installation et configuration de Code_Saturne sur Mageia 2 ou supérieur. Code Saturne est logiciel de calcul scientifique dans le domaine de la mécanique des fluides.

Contents

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 de Code Saturne 2.0.6, les prérequis logiciels sont les suivants :

Code source de Code_Saturne

  • La version 2.0 de l'outil de calcul en mécanique des fluides Code_Saturne est composé des sources suivantes :

- Code_Saturne Noyau (et IHM) 2.0.6 (Kernel (including Graphical User Interface))
- Code_Saturne Préprocesseur 2.0.3 (Preprocessor)

Liens de téléchargement direct :
http://code-saturne.org/cms/sites/default/files/releases/ncs-2.0.6.tar.gz
http://code-saturne.org/cms/sites/default/files/releases/ecs-2.0.3.tar.gz

Page de téléchargement en français :
version 2.0.4 : http://innovation.edf.com/recherche-et-communaute-scientifique/logiciels/code-saturne/telechargements-code-saturne-45340.html
Page de téléchargement en anglais :
version 2.0.6 : http://code-saturne.org/cms/download/2.0 et version 2.0.4 : http://research.edf.com/research-and-the-scientific-community/softwares/code-saturne/introduction-code-saturne-80058.html
D'autres versions de ces éléments peuvent ne pas être compatible.

Bibliothèques obligatoires

Les bibliothèques BFT (Base Functions and Types) et FVM (Finite Volume Mesh) sont obligatoires. Le MEI (Mathematical Expressions Interpreter) est optionnel. Ils sont distribués sous licence LGPL (copyright EDF S.A., France).

Code_Saturne version 2.0 est compatible avec les versions suivantes:

  • BFT 1.1.3 ou plus récent
  • FVM 0.15.1 ou plus récent
  • MEI 1.0.2 ou plus récent

Les versions plus anciennes peuvent encore être compatible, éventuellement avec des fonctions limitées.

Les versions les plus récentes de ces librairies sont les suivantes

  • BFT 1.1.5
  • FVM 0.15.4
  • MEI 1.0.4

et leurs code source sont téléchargeables à http://innovation.edf.com/recherche-et-communaute-scientifique/logiciels/code-saturne/telechargements-code-saturne-45340.html

Liens de téléchargement direct :
http://code-saturne.org/cms/sites/default/files/releases/bft-1.1.5.tar.gz
http://code-saturne.org/cms/sites/default/files/releases/fvm-0.15.4.tar.gz
http://code-saturne.org/cms/sites/default/files/releases/mei-1.0.4.tar.gz

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 2.0 de Code_Saturne. D'autres versions (plus récentes ou anciennes ) peuvent-être encore compatible.

  • python:

python > 2.4 - (nécessaire pour l'interface graphique (GUI) de Code_Saturne GUI)
python > 2.3 - (if Code_Saturne GUI is disabled) Téléchargement des sources : http://www.python.org/download/

  • 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.nokia.com/products/platform/

  • 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

  • swig: > 1.3.30 - (necessary for the MEI library)

Téléchargement des sources : http://www.swig.org/download.html

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

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

  • CGNS: > 2.5

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

ATTENTION : Code_Saturne 2.0.x n'est pas compatible avec CGNS > 3.1.x et donc > 3.x (Source). Veuillez donc utilisez la dernière version de CGNS 2.5.x pour Code_Saturne 2.0.x.

  • MED_fichier: > 2.3

ATTENTION : Code_Saturne 2.0.6 est compatible avec MED 2.3.x ou 3.0.x. Par contre il est donc fortement conseillé d'utiliser MED 3.0.x, afin de pouvoir lire des maillages générés avec des versions récentes de SALOME (le support MED 2.x ayant été supprimés de versions plus récentes de Code_Saturne).

L'archive avec le code source de MED_fichier se trouve dans l'archive des sources de Code Aster

Pour l'extraire d'apres http://www.code-aster.org/V2/spip.php?article418 ,faire

tar xvzf aster-full-src-10.7.0-1.noarch.tar.gz aster-full-src-10.7.0/SRC/med-3.0.5.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-10.7.0-1.noarch.tar.gz

  • hdf5: > 1.6.4 - (necessary for MED_fichier library)

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

  • Zlib: 1.2.3

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

autres librairies optionnelles non indiquées dand 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 > 3.0

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

ATTENTION : Code_Saturne 2.0.x n'est pas compatible avec Syrthes > 4.0.x (Source). Veuillez donc utilisez la dernière version de Syrthes 3.4.x pour Code_Saturne 2.0.x .

Liens de téléchargement direct :
http://innovation.edf.com/fichiers/fckeditor/Commun/Innovation/logiciels/syrthes/syrthes3.4.3.zip

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.

  • LAM/MPI: 7.1.4

Téléchargement des sources : http://www.lam-mpi.org/7.1/download.php

  • MPICH: 1.2.7p1
  • MPICH2: 1.2.1p1

Téléchargement des sources : http://www.mcs.anl.gov/research/projects/mpich2/

  • Open-MPI: 1.4.2

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


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 2, nous installons :

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

Mageia 2

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

ATTENTION, l'alias f95 n'existe pas dans le paquet gcc-gfortran, il faut donc le créer (nécessaire pour compiler la librairie cgnslib_2.5 (f95) et Syrthes 3.4 (g77)):

ln -s /usr/bin/gfortran /usr/bin/f95
ln -s /usr/bin/gfortran /usr/bin/g77

MANDRIVA 2010.1

urpmi install meta-task task-c++-devel task-c-devel task-x11 task-kde4-minimal task-kde4-devel gcc-gfortran

Nous installons aussi des librairies liées à GCC mais nécessaire que pour compiler certains programmes :

  • pour le support de Fortran 77 : g77 basé sur Gcc /3.3.6 (nécessaire pour Syrthes) (N'EXISTE PAS SUR MAGEIA 2)
  • LibGOMP 4.6.3 pour le support OpenMP (calcul parallèle) (nécessaire pour Code Saturne - NCS)
  • F2c 20080827. F2c convertit le code source de Fortran 77 en fichiers sources C ou C++. (nécessaire pour CGNSLib)

Mageia 2

urpmi libgomp1 libgomp-devel f2c libf2c (libf2c-devel manquante sur Mageia 2)

MANDRIVA 2010.1

urpmi gcc3.3-g77 gcc3.3-3.3.6 gcc3.3-cpp-3.3.6 libg2c0-3.3.6 libgomp1 libgomp-devel f2c libf2c-devel libf2c0

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

  • Python 2.7.3 et ses librairies
  • PyQT (python-qt4) 4.9.4 et ses librairies
  • QT4 4.8.2 et ses librairies
  • LibXML2 2.7.8 et ses librairies
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

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

  • Zlib 1.2.6 et ses librairies
  • hdf5 1.8.7 et ses librairies
  • Lib MED_fichier 2.3.6 et ses librairies (N'EXISTE PAS SUR MAGEIA 2)
  • Metis 4.0 et ses librairies (N'EXISTE PAS SUR MAGEIA 2)
  • swig 2.0.4
  • LibBlas 3.4.0 et ses librairies

Mageia 2

urpmi libzlib-devel hdf5 libhdf5-devel libhdf5_7 libhdf5_hl7 swig libblas3 libblas-devel (32 bits)
urpmi libzlib-devel hdf5 lib64hdf5-devel libhdf5_7 libhdf5_hl7 swig libblas3 libblas-devel (64 bits)

MANDRIVA 2010.1

urpmi zlib1 zlib1-devel hdf5 libhdf5-devel libhdf5_6 libhdf5_hl6 libmed1 libmed-devel metis libmetis-devel swig libblas3 libblas-devel

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

La solution plus à jour pour fonctionner et la plus performante

  • Open-MPI 1.4.5 et ses librairies
urpmi openmpi libopenmpi0 libopenmpi-devel

et nous n'installons pas

  • LAM/MPI 7.1.4 et ses librairies (N'EXISTE PAS SUR MAGEIA 2)
  • Mpich et ses librairies (N'EXISTE PAS SUR MAGEIA 2)
  • Mpich2 1.2.1 et ses librairies (alors que le prérequis est Mpich2 1.2.1p1 )

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 des librairies a été téléchargé via les liens indiqués à l'étape Prérequis au début de ce document.
Les sources ci-dessous ont été déposés dans un répertoire /home/user/code-saturne :

471252 bft-1.1.5.tar.gz
1171288 ecs-2.0.3.tar.gz
825883 fvm-0.15.4.tar.gz
484410 mei-1.0.4.tar.gz
10863717 ncs-2.0.6.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_2.5-5.tar.gz
cd cgnslib_2.5
./configure --prefix=/opt/code_saturne-2.0.6/lib/cgnslib-2.55 --with-system=LINUX --enable-gcc --enable-shared --with-hdf5 --enable-lfs
make
mkdir -p /opt/code_saturne-2.0.6/lib/cgnslib-2.55/include
mkdir -p /opt/code_saturne-2.0.6/lib/cgnslib-2.55/lib
make install
ls -l /opt/code_saturne-2.0.6/lib/cgnslib-2.55/lib
make clean
./configure --prefix=/opt/code_saturne-2.0.6/lib/cgnslib-2.55 --with-system=LINUX --enable-gcc --disable-shared --with-hdf5 --enable-lfs
make
make install
ls -l /opt/code_saturne-2.0.6/lib/cgnslib-2.55/lib
ls -l /opt/code_saturne-2.0.6/lib/cgnslib-2.55/include
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-2.0.6/lib/libccmio-2.6.1/lib
mkdir -p /opt/code_saturne-2.0.6/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-2.0.6/lib/libccmio-2.6.1/lib
cp -p -r lib/linux_2.4-x86-glibc_2.3.2/debug-shared/libccmio* /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/lib

(si vous avez Mageia en 64bits)

cp -p -r lib/linux64_2.4-x86-glibc_2.2.5/debug-shared/libadf* /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/lib 
cp -p -r lib/linux64_2.4-x86-glibc_2.2.5/debug-shared/libccmio* /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/lib
cp -p -r libadf/*.h /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/include
cp -p -r libadf/*.c /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/include
cp -p -r libccmio/*.h /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/include/libccmio
cp -p -r libccmio/*.c /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/include/libccmio
cp -p -r /opt/code_saturne-2.0.6/lib/cgnslib-2.55/lib/*.so /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/lib
chmod a+x /opt/code_saturne-2.0.6/lib/libccmio-2.6.1/lib/*.so
cd ..

0c) Compilation de Syrthes (Optionnel)

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

urpmi dos2unix
unzip syrthes3.4.3.zip
cd syrthes3.4.3
cd bin

Note : /home/user/code-saturne est le répertoire ou les sources ont été décompressés.

export NOM_ARCH=Linux
export PATHSYR=/home/user/code-saturne
export SYRTHES_HOME=/home/user/code-saturne/syrthes3.4.3
export PATH=/home/user/code-saturne/syrthes3.4.3/bin:/home/webadm/code-saturne/syrthes3.4.3/bin/Linux:$PATH
make install
make exe
mkdir -p /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin
mkdir -p /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/include
mkdir -p /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/lib
cd ..
cp -p -r lib/Linux/* /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/lib
cp include/* /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/include
cp -p bin/syrthes /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin
chmod a+x bin/syrthes_create_case
dos2unix bin/syrthes_create_case
cp -p bin/Linux/syrthes2ensight /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin 
cp -p bin/syrthes_create_case /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin
cp -p bin/Makefile /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin 
cp -p bin/Makefile.in /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin
cd ..

Créer le fichier /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin/syrthes.profile avec editeur de texte préféré ou vi et mettez y :

export NOM_ARCH=Linux
export PATHSYR=/opt/code_saturne-2.0.6/lib
export PATH=/opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin:/opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin/Linux:$PATH
export SYRTHES_HOME=/opt/code_saturne-2.0.6/lib/syrthes-3.4.3

0d) 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-10.7.0-1.noarch.tar.gz aster-full-src-10.7.0/SRC/med-3.0.5.tar.gz
cd aster-full-src-10.7.0/SRC
tar xzvf med-3.0.5.tar.gz
cd med-3.0.5
./configure --prefix=/opt/code_saturne-2.0.6/lib/med-3.0.5
make
make install
cd ../../..

0e) Compilation de Metis (Optionnel)

urpmi cmake
tar xzvf metis-5.0.2.tar.gz
cd metis-5.0.2
make config shared=1 prefix=/opt/code_saturne-2.0.6/lib/metis-5.0.2
make
make install
cd ..


1) Compilation de bft (Base Functions & Types Libraries)

tar xzvf bft-1.1.5.tar.gz
cd bft-1.1.5
chmod a+x configure
./configure --prefix=/opt/code_saturne-2.0.6/lib/bft-1.1.5
make
make install
ls -l /opt/code_saturne-2.0.6/lib/bft-1.1.5
cd ..

2) Compilation de fvm (Finite Volume Mesh Library)

tar xzvf fvm-0.15.4.tar.gz
cd fvm-0.15.4
chmod a+x configure

Configuration minimale

./configure --prefix=/opt/code_saturne-2.0.6/lib/fvm-0.15.4 --with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5

ou Configuration maximale avec CGNS et MED

CFLAGS="-Wl,-rpath=/opt/code_saturne-2.0.6/lib/cgnslib-2.55/lib" ./configure --prefix=/opt/code_saturne-2.0.6/lib/fvm-0.15.4 \
--with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5 --with-cgns=/opt/code_saturne-2.0.6/lib/cgnslib-2.55 \
--with-med=/opt/code_saturne-2.0.6/lib/med-3.0.5

Affichage du résultat de la configuration avant compilation :

...
Configuration options:
use debugging code: false
MPI (Message Passing Interface) support: yes
  MPI I/O support: yes
  MPI2 one-sided communication support: yes
HDF (Hierarchical Data Format) support: yes
CGNS (CFD General Notation System) support: no
MED (Model for Exchange of Data) support: no
...

ou avec CGNS et MED

Configuration options:
use debugging code: false
MPI (Message Passing Interface) support: yes
  MPI I/O support: yes
  MPI2 one-sided communication support: yes
HDF (Hierarchical Data Format) support: yes
CGNS (CFD General Notation System) support: yes
MED (Model for Exchange of Data) support: yes
... 

Lancez la compilation :

make
make install
ls -l /opt/code_saturne-2.0.6/lib/fvm-0.15.4
cd ..

3) Compilation d'ecs (Code_Saturne Preprocessor )

 tar xzvf ecs-2.0.3.tar.gz
cd ecs-2.0.3
chmod a+x configure

Configuration minimale :

./configure --prefix=/opt/code_saturne-2.0.6 --with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5

ou configuration maximale avec CGNS ET ADF et CCM

CFLAGS="-Wl,-rpath=/opt/code_saturne-2.0.6/lib/libccmio-2.6.1/lib" ./configure --prefix=/opt/code_saturne-2.0.6 \
--with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5 --with-cgns=/opt/code_saturne-2.0.6/lib/cgnslib-2.55 \
--with-adf=/opt/code_saturne-2.0.6/lib/libccmio-2.6.1 --with-ccm=/opt/code_saturne-2.0.6/lib/libccmio-2.6.1\
--with-med=/opt/code_saturne-2.0.6/lib/med-3.0.5 --with-metis=/opt/code_saturne-2.0.6/lib/metis-5.0.2

Affichage du résultat de la configuration avant compilation :

...
Configuration options:
use debugging code: false
use long integers: false
ADF support: no
CCM support: no
HDF5 (Hierarchical Data Format) support: yes
CGNS (CFD General Notation System) support: no
MED (Model for Exchange of Data) support: no
METIS (Graph Partitioning) support: no
SCOTCH (Graph Partitioning) support: no
...

ou avec CGNSLIB et LIBCCMIO et MED et Metis

Configuration options:
use debugging code: false
use long integers: false
ADF support: yes
CCM support: yes
HDF5 (Hierarchical Data Format) support: yes
CGNS (CFD General Notation System) support: yes
MED (Model for Exchange of Data) support: yes
METIS (Graph Partitioning) support: yes
SCOTCH (Graph Partitioning) support: no
...

Lancez la compilation :

make
make install
ls -l /opt/code_saturne-2.0.6/bin
cd ..

4) Compilation de mei (Mathematical Expressions Interpreter Library)

tar xzvf mei-1.0.4.tar.gz
cd mei-1.0.4
chmod a+x configure
chmod a+x config/py-compile 
./configure --prefix=/opt/code_saturne-2.0.6/lib/mei-1.0.4 --with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5

Affichage du résultat de la configuration avant compilation :

...
Configuration options:
use debugging code: false
Python bindings: true
...

Lancez la compilation :

make
make install
ls -l /opt/code_saturne-2.0.6/lib/mei-1.0.4/
cd ..

5) Compilation de ncs (Code_Saturne Kernel and Graphical User Interface)

tar xzvf ncs-2.0.6.tar.gz
cd ncs-2.0.6
chmod a+x configure
chmod a+x config/py-compile

Configuration minimale :

./configure --prefix=/opt/code_saturne-2.0.6 --with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5 \
--with-fvm=/opt/code_saturne-2.0.6/lib/fvm-0.15.4 --with-mei=/opt/code_saturne-2.0.6/lib/mei-1.0.4 \
--with-prepro=/opt/code_saturne-2.0.6

ou configuration maximale avec SYRTHES

./configure --prefix=/opt/code_saturne-2.0.6 --with-bft=/opt/code_saturne-2.0.6/lib/bft-1.1.5 \
--with-fvm=/opt/code_saturne-2.0.6/lib/fvm-0.15.4 --with-mei=/opt/code_saturne-2.0.6/lib/mei-1.0.4 \
--with-prepro=/opt/code_saturne-2.0.6
--with-syrthes=/opt/code_saturne-2.0.6/lib/syrthes-3.4.3

Affichage du résultat de la configuration avant compilation :

...
Configuration options:
use debugging code: false
use graphical user interface: yes
MPI (Message Passing Interface) support: yes
OpenMP support: yes
BLAS (Basic Linear Algebra Subprograms) support: yes
Libxml2 (XML Reader) support: yes
MEI (Mathematical Expressions Interpreter) support: yes
SYRTHES 3 coupling support: no
IP socket support (for SYRTHES 3 or CFD_Proxy): yes
Dynamic loader support (for YACS): yes
...

ou avec SYRTHES

Configuration options:
use debugging code: false
use graphical user interface: yes
MPI (Message Passing Interface) support: yes
OpenMP support: yes
BLAS (Basic Linear Algebra Subprograms) support: yes
Libxml2 (XML Reader) support: yes
MEI (Mathematical Expressions Interpreter) support: yes
SYRTHES 3 coupling support: yes
IP socket support (for SYRTHES 3 or CFD_Proxy): yes
Dynamic loader support (for YACS): yes
...

Lancez la compilation :

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

6) Generation de la documentation de Code Saturne au format PDF (optionnel)

urpmi tetex tetex-latex tetex-dvips transfig tcsh
cd ncs-2.0.6
make pdf
make install-pdf
ls -l /opt/code_saturne-2.0.6/share/doc/ncs
242930 2011-01-31 23:29 developper.pdf
417633 2011-01-31 23:29 install.pdf
162583 2011-01-31 23:28 refcard.pdf
2073245 2011-01-31 23:29 theory.pdf
6874641 2011-01-31 23:29 tutorial.pdf
1562605 2011-01-31 23:29 user.pdf

7) Test du binaire Code Saturne

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

  • test du solveur
/opt/code_saturne-2.0.6/bin/cs_solver --version

L'affichage du résultat doit être :

Code_Saturne version 2.0.6
  • test du preprocessseur
/opt/code_saturne-2.0.6/bin/cs_preprocess

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

  .--------------------------------.
 |   Préprocesseur Code_Saturne   |
 `--------------------------------'
 ECS   version 2.0.3   (mer. 10 oct. 2012 23:07:10 CEST)
 Support du format de fichiers STAR-CCM+
 Support du format de fichiers CGNS 2.5.5
 Support du format de fichiers MED 3.0.5 (HDF5 1.8.7)
 Lecture de fichiers compressés ('.gz') avec Zlib 1.2.6

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

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

L'affichage du résultat doit être :

Une interface graphique doit apparaitre

8) 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-2.0.6/bin/setenv.sh et mettez-y les lignes ci-dessous :
# setup code saturne environment
export PATH=$PATH:/opt/code_saturne-2.0.6/bin/
# syrthes
. /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin/syrthes.profile

Rendre executable le fichier

chmod a+x /opt/code_saturne-2.0.6/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-2.0.6/bin/
# syrthes
. /opt/code_saturne-2.0.6/lib/syrthes-3.4.3/bin/syrthes.profile

Utilisation

Dans le répertoire ncs-2.0.6/examples/ de l'archive ncs que vous avez décompressé précédemment, il y a 4 exemples de test à réaliser avec Code Saturne.

Lancement du premier test :

Lancez l'interface graphique via la commande :

/opt/code_saturne-2.0.6/bin/code_saturne gui

La page http://code-saturne.blogspot.com/2010/01/navigator-post-recommended-to-read.html contient un tutoriel pour traiter un cas concret avec :

Ou autre cas d'étude ici :
http://www.caelinux.org/wiki/index.php/Contrib:Claws/Real_world_study_CodeSaturne

Installation de Paraview

Attention Paraview n'est pas fournie dans les dépôts Mageia.
En conséquence, il vous faudra installer manuellement les binaires précompilés pour Linux.
Ces binaires de la dernière version de Paraview en version 3.14 sont disponibles sur cette page.
Installation :

  • Si vous avez Mageia Linux en 32 bits :
cd /home/user/code-saturne/
tar xzvf ParaView-3.14.1-Linux-32bit.tar.gz
cd ParaView-3.14.1-Linux-32bit/bin
./paraview

Le lancement de Paraview pourra aussi se faire à partir de n'importe quel répertoire via la commande :

/home/user/code-saturne/ParaView-3.14.1-Linux-32bit/bin/paraview


  • Si vous avez Mageia Linux en 64 bits
cd /home/user/code-saturne/
tar xzvf ParaView-3.14.1-Linux-64bit.tar.gz
cd ParaView-3.14.1-Linux-64bit/bin
./paraview

Le lancement de Paraview pourra aussi se faire à partir de n'importe quel répertoire via la commande :

/home/user/code-saturne/ParaView-3.14.1-Linux-64bit/bin/paraview

Installation de Salome

Attention Salome n'est pas fournie dans les dépôts Mageia.
En conséquence, il vous faudra installer manuellement les binaires précompilés pour Linux.
Ces binaires de la dernière version de SALOME sont disponibles sur cette page.
ATTENTION, il faut s'entegistrer sur le site de SALOME pour que les liens de téléchargement s'affichent dans le navigateur web.

Dans notre cas, je choisis d'utiliser SALOME 3.6.1 pour etre au plus pres des tutoriesls.

Lien de téléchargement :
http://www.salome-platform.org/downloads/previous-versions/salome-v6.3.1


  • Si vous avez Mageia Linux en 32 bits :

Decompression

/home/user/code-saturne
tar xzvf Salome_6.3.1_32bit.tar.gz

Lancement

/home/user/code-saturne/Salome-V6_3_1_public_32bit/runSalome

Une fenetre avec l'interface de SALOME 6.3.1 s'affiche alors


  • Si vous avez Mageia Linux en 64 bits :

Decompression

/home/user/code-saturne
tar xzvf Salome_6.3.1_64bit.tar.gz

Lancement

/home/user/code-saturne/Salome-V6_3_1_public_64bit/runSalome

Une fenetre avec l'interface de SALOME 6.3.1 s'affiche alors

Tutoriel en video de calcul d'écoulement dans un tuyau d'un fluide

Il existe sur Youtube un excellent tutoriel en video (uniquement en anglais :( sur Code Saturne + Salome pour faire du calcul sur l'écoulement dans un tuyau : Code-Saturne CFD Tutorial on CAELinux 2011 (Salome 6.3.0, Code Saturne 2.0.3), mais cette video est dans une résolution faible et nécessite d'utiliser un fichier d'exemple fourni avec la distribution CAE Linux 2011 (/opt/caelinux/docs/tutorials/pipe/Pipe1mesh.hdf). En conséquence, je vous conseille de récupérer sur la page http://www.caelinux.org/wiki/index.php/Doc:Code-Saturne#CFD_Simulation_using_Code-Saturne_and_Salome_in_CAELinux_2011, le fichier PipeSaturneAll.m4v qui contient le fichier vidéo en haute résolution et le fichier Pipe1mesh.hdf.zip qui contient le fichier Salome avec la géométrie et le maillage.

Création de l'étude et du 1er cas de test associé

Création manuelle de l'étude et du cas associé pour Code_Saturne (FONCTIONNE CORRECTEMENT) :

  • Chargement des variables d'environnement de Code_Saturne et Syrthes
. /opt/code_saturne-2.0.6/bin/setenv.sh
  • Aller dans le répertoire utilisateur pour travailler
cd
  • Création du répertoire de travail dédié à Code_Saturne
mkdir CFD-Saturne
cd CFD-Saturne
  • Création de l'étude et d'un cas associé
 code_saturne create -s PIPE -c CASE1
  • Copie de pipe.med (export via SALOME au format *.med de Pipe1Mesh.hdf) vers le repertoire MESH de travail
cp pipe1.med PIPE/MESH
  • Aller dans le répertoire de donnée pour lancer l'interface graphique de Code_Saturne
cd PIPE/CASE1/DATA
./SaturneGUI 

Création automatisée de l'étude et du cas associé pour Code_Saturne (PARTIE NON FONCTIONNELLE ACTUELLEMENT) :

Le tutoriel de la vidéo utilise un script appelé "Code-Saturne Wizard" qui n'est pas fourni avec le code source de Code Saturne mais uniquement avec la distribution CAE Linux.Nous allons devoir le récupérer et le configurer.

tar xzvf CodeSaturneWizard2011.tar.gz
cd CodeSaturneWizard
cp SaturneStudy.py /opt/code_saturne-2.0.6/bin
cd /opt/code_saturne-2.0.6/bin
  • Modification du fichier /opt/code_saturne-2.0.6/bin/SaturneStudy.py où

la ligne 13

cs_profile_path="/opt/saturne-2.0.2/setenv-saturne.sh"

doit etre remplacer par

cs_profile_path="/opt/code_saturne-2.0.6/bin/setenv.sh"

et la ligne 14

term="gnome-terminal"

par

term="konsole"

si vous utilisez KDE comme environnement de bureau

  • Installation de paquets nécessaire à ce script
urpmi tkinter
  • Lancement du "Code-Saturne Wizard" afin de vérifier qu'il fonctionne
/opt/code_saturne-2.0.6/bin/SaturneStudy.py

Exécution du tutoriel

Voici quelques précisions ci-dessous pour réaliser le tutoriel vidéo tout en tenant compte des spécifités de l'installation faite sur Mageia Linux par rapport à CAE Linux et du changement de version de Code_Saturne de la 2.0.3 sur CAE Linnux à la 2.0.6 sur Mageia Linux.

Etapes :

  • 1-Lancer Salome via la commande indiquée précédemment dans cette page web et puis en suivant les instructions de la vidéo réaliser les taches suivantes: importer le fichier Pipe1mesh.hdf puis l'exporter au format *.MED connu par Code_Saturne.
  • 2-Lorsque dans la video lance le script "Code-Saturne Wizard" dans un menu, alors suivez la procédure manuelle de création de l'étude via la procédure indiquée précédemment en changeant le nom de l'étude (paramètre -s pour Study) et le nom du cas (paramètre -c pour Case) (ou en lançant le "Code-Saturne Wizard" lorsque la partie sur ce point dans ce document sera fonctionnelle).
  • 3-Suivez le paramétrage dans l'interface graphique de votre Code_Saturne 2.0.6 comme celà est indiqué dans la video en tenant compte des modifications suivantes qui ne sont pas dans la video :
    • Dans la partie "Numerical parameters\Equation parameters", puis dans la colonne "Solver Precision", la valeur est de "1e-08" pour l'ensemble des variables dans la colonne "Name". Si vous souhaitez réduire le temps de calcul de Code_Saturne sur votre ordinateur, alors passez ces valeurs de "1e-08" à "1e-05"
    • Dans la partie "Calculation Management\Prepare batch calculation", vous aurez sur

- Code_Saturne 2.0.2 sur CAE Linux 2011 :

       Computer selection
       Prepare batch calculation qui contient :
               Select the batch script file
               Number of processors
               User files
               Advanced options
       Bouton "Run code saturne batch job"

- Code_Saturne 2.0.6 sur Mageia 2 :

       Script file qui contient :
               Select the script file                
       Calculation script parameters qui contient :
               Number of process                
               User files
               Advanced options
       Calculation start qui contient
               Bouton "Start calculation"   

- Code_Saturne 2.0.6 contient la nouvelle interface pour lancer les batchs de calcul qui a été rétroporté de Code Saturne 2.3.x . Le paramétrage "Computer selection" a disparu afin d'éviter des problèmes de mauvais paramétrages sur les supercalculateurs d'EDF et il est remplacé par un paramétrage codé en dur défini au moment de la compilation du logiciel.
- De plus le bouton "Run code saturne batch job" de la 2.0.2 a été remplacé par "Start calculation" dans la 2.0.6, vous devrez donc utilisez ce nouveau bouton à la place de l'autre pour suivre les opérations de la vidéo et enfin lancer le calcul par Code_Saturne après de nombreux paramétrages.

  • 4-Dès que vous avez cliquez sur le bouton "Start calculation", vous devez avoir le message "Starting calculation" dans un fenêtre console/terminal qui vous indique que le calcul est en cours. Le calcul sera terminé lorsque vous aurez ensuite le message "Normal simulation finish".
  • 5-Il vous reste ensuite à ouvrir avec SALOME le fichier chr.med.xxxx créé par Code Saturne pour visualiser la petite video de la simulation.

Voir aussi