-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinstallation.txt
98 lines (63 loc) · 6.68 KB
/
installation.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#
# INSTALLATION DE LA BIBLIOTHEQUE Lima++
#
Elle requiert une version supérieure ou égale à la version 3.20.0 de cmake (version >= 3.24.2 recommandée).
CONFIGURATION DE BASE : lecteurs mali mli mli2 ideas gibi castem modulef [icemcfd] dyna2d dyna3d abaqus
=======================
A noter qu'à partir de la version 7.11.0 l'écrivain mli est désactivé.
Exemples de compilation/installation :
A la ligne de commande : depuis le répertoire racine contenant les sources de Lima.
-------------------------
Installation minimale recommandée :
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran -DCMAKE_CXX_FLAGS="-std=c++11" -DCMAKE_Fortran_FLAGS="-fdefault-integer-8 -fdefault-real-8 -fdefault-double-8" \
-DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA=ON -DBUILD_TESTS:BOOL=ON -DBUILD_SCRIPTING:BOOL=ON -DMACHINE_TYPES:BOOL=OFF -DSUMESH:BOOL=OFF -DFORMAT_MLI:BOOL=OFF -DFORMAT_MLI2:BOOL=ON -DFORMAT_MLI2:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=ON -DINT_8:BOOL=ON -DREAL_8:BOOL=ON \
-DSWIG_EXECUTABLE=/opt/swig/4.1.1/bin/swig -DPython3_ROOT_DIR=/usr/lib/python3 -DHDF5_ROOT=/opt/HDF5/1.12.0 \
-B /tmp/lima_build_dir -DCMAKE_INSTALL_PREFIX=/opt/Lima/7.11.2
cmake --build /tmp/lima_build_dir
cmake --install /tmp/lima_build_dir
Installation avec options :
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran -DCMAKE_CXX_FLAGS="-std=c++11" -DCMAKE_Fortran_FLAGS="-fdefault-integer-8 -fdefault-real-8 -fdefault-double-8" \
-DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA=ON -DBUILD_TESTS:BOOL=ON -DBUILD_SCRIPTING:BOOL=ON -DMACHINE_TYPES:BOOL=ON -DSUMESH:BOOL=ON -DFORMAT_MLI:BOOL=ON -DFORMAT_MLI2:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=ON -DINT_8:BOOL=ON -DREAL_8:BOOL=ON \
-DSWIG_EXECUTABLE=/opt/swig/4.1.1/bin/swig -DPython3_ROOT_DIR=/usr/lib/python3 -DHDF5_ROOT=/opt/HDF5/1.12.0 -DHDF145_INCLUDE_DIR=/opt/hdf145/1.3.0/include -DHDF145CPP_LIBRARY=/opt/hdf145/1.3.0/lib/libhdf145_cpp.so -DHDF145_LIBRARY=/opt/hdf145/1.3.0/lib/libhdf145.so \
-B /tmp/lima_build_dir -DCMAKE_INSTALL_PREFIX=/opt/Lima/7.11.2
cmake --build /tmp/lima_build_dir
cmake --install /tmp/lima_build_dir
Avec les fichiers "configurations" :
-------------------------------------
cmake -S . -B /tmp/build_lima -DCMAKE_INSTALL_PREFIX=/tmp/install_lima -DCMAKE_TOOLCHAIN_FILE=configurations/Ubuntu_GNU7.cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA=ON
CMAKE_BUILD_PARALLEL_LEVEL=16 cmake --build /tmp/build_lima
cmake --install /tmp/build_lima
REMARQUES :
============
L'option -DMACHINE_TYPES:BOOL=OFF permet de désactiver l'utilisation de MachineTypes - définition des types numériques simples - dans les interfaces.
L'option -DSUMESH:BOOL=OFF permet de désactiver l'utilisation de la bibliothèque sumesh (lissage).
L'option -DFORMAT_MLI:BOOL=OFF permet de désactiver le lecteur/écrivain obsolète "mli" qui repose sur la bibliothèque HDF 5 1.4.5.
L'option -DWRITER_MLI:BOOL=ON permet de réactiver l'écrivain obsolète "mli" à condition que FORMAT_MLI soit positionné à ON.
L'option -DDISABLE_MLI_WARNING:BOOL=ON, fortement déconseillée, permet de désactiver l'affichage en bleu dans la console d'un avertissement signalant l'utilisation de ce lecteur/écrivain obsolète "mli".
L'option -DFORMAT_MLI2:BOOL=OFF permet de désactiver le lecteur/écrivain "mli2" qui repose sur une version supérieure ou égale à 1.10.0 de la bibliothèque HDF 5.
L'option -DBUILD_XLMLIMA:BOOL=ON permet la compilation (recommandée) de l'utilitaire xlmlima (informations, changement de formats, préparations, comparaison).
Le format mli2 repose sur l'API C++ d'une version supérieure ou égale à 1.10.0 de HDF5.
Possibilité de lecture du format mli (HDF 1.4.5) : requiert que la bibliothèque HDF145 interne au CEA soit installée. La variable cmake HDF145_INCLUDE_DIR est alors attendue pour renseigner où trouver le fichier HDF145/hdf5.h. A titre d'exemple :
cmake -S . -B /tmp/build_lima -DCMAKE_INSTALL_PREFIX=/tmp/install_lima -DCMAKE_TOOLCHAIN_FILE=configurations/Ubuntu_GNU11.cmake -C configurations/Ubuntu_GNU11_external_meshlibs.cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA:BOOL=ON -DMACHINE_TYPES:BOOL=OFF -DSUMESH:BOOL=OFF -DFORMAT_MLI:BOOL=OFF -DFORMAT_MLI2:BOOL=ON
ou
cmake -S . -B /tmp/build_lima -DCMAKE_INSTALL_PREFIX=/tmp/install_lima -DCMAKE_TOOLCHAIN_FILE=configurations/Ubuntu_GNU11.cmake -C configurations/Ubuntu_GNU11_external_meshlibs.cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA:BOOL=ON -DMACHINE_TYPES:BOOL=OFF -DSUMESH:BOOL=OFF -DFORMAT_MLI:BOOL=ON -DFORMAT_MLI2:BOOL=ON -DHDF145_INCLUDE_DIR=/opt/hdf145/1.3.0/include
puis :
cmake --build /tmp/build_lima
cmake --install /tmp/build_lima
NB : Les bibliothèques libhdf145_cpp.so et libhdf145.so sont recherchées dans le répertoire ${HDF145_INCLUDE_DIR}/../lib et ${HDF145_INCLUDE_DIR}/../lib64.
ATTENTION : la lib Z peut être requise pour HDF 1.4.5, HDF5, et le logiciel à compiler. Pour éviter tout conflit il est recommandé de charger la lib Z via find_package (ZLIB REQUIRED) avec la variable cmake ZLIB_ROOT positionnée (par exemple sur la Z lib installée par HDF5).
Taille des entiers pour le langage fortran : il convient de transmettre aux compilateurs C/C++ l'option -DINTEGER_32 si ils sont codés sur 32 bits ou -DINTEGER_64 si ils sont codés sur 64 bits, ce codage étant souvent côté
fortran une instruction transmise au compilateur type -i8.
On peut préciser à cmake la taille d'encodage des entiers et réels via les options booléennes INT_8 et REAL_8. Ex pour I4.R8 : -DINT_8:BOOL=OFF -DREAL_8:BOOL=ON
Depuis la version 7.10.0 les codes fortran peuvent profiter de la cible Lima::lima_fortran_compile_flags pour récupérer à la compilation les drapeaux de compilation permettant au compilateur fortran d'encoder les entiers (INTEGER) et flottants (REAL) par défaut sur le même nombre d'octets que Lima. Pour ce il suffit par exemple d'utiliser cette cible comme suit :
find_package (Lima REQUIRED)
target_link_libraries (code_fortran PUBLIC Lima::Lima Lima::lima_fortran_compile_flags)
Le script build.sh et les fichiers du répertoire configurations - à adapter - permettent d'installer lima à moindre coût.
BINDINGS PYTHON 3 :
===================
A partir de la version 7.11.2 le binding python 2 n'est plus supporté.
Pour avoir un binding python il faut en plus utiliser la directive cmake -DBUILD_SCRIPTING=ON et affecter la variable SWIG_EXECUTABLE.
Une version récente de cmake (ex : 3.24) est recommandée afin de s'assurer que le Python utilisé correspond bien à celui demandé (Python3_ROOT_DIR).
Affecter Python3_ROOT_DIR (testé avec swig v 3.0.12/Python 3.7.3).