ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/aide/aide.h
Revision: 1189
Committed: Tue Feb 4 17:26:49 2025 UTC (3 months ago) by francois
Content type: text/plain
File size: 41045 byte(s)
Log Message:
Version 5.0 de MAGIC. Integration de ALGLIB pour faire de l'optimisation. ALGLIB se download automatiquement en executant un script dans le repertoire config update_magic.bash


File Contents

# Content
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// aide.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// Derniere modification par francois
20 //####// mer 24 jui 2024 18:48:56 EDT
21 //####//------------------------------------------------------------
22 //####//------------------------------------------------------------
23 /*! \page Aide Info MAGiC
24 Informations diverses
25
26 - \subpage infodiv
27
28 Configuration de MAGiC
29
30 - \subpage Configuration
31
32
33 Description du format du fichier script MAGiC\n
34 - \subpage Script
35
36 Description de la procédure de reconstruction d'un modèle structurel après optimisation topologique\n
37 - \subpage Reconstruction
38
39 Faire une étude SiDolo
40
41 - \subpage SiDolo
42
43 Microstucture de matériaux hétérogénes
44
45 - \subpage microstructre
46
47 \image html testmagic150.png
48 */
49
50 /*! \mainpage
51
52 <H1><B><center>Bienvenue sur le site de documentation du laboratoire <A HREF=http://www.uqtr.ca/ericca>ERICCA</A> de l'<A HREF=http://www.uqtr.ca/>UQTR</a></center></B></H1>
53 <table border="0">
54 <tr>
55 <td>
56 \image html viewvc-logo.png <br>
57 <a HREF=http://ericca.uqtr.ca/cgi-bin/viewvc.cgi/REPOS_ERICCA/>Vue de la derniere version</a><br>
58 \image html testmagic150.png <br>
59 <a HREF=http://ericca.uqtr.ca/webmagic/index_text.html>État de la derniere version</a>
60 <br>\image html documentation.png width=120px <br>
61 <a href="http://ericca.uqtr.ca/biblio/Programmation/MAGiC/"> Documentation MAGiC </a>
62
63
64 </td>
65 <td>
66 <div style="text-align:center">
67 \image html magicexemple.jpg width=800px
68 </div>
69 </td>
70 </tr>
71 </table>
72 */
73
74
75 /*! \page infodiv Informations diverses sur le projet MAGiC
76 Le projet MAGiC est un projet des professeurs Jean-Christophe Cuillière et Vincent Francois de l'Équipe de Recherche en Intégration CAO-CAlcul du département de génie mécanique de l'UQTR.\n\n
77 Cette page résume les différents liens pour les outils disponibles : \n\n
78 <ul>
79 <li><a href="http://ericca.uqtr.ca/cgi-bin/viewvc.cgi"> Web SVN </a></li>
80 <li><a href="http://ericca.uqtr.ca/biblio"> Biblio ERICCA </a></li>
81 <li><a href="http://ericca.uqtr.ca/cas_test"> Cas test d'optimisation de topologie </a></li>
82 <li><a href="http://ericca.uqtr.ca/webmagic/index_text.html"> Tests journaliers du code </a></li>
83
84 <li>Documentation de Code ASTER</li>
85 <ul>
86 <li><a href="http://ericca.uqtr.ca/fr11.7"> 11.7 </a></li>
87 <li><a href="http://ericca.uqtr.ca/fr12.4"> 12.4 </a></li>
88 <li><a href="http://ericca.uqtr.ca/fr13.6"> 13.6 </a></li>
89 <li><a href="http://ericca.uqtr.ca/fr14.4"> 14.4 </a></li>
90 <li><a href="http://ericca.uqtr.ca/fr14.6"> 14.6 </a></li>
91 <li><a href="https://code-aster.org/doc/v15/fr/index.php"> 15.6 </a></li>
92 </ul>
93 <li>Modification dans Code ASTER</li>
94 <ul>
95 <li>\subpage ExtraireK </a></li>
96 <li>\subpage CalcParal </a></li>
97 </ul>
98
99 <li>Script d'installation de l'environnement ERICCA : Downloader les fichiers suivants ./instal_magic.bash [tout]. L'option installe les outils de développements. Il faut s'assurer que les scripts soient exécutables. Ensuite il faut faire ./instal_asterv15plus.bash numversion. Ensuite si necessaire ./instal_chrono.bash</li>
100 <ul>
101 <li><a href="http://ericca.uqtr.ca/linux/instal_magic.bash"> Script d'installation de MAGiC </a></li>
102 <li><a href="http://ericca.uqtr.ca/linux/instal_aster.bash"> Script d'installation de code ASTER (version&lt;15)</a></li>
103 <li><a href="http://ericca.uqtr.ca/linux/instal_asterv15plus.bash"> Script d'installation de code ASTER (version&ge;15)</a></li>
104 <li><a href="http://ericca.uqtr.ca/linux/instal_chrono.bash"> Script d'installation de Project Chrono</a></li>
105 </ul>
106 <li>Script d'environnement de MAGIC</li>
107 <ul>
108 <li><a href="http://ericca.uqtr.ca/linux/bash.bashrc"> Fichier a concatener avec le fichier /etc/bash.bashrc </a></li>
109 <li><a href="http://ericca.uqtr.ca/linux/home.bashrc"> Fichier a concatener avec le fichier .bashrc dans chaque home</a></li>
110 </ul>
111
112 </ul>
113 */
114
115
116 /*! \page ExtraireK Extraire matrice de raideur
117 Pour extraire le matrice de rigidité lors d'un calcul de Code Aster dans un fichier en format MATLAB, Il faut utiliser une routine Fortran pour cela (matimp.f) que l'on vient appeler au bon endroit (par exemple dans "op0012.F90"). \n
118 Pour la version 12.4 de Code Aster, il faut faire la modification suivant dans "op0012.F90". On le trouve dans le paquet d'installation de Code Aster à cet endroit: "aster-full-src-12.4.0/SRC/aster-12.4.0/bibfor/op/op0012.F90". \n
119 On édite "op0012.F90" on ajoutant "call matimp(matas,29,'MATLAB')" à la lieu montrée. \n
120
121 \verbatim
122 ! -- SI MATAS N'EST PAS MPI_COMPLET, ON LA COMPLETE :
123 call dismoi('MPI_COMPLET', matas, 'MATR_ASSE', repk=kmpic)
124 ASSERT((kmpic.eq.'OUI').or.(kmpic.eq.'NON'))
125 if (kmpic .eq. 'NON') call sdmpic('MATR_ASSE', matas)
126 !
127 !
128 !
129 call matimp(matas,29,'MATLAB') << On appel matimp ICI <<
130 !
131 ! -- MENAGE :
132 call jedetr(lchci)
133 call jedetr(lmatel)
134 !
135 call jedema()
136 end subroutine
137 \endverbatim \n
138 Et puis, on compile Code ASTER: sudo python setup.py install\n
139 Pour etre capable de sauvegarder le matrice de rigidité dans le fichier MATLAB, il faut editer le fichier .export de Code ASTER comme montré ci dessous: \n
140 \verbatim
141 F comm /home/..../filename.comm D 1
142 F mail /home/..../filename.mail D 20
143 F mess /home/..../filename.mess R 6
144 F m /home/..../filename.m R 29 << On ajoute cette ligne ICI <<
145 \endverbatim \n
146 */
147
148
149 /*! \page CalcParal Calcul parallèle dans Code ASTER
150 Référence: <a href="https://sites.google.com/site/codeastersalomemeca/home/code_asterno-heiretuka/parallel-code_aster-12-4-english"> Parallel Code_Aster 12.4 </a>\n\n
151 <B>Version</B>\n
152 OS:Ubuntu 14.04 \n
153 Code_Aster : ver.12.4\n
154 -----------------------------------------------------------\n\n
155 <B>Telecharger des fichiers</B>\n
156 Les fichier sont enregistrés dans: ~/Install_Files\n
157 Ils sont installé dans : /opt and /opt/aster\n\n
158 Télécharger les fichier suivant:\n
159 aster-full-src-12.4.0-1.noarch.tar.gz (Code_Aster)\n
160 OpenBLAS-0.2.15.tar.gz (OpenBLAS)\n
161 scalapack_installer.tgz (ScaLAPACK)\n
162 petsc-3.4.5.tar.gz (PETSc)\n\n
163 Modifier le propriétaire d'installation par: $ sudo chown username /opt/\n
164 Installez les bibliothèques pour Code_Aster par: \n
165 $ sudo apt-get install gfortran g++ python-dev python-qt4 python-numpy liblapack-dev libblas-dev tcl tk zlib1g-dev bison flex checkinstall openmpi-bin libopenmpi-dev libx11-dev cmake qt4-dev-tools libmotif-dev \n
166 -----------------------------------------------------------\n\n
167 <B>Compiler OpenBLAS (Math LIbrary pour Code_Aster)</B>\n
168 $ cd ~/Install_Files/\n
169 $ tar xfvz OpenBLAS-0.2.15..tar.gz\n
170 $ cd OpenBLAS-0.2.15\n
171 $ make NO_AFFINITY=1 USE_OPENMP=1\n
172 $ make PREFIX=/opt/OpenBLAS install\n
173 $ echo /opt/OpenBLAS/lib | sudo tee -a /etc/ld.so.conf.d/openblas.conf\n
174 $ sudo ldconfig\n
175 -----------------------------------------------------------\n\n
176 <B>Compiler Code_Aster (séquentiel) avec OpenBLAS.</B>\n
177 $ cd ~/Install_Files\n
178 $ tar xfvz aster-full-src-12.4.0-1.noarch.tar.gz\n
179 $ cd aster-full-src-12.4.0/\n
180 $ sed -i "s:PREFER_COMPILER\ =\ 'GNU':PREFER_COMPILER\ =\'GNU_without_MATH'\nMATHLIB=\ '/opt/OpenBLAS/lib/libopenblas.a':g" setup.cfg\n
181 $ python setup.py install\n
182 <EM>Faire host-file pour calcul parallèle par:</EM>\n
183 $ echo "$HOSTNAME cpu=$(cat /proc/cpuinfo | grep processor | wc -l)" > /opt/aster/etc/codeaster/mpi_hostfile\n
184 -----------------------------------------------------------\n\n
185 <B>Compiler ScaLAPACK</B>\n
186 $ cd ~/Install_Files\n
187 $ tar xfvz scalapack_installer.tgz\n
188 $ cd scalapack_installer_1.0.2\n
189 $ ./setup.py --lapacklib=/opt/OpenBLAS/lib/libopenblas.a --mpicc=mpicc --mpif90=mpif90 --mpiincdir=/usr/lib/openmpi/include --ldflags_c=-fopenmp --ldflags_fc=-fopenmp --prefix=/opt/scalapack\n
190 <EM>Une message d'erreur "BLACS: error running BLACS test routines xCbtest" apparaîtra après la compilation, mais vous réussissez, s'il existe le fichier dans "/opt/scalapack/lib/libscalapack.a"</EM> \n
191 -----------------------------------------------------------\n\n
192 <B>Compiler MUMPS</B>\n
193 Copier mumps-4.10.0 dans fichiers source de Code_Aster dans '/opt.\n
194 Compiler par mpi-compiler\n
195 $ cp ~/Install_Files/aster-full-src-12.4.0/SRC/mumps-4.10.0-aster3.tar.gz /opt/\n
196 $ cd /opt\n
197 $ tar xfvz mumps-4.10.0-aster3.tar.gz\n
198 $ mv mumps-4.10.0 mumps-4.10.0_mpi\n
199 $ cd mumps-4.10.0_mpi/\n
200 Changer 'Makefile.inc.in' pour MUMPS4.10.0 Makefile.inc\n
201 $ make all \n
202 -----------------------------------------------------------\n\n
203 <B>Compiler PETSc avec HYPRE et ML</B>\n
204 $ cp ~/Install_Files/petsc-3.4.5.tar.gz /opt\n
205 $ cd /opt\n
206 $ tar xfvz petsc-3.4.5.tar.gz\n
207 $ cd petsc-3.4.5\n
208 $ ./config/configure.py --with-mpi-dir=/usr/lib/openmpi --with-blas-lapack-lib=/opt/OpenBLAS/lib/libopenblas.a --download-hypre=yes --download-ml=yes --with-debugging=0 COPTFLAGS=-O1 CXXOPTFLAGS=-O1 FOPTFLAGS=-O1 --configModules=PETSc.Configure --optionsModule=PETSc.compilerOptions --with-x=0 --with-shared-libraries=0 \n
209 $ make PETSC_DIR=/opt/petsc-3.4.5 PETSC_ARCH=arch-linux2-c-opt all\n
210 $ make PETSC_DIR=/opt/petsc-3.4.5 PETSC_ARCH=arch-linux2-c-opt test\n
211 -----------------------------------------------------------\n\n
212 <B>Compiler Code_Aster (parallèle)</B>\n
213 <EM>Changer un partie de 'mpi_get_procid_cmd' de '/opt/aster/etc/codeaster/asrun' par:\n
214 mpi_get_procid_cmd : echo $OMPI_COMM_WORLD_RANK\n
215 <EM>Changer 32 a 64 pour les processeur 64 bit: </B>\n
216 batch_mpi_nbpmax : 32 (ou 64)\n
217 interactif_mpi_nbpmax : 32 (ou 64)\n
218 <EM>Décompresser Code_Aster</B>\n
219 $ cd ~/Install_Files\n
220 $ cd aster-full-src-12.4.0/SRC\n
221 $ tar xfvz aster-12.4.0.tgz\n
222 $ cd aster-12.4.0\n
223 <EM>Mettre les fichiers de configuration pour calcul parallèle: <a href="https://sites.google.com/site/codeastersalomemeca/home/code_asterno-heiretuka/code_asterno-heiretuka-12-4/Ubuntu_gnu_mpi.py?attredirects=0&d=1"> Ubuntu_gnu_mpi.py </a> et <a href="https://sites.google.com/site/codeastersalomemeca/home/code_asterno-heiretuka/code_asterno-heiretuka-12-4/Ubuntu_gnu.py?attredirects=0&d=1"> Ubuntu_gnu.py </a> dans cette dossier et compiler Code_Aster.</B>\n
224 $ export ASTER_ROOT=/opt/aster\n
225 $ ./waf configure --use-config-dir=$ASTER_ROOT/12.4/share/aster --use-config=Ubuntu_gnu_mpi --prefix=$ASTER_ROOT/PAR12.4\n
226 $ ./waf install -p\n
227 <EM>Ajouter 'vers : PAR12.4:/opt/aster/PAR12.4/share/aster' en dessous de 'vers : testing' in '/opt/aster/etc/codeaster/aster' et puis 'PAR12.4' est enregistré dans ASTK.</B>\n
228
229 */
230
231
232
233 /*! \page Script Description du contenu du fichier script
234 Un fichier script est composé de commandes exécutées en séquences depuis le début du fichier jusqu'à la fin.\n
235 Toute ligne commence par une variable suivie d'un espace suivi d'un signe egal suivi d'un espace et suivi de la commande et de ses arguments.\n
236 Si le premier caractère de la ligne est le caractère # alors la ligne est ignorée.\n\n
237 Les commandes disponibles dans le script MAGiC:
238 - \subpage ajoutass
239 - \subpage brepassemblage
240 - \subpage creemodele
241 - \subpage creeassemblage
242 - \subpage diff
243 - \subpage enregistrer
244 - \subpage export_mg_gmsh
245 - \subpage export_fem_gmsh
246 - \subpage fichier
247 - \subpage importstepocc
248 - \subpage inter
249 - \subpage p_cylindre
250 - \subpage p_cone
251 - \subpage p_boite
252 - \subpage p_sphere
253 - \subpage p_ellipsoide
254 - \subpage p_tore
255 - \subpage union
256 - \subpage fragment
257 - \subpage tristlmodele
258 - \subpage tristlassemblage
259 */
260
261
262 /*! \page Configuration Configuration de MAGiC
263 Dans chaque compte utilisateur ou MAGiC est utilisé un fichier .magic dans le home directory permet de regler quelques parametres de l'application :\n\n
264 Version_gmsh = 2.0000 //Version de gmsh utilisée\n
265 Affiche_Code_Aster = 0.000000 //0. Affichage redirigé vers le fichier aster.log 1 affichage dans un terminal\n
266 Container_singularity_aster = ~/containers/salome_meca-lgpl-2022.1.0-1-20221225-scibian-9.sif //Proprietes aster : Fichier du container code-aster (version >15)\n
267 Convergence_mailleur3d_frontal = 200.000000 //Nombre de front restant à partir duquel la destruction est obligatoire\n
268 Echantillon_face = 20.000000 //Nombre d'échantillon pour le calcul de la boite englobante des faces\n
269 Epsilon_face = 1.000000 //Distance entre la triangulation et la face pour les algos qui echantillonnent les faces (en mm)\n
270 Angle_dev_face = 0.500000 //Angle entre deux elements de la triangulation pour les algos qui echantillonnent les faces\n
271 Verification_coin_face_mailleur2D = 0.000000 //0. Ne fais pas la vérification 1. Fait la vérification qu'un sommet de face partage au moins deux triangles\n
272 Optimisation_2D = 1 //Nombre de bits = nombre de passe d'optimisation. Pour chaque bit 1=bouge de noeud 2=inverse diagonale 3=bouge de noeud inserse diagonale simultane 4=inverse diagonale bouge de noeud simulatane\n
273 Quadratisation_jmin = 1.000000 //Garantir des tetras quadratiques avec jaconien minimum positif : 1=oui 2=non\n
274 Quadratisation_pas = 100.000000 //Nombre de pas pour recaler les noeuds et obtenir un jmin positif\n
275 Quadratisation_dis = 0.100000 //Valeur de la distortion du jacobien minimale à atteindre\n
276 Quadratisation_nbpassemax = 4.000000 //Nombre de passe maximale pour obtenir un jmin positif\n
277 Nb_iteration_max_mailleur2d = 1000000.000000 //Nombre d'iteration maximale pour le mailleur 2D\n
278 Nb_front_max_mailleur3d = 10000000.000000 //Nombre de front maximale pour le mailleur 3D\n
279 Separateur_decimale = , //Seprateur décimale pour l'exportation des fichiers excel\n
280 */
281
282
283
284 /*! \page Reconstruction Description de la procédure de reconstruction d'un modèle structurel après optimisation topologique
285
286 Description de la reconstruction
287
288 - \subpage Description_reconstruction
289
290 Commandes de la reconstruction version thèse A.Nana
291
292 - \subpage Commande_reconstruction
293
294 Commandes de la reconstruction version thèse A. Amroune
295
296 - \subpage Commande_reconstruction2
297
298 */
299
300 /*! \page Description_reconstruction Description de la reconstruction
301 La squelettisation consiste à extraire le squelette d’un modèle. Le modèle est supposé structurel, c’est-à-dire contenant des éléments de type poutre. Pour utiliser l’algorithme de squelettisation, l’on a besoin de 2 fichiers .magic et 2 fichiers .txt. Il s’agit du fichier résultant de l’optimisation topologique, du fichier obtenu après lissage (partie de non_design exclue), et les 2 fichiers .txt provenant de MatLab et contenant les coordonnées des points du squelette et les connectivités entre les points de la courbe-squelette.
302 L’étape 5 ci-dessus résulte en 6 fichiers qui sont : 3 fichiers de squelette (en .magic) et 3 fichiers de solutions (en .sol) sur le calcul des sections.\n\n\n
303 <B>nomfichier_squelette1.magic</B> est le fichier contenant la courbe-squelette sous forme de ligne. Il est accompagné du fichier Carte_section1.sol qui est le fichier de solution pour la taille des sections en mètre (m).\n\n\n
304 <B>nomfichier_squelette2.magic</B> est le fichier contenant le squelette après transformation des segments de chaque branche de la courbe squelette en poutre droite. Il est lui aussi accompagné du fichier Carte_section2.sol qui est le fichier de solution pour la taille des sections des poutres droites en mètre (m). Ce squelette est connecté au non_design à l’aide des segments.\n\n\n
305 <B>nomfichier_squelette3.magic</B> le fichier final de travail. C’est ce fichier qui est utilisé dans la suite pour les calculs. Ce dernier fichier contient le squelette sous forme de poutres droites, est connecté directement au non_design à l’aide des mini-poutres et contient les conditions aux limites et de chargement. Il est accompagné du fichier Carte_section3.sol qui est le fichier de solution pour la taille des sections en mètre (m).
306 */
307 /*! \page Commande_reconstruction Commandes de la reconstruction A Nana (non fonctionnel aujourd'hui)
308
309 <span style="text-decoration: underline;"><B>Etape 1 :</B> </span> Optimisation topologique\n <i>topo_optis.exe
310 -optimise -design nom_fichier.magic -nondesign nom_fichier_bloc.magic -out nom_fichier_resu.magic -param nom_fichier_param.txt -paramaster aster.txt</i>\n\n
311 Si on a déjà un résultat optimal on peut directement passer à l'étape 2.
312 <BR><BR>
313
314 <span style="text-decoration: underline;"><B>Etape 2 :</B> </span> Lissage du résultat optimal (sans la partie de non_design) \n
315 <i>post_optis.exe -creepeau -in nom_fichier_resu.magic -out nom_fichier_lisse.magic -param paramliss.txt</i>\n\n
316 Dans le fichier paramliss, mettre à 1 le paramètre rmimpose_debut pour supprimer le non_design et donner un nom de fichier pour le résultat de la peau sans non_design avec le paramètre nomfichpeau.
317 <BR><BR>
318
319
320 <span style="text-decoration: underline;"><B>Etape 3</B> </span> : Transformation en .off \n
321 <i>mgoperation.exe -offout -in nom_fichier_lisse_peau.magic</i>\n\n
322 (Utiliser le fichier de la peau qui ne contient pas le non_design)
323 <BR><BR>
324
325
326 <span style="text-decoration: underline;"><B>Etape 4 </B> </span> : Squelettisation sous MatLab\n
327
328 Partie 1 : génération du squelette\n
329 Mettre le fichier .off précédent dans le dossier « data » et aller dans le logiciel MatLab. Choisir le chemin vers le dossier « matlab » qui est dans le même répertoire que « data »\n
330 Ouvrir eg_skeleton_laplacian_rosa.m\n
331 Mettre le nom (sans son extension) du fichier .off obtenu à l’Étape 3 dans eg_skeleton_laplacian_rosa.m à la ligne 16.\n
332 executer eg_skeleton_laplacian_rosa.m\n
333 Des figures (en particulier la figure 4) sont générées.\n\n
334
335 Partie 2 : extraction des données\n
336 Ouvrir maintenant Entxt.m qui est également dans le dossier « matlab »\n
337 Donner les noms de fichier désirés dans Entxt.m aux lignes 4, 5 et 33, 34.\n
338 executer Entxt.m \n
339 2 fichiers, contenant les coordonnées des points et les connectivités, sont générés dans le dossier « matlab » ; ce sont ces fichiers qui sont utilisés par la suite dans MAGiC.\n
340 <BR><BR>
341
342
343 <span style="text-decoration: underline;"><B>Etape 5 :</B> </span> Exportation du squelette dans MAGiC\n
344 <i>skeleton.exe -construire_squelette -in nom_fichier_resu.magic -out nom_fichier -inpoints nom_fichier_points.txt -incorres nom_fichier_corres.txt -infilelisse nom_fichier_lisse.magic –connecte 1 –param_lissage paramliss.txt</i>\n\n
345
346
347 Pour obtenir une liste des paramètres pour d’éventuelles modifications, faire simplement :\n
348 <i>skeleton.exe -construire_squelette </i>\n
349
350 –connecte 1 : permet d’introduire des mini-poutres dans toute la zone (les triangles) de contact entre les tétraèdres optimisés et de non_design\n
351
352 –connecte 0 : permet d’introduire des mini-poutres uniquement au nœud de jonction entre le squelette et le non_design\n\n
353
354 Le résultat à utiliser pour la suite est le nom_fichier_squelette3.magic
355 <BR><BR>
356
357 <span style="text-decoration: underline;"><B>Etape 6 :</B> </span> Lancer le calcul EF \n
358 <i>mgoperation.exe -calculaster -in nom_fichier_squelette3.magic -out nom_fichier_sortie -param aster.txt -elastique</i>\n
359 */
360 /*! \page Commande_reconstruction2 Commandes de la reconstruction A Amroune
361
362 <span style="text-decoration: underline;"><B>Etape 1 :</B> </span> Optimisation topologique\n <i>topo_optis.exe
363 -optimise -design nom_fichier.magic -nondesign nom_fichier_bloc.magic -out nom_fichier_resu.magic -param nom_fichier_param.txt -paramaster aster.txt</i>\n\n
364 Si on a déjà un résultat optimal on peut directement passer à l'étape 2.
365 <BR><BR>
366
367 <span style="text-decoration: underline;"><B>Etape 2 :</B> </span> Lissage du résultat optimal (sans la partie de non_design) \n
368 <i>post_optis.exe -creepeau -in nom_fichier_resu.magic -out nom_fichier_lisse.magic -param paramliss.txt</i>\n\n
369 Dans le fichier paramliss, mettre à 1 le paramètre rmimpose_debut pour supprimer le non_design et donner un nom de fichier pour le résultat de la peau sans non_design avec le paramètre nomfichpeau.
370 <BR><BR>
371
372
373 <span style="text-decoration: underline;"><B>Etape 3</B> </span> : Transformation en .off \n
374 <i>mgoperation.exe -offout -in nom_fichier_lisse_peau.magic</i>\n\n
375 (Utiliser le fichier de la peau qui ne contient pas le non_design)
376 <BR><BR>
377
378
379 <span style="text-decoration: underline;"><B>Etape 4 </B> </span> : Squelettisation à l'aide de <a HREF=http://github.com/taiya/starlab-mcfskel target="_blank"/>starlab</a>\n
380
381 Ouvrir le fichier .off dans starlab et appliquer successiverment les filtres suivant :
382 <ol>
383 <li>Voronoi based MAT</li>
384 <li>MCF Skeletonization</li>
385 <li>SurfaceMesh to Skeleton</li>
386 </ol>
387
388 Enregistrer le squelette en fichier .cg
389 <BR><BR>
390 <span style="text-decoration: underline;"><B>Etape 5 :</B> </span> Reconstruction du modèle BREP\n
391 <i>recons_optis.exe -squelette squelette.cg -nd nd.magic -coefjonc 1.3 -nbsections 4 -nbptsinterp1 12 -nbptsinterp2 6 -angle 120 -peau peau.magic</i>
392 <ul>
393 <li>squelette chaine: Nom du fichier du squelette .cg</li>
394 <li>nd chaine: Fichier magic 3D du non-design</li>
395 <li>peau chaine: Fichier magic de la peau avec design et non-design</li>
396 <li>coefjonc double: Coefficient de distance deffinissant les limites des jonctions</li>
397 <li>nbsections integer: Nombre de sections transversales par branche</li>
398 <li>nbptsinterp1 integer: Nombre de points d'interpolation pour chaque section de branche</li>
399 <li>nbptsinterp2 integer: Nombre de points d'interpolation pour chaque segment de section de jonction</li>
400 <li>angle double: Intervalle angulaire de projection pour les sections intermediaires des jonctions (en degre)</li>
401 </ul>
402
403 */
404 /*! \page SiDolo Utilisation de SiDolo couplé à MAGiC
405 <ul>
406 <li>Avant étude</li>
407 <ul>
408 <li>S'assurer que SiDolo est disponible sur son ordinateur. Si ce n'est pas le cas il est diponible <a href="http://ericca.uqtr.ca/SiDolo"> ici </a>. Mettre à jour le fichier sidolo_user dans le répertoire bin afin de mettre le bon répertoire.</li>
409 </ul>
410 <li>Étape 1</li>
411 <ul>
412 <li>Créer un répertoire pour une étude d'optimisation. Conseil pratique un répetertoire = une étude</li>
413 <li>Entrer dans ce répertoire</li>
414 </ul>
415 <li>Étape 2</li>
416 <ul>
417 <li>Créer un modèle MAGiC.</li>
418 <li>Créer un script qui fait un calcul d'une itération d'optimisation.</li>
419 </ul>
420 <li>Étape 3</li>
421 <ul>
422 <li>Créer l'ensemble des fichiers nécessaire à une étude Sidolo. <a href="http://ericca.uqtr.ca/SiDolo"> Exemple de fichiers </a>.</li>
423 <ul>
424 <li>fichier .dat. Définition des parametre de l'étude </li>
425 <li>fichier sidvar.h. Définition des variables </li>
426 <li>fichier interface.f. Programmation des mises à jour de données entre chaque itération</li>
427 <li>fichier .exp. Fichier de la courbe expérimentale à approcher </li>
428 </ul>
429 <li>Configurer les fichiers en se référant à la documentation SiDolo présente dans le répertoire doc de SiDolo.</li>
430 </ul>
431 <li>Étape 4</li>
432 <ul>
433 <li><span style="color:magenta">source ../ou est SiDolo/bin/sidolo_user </span>. </li>
434 <li><span style="color:magenta">sde nomoptim</span> pour creer l'excutable de l'optimisation. </li>
435 <li><span style="color:magenta">sdi interface</span> pour creer l'executable de l'interface. </li>
436 <li><span style="color:magenta">ln -s "executable de l'interface" "non du fichier de la courbe expérimentale sans l'extension .exp"</span></li>
437 </ul>
438 <li>Étape 5</li>
439 <ul>
440 <li>Lancer l'executable de l'optimisateur</li>
441 </ul>
442 </ul>
443
444 */
445 /*!
446 \page microstructre Microstucture de matériaux hétérogénes
447
448 Matériaux hétérogénes à fibres courtes
449
450 - \subpage fibrescourtes
451
452 Polycristaux
453 - \subpage polycristaux
454
455 */
456 /*!
457 \page fibrescourtes Matériaux hétérogénes à fibres courtes
458 <ul>
459 <li>Création des fichiers paramètres</li>
460 <ul>
461 <li>Créer un répertoire vide par etude et se placer dedans.</li><br>
462 <li>Commande : microstructure.exe -creeparam </li><br>
463 Affiche les différents paramètres généraux:
464 Type de generateur : [0] RSA, [1] DCR
465 Type d'inclusion : [0] Sphere, [1] Cylindre
466 Type de maillage : [0] lineaire, [1] quadratique, [2] lineaire et quadratique
467 Type d'etude : [0] mecanique, [1] thermique, [2] mecanique et thermique
468 Nombre de couche d'erosion (defaut = 0)
469 Epaisseur d'une couche d'erosion (defaut = 0.02)
470 <li>Commande : microstructure.exe -creeparam -type_generateur 0 -type_inclusion 0 -type_maillage 0 -type_etude 0 -nb_couche_erosion 10</li><br>
471 Génère l'arborescence de fichier de paramètres nécessaire pour étudier une microstructure
472 <br><br></ul>
473 <li>Lancement de la simulation</li>
474 <ul>
475 <li>Afin de ne pas préciser tout le temps le repertoire app, il est possible de définir la variable locale suivante : export PATHMAGICEXEAPP=dossier app</li><br>
476 <ul>
477 <li>En séquentiel</li>
478 <ul>
479 <li>Commande : ./generer_nb_ves index_départ index_fin "dossier app"</li>
480 </ul>
481 </ul>
482 <ul>
483 <li>En parralélle</li>
484 <ul>
485 <li> </li>
486 </ul>
487 </ul>
488 </ul>
489 <li>Génération des résultats</li>
490 <ul>
491 <li>Commande : ./post_traitement "dossier app"</li>
492 <li>L'ensemble des résultats sont dans le répertoire resultatsé Si le format de fichier est SVG il est possible de consulter les graphiques dans le répertoire résultat/graph en faisant la commande : eog *.svg</li>
493 <li>Par défault, les graphiques sont générés au format SVG. Il est aussi possible de les obtenir au format pdf en faisant la commande suivante : gnuplot -e "sortie='pdf'" fig.gnu</li>
494 </ul>
495 */
496 /*!
497 \page polycristaux Polycristaux
498 <ul>
499 <li>Création des fichiers paramètres</li>
500 <ul>
501 <li>Créer un répertoire vide par etude et se placer dedans.</li><br>
502 <li>Commande : microstructure.exe -polycristaux -creeparampoly -param cuivre.txt</li><br>
503 Géneration de 5 fichiers. Fixer les paramétres mécaniques dans le fichier cuivre.txt. Fixer les paramétres code_aster dans param_aster.txt
504 <br><br></ul>
505 <li>Lancement de la simulation</li>
506 <ul>
507 <li>En séquentiel</li>
508 <ul>
509 <li>Commande : ./vasy nb_echantillon</li>
510 </ul>
511 </ul>
512 <ul>
513 <li>En parralélle</li>
514 <ul>
515 <li>Commande : parra.exe ./vasy_par nb_cpu nb_echantillon cuivre.txt </li>
516 </ul>
517
518 </ul>
519 </ul>
520 <ul>
521 <li>Génération des graphiques résultats</li>
522 <ul>
523 <li>Commande : microstructure.exe -polycristaux -analysepoly -param cuivre.txt</li><Br>Les fichiers peuvent être visualisés avec le programme eog (eye of gnome). eog *.svg.
524 </ul>
525 </ul>
526
527 */
528
529
530 /*! \page fichier fichier
531 var = fichier nom
532 @brief Mise en mémoire d'un gestionnaire MAGiC
533 @param nom une chaine de caractére.
534 @return var une variable representant le gestionnaire MAGiC
535 @details Si nom = nouveau il y a création d'un nouveau modèle MAGiC\n
536 @details Sinon ouverture du fichier MAGiC donné par nom\n
537 */
538
539
540 /*! \page p_boite p_boite
541 var = p_boite modele x1 y1 z1 x2 y2 z2
542 @brief Création d'une forme primitive volumique de type boîte [MG_CG_FORME_VOLUME_BOITE] entre les points (x1,y1,z1) et (x2,y2,z2)
543 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
544 @param x1 un double.
545 @param y1 un double.
546 @param z1 un double.
547 @param x2 un double.
548 @param y2 un double.
549 @param z2 un double.
550 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
551 */
552
553
554 /*! \page p_sphere p_sphere
555 var = p_sphere modele x1 y1 z1 r
556 @brief Création d'une forme primitive volumique de type sphère [MG_CG_FORME_VOLUME_SPHERE] de centre (x1,y1,z1) et de rayon r
557 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
558 @param x1 un double.
559 @param y1 un double.
560 @param z1 un double.
561 @param r un double.
562 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
563 */
564
565
566 /*! \page p_cylindre p_cylindre
567 var = p_cylindre modele x1 y1 z1 axe_x axe_y axe_z r h
568 @brief Création d'une forme primitive volumique de type cylindre [MG_CG_FORME_VOLUME_CYLINDRE]
569 basée sur le cercle centré en (x1,y1,z1) orienté selon l'axe (axe_x,axe_y,axe_z) de hauteur h et de rayon r
570 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
571 @param x1 un double.
572 @param y1 un double.
573 @param z1 un double.
574 @param axe_x un double.
575 @param axe_y un double.
576 @param axe_z un double.
577 @param r un double.
578 @param h un double.
579 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
580 */
581
582
583 /*! \page p_ellipsoide p_ellipsoide
584 var = p_ellipsoide modele x1 y1 z1 axe_x axe_y axe_z R r
585 @brief Création d'une forme primitive volumique de type ellipsoide [MG_CG_FORME_VOLUME_ELLIPSOIDE]
586 centré en (x1,y1,z1) orienté selon l'axe (axe_x,axe_y,axe_z) de rayon majeur R et de rayon mineur r
587 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
588 @param x1 un double.
589 @param y1 un double.
590 @param z1 un double.
591 @param axe_x un double.
592 @param axe_y un double.
593 @param axe_z un double.
594 @param R un double.
595 @param r un double.
596 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
597 */
598
599
600
601 /*! \page p_tore p_tore
602 var = p_tore modele x1 y1 z1 axe_x axe_y axe_z R r angle1 angle2
603 @brief Création d'une forme primitive volumique de type tore [MG_CG_FORME_VOLUME_TORE] basée sur le cercle centré en (x1,y1,z1) orienté selon l'axe (axe_x,axe_y,axe_z) de grand rayon R et de petit rayon r
604 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
605 @param x1 un double.
606 @param y1 un double.
607 @param z1 un double.
608 @param axe_x un double.
609 @param axe_y un double.
610 @param axe_z un double.
611 @param R un double.
612 @param r un double.
613 @param angle1 un double qui représente la portion de 2PI du tore.
614 @param angle2 un double qui represente le début du tore par rapport à x.
615 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
616 */
617
618
619 /*! \page p_cone p_cone
620 var = p_cone modele x1 y1 z1 axe_x axe_y axe_z h r
621 @brief Création d'une forme primitive volumique de type cone [MG_CG_FORME_VOLUME_CONE] basée sur le cercle centré en (x1,y1,z1) orienté selon l'axe (axe_x,axe_y,axe_z) de hauteur h et de petit rayon r
622 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
623 @param x1 un double.
624 @param y1 un double.
625 @param z1 un double.
626 @param axe_x un double.
627 @param axe_y un double.
628 @param axe_z un double.
629 @param h un double.
630 @param r un double.
631 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
632 */
633
634 /*! \page ajoutass ajoutass
635 var = ajoutass assemblage forme
636 @brief Ajoute une forme [MG_CG_FORME] dans un assemblage [MG_CG_ASSEMBLAGE]
637 @param assemblage une variable représentant un assemblage [MG_CG_ASSEMBLAGE].
638 @param forme une variable représentant forme utile pour la construction géométrique [MG_CG_FORME]
639 @return var une variable inutilisable
640 */
641 /*! \page union union
642 var = union modele forme1 forme2 nom_semantique
643 @brief Création d'une opération booléene d'union [MG_CG_OP_BOOL_UNION] entre deux formes [MG_CG_FORME]
644 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
645 @param forme1 une forme [MG_CG_FORME].
646 @param forme2 une forme [MG_CG_FORME].
647 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
648 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
649 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
650 */
651
652 /*! \page diff diff
653 var = diff modele forme1 forme2 nom_semantique
654 @brief Création d'une opération booléene de soustraction [MG_CG_OP_BOOL_DIFFERENCE] entre deux formes [MG_CG_FORME]
655 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
656 @param forme1 une forme [MG_CG_FORME].
657 @param forme2 une forme [MG_CG_FORME].
658 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
659 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
660 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
661 */
662
663 /*! \page inter inter
664 var = inter modele forme1 forme2 nom_semantique
665 @brief Création d'une opération booléene d'intersection [MG_CG_OP_BOOL_INTERSECTION] entre deux formes [MG_CG_FORME]
666 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
667 @param forme1 une forme [MG_CG_FORME].
668 @param forme2 une forme [MG_CG_FORME].
669 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
670 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
671 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
672 */
673
674 /*! \page fragment fragment
675 var = fragment modele forme1 forme2 nom_semantique
676 @brief Création d'une opération booléene de fragmentation [MG_CG_OP_BOOL_FRAGMENT] entre deux formes [MG_CG_FORME]
677 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
678 @param forme1 une forme [MG_CG_FORME].
679 @param forme2 une forme [MG_CG_FORME].
680 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
681 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
682 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
683 */
684
685
686 /*! \page creemodele creemodele
687 var = creemodele gest nom unite eps fusion triSTL eps_tri
688 @brief Création d'un modele de construction géométrique [MG_CG_MODELE]
689 @param gest une variable représentant un modèle MAGiC [MG_GESTIONNAIRE]
690 @param nom une chaine de caractère.
691 @param unite un double représentant l'unité de mesure utilisé
692 @param eps un double représentant la précision utilisé
693 @param fusion une chaine de caractère. Si la valeur est "fusion" alors les entités similaires seront fusionnés à partir d'un algorithme de balayage.
694 @param triSTL est une chaine de caractère. Si la valeur est "true" alors le modèle sera disposé à importer la triangulation STL.
695 @param eps_tri un double représentant l'écart entre un entité topologique et son maillage STL.
696 @return var une variable representant un modele de construction géométrique [MG_CG_MODELE]
697 */
698
699
700 /*! \page creeassemblage creeassemblage
701 var = creeassemblage modele nom
702 @brief Création d'un assemblage [MG_CG_ASSEMBLAGE] dans un modele de construction géométrique [MG_CG_MODELE]
703 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
704 @param nom une chaine de caractère. Ce nom n'est pas utilisé par la suite
705 @return var une variable representant un assemblage [MG_CG_ASSEMBLAGE]
706 */
707
708 /*! \page enregistrer enregistrer
709 var = enregistrer gest nom
710 @brief Sauvegarde d'un fichier MAGiC
711 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
712 @param nom une string représentant un nom de fichier (L'extension s'ajoute automatiquement au nom du fichier).
713 @return var une variable inutilisable
714 */
715
716 /*! \page brepassemblage brepassemblage
717 var = brepassemblage assemblage nom
718 @brief Conversion d'un assemblage [MG_CG_ASSEMBLAGE] au format brep d'OpenCascade
719 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
720 @param nom une string représentant un nom de fichier brep
721 @return var une variable inutilisable
722 */
723
724
725 /*! \page export_mg_gmsh export_mg_gmsh
726 var = export_mg_gmsh gest nom num
727 @brief Exportation d'un MG_MAILLAGE MAGiC en format GMSH
728 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
729 @param nom une string représentant un nom de fichier gmsh (L'extension s'ajoute automatiquement au nom du fichier).
730 @param num un integer qui représente un numero sequantielle de maillage (entre 1 et n)
731 @return var une variable inutilisable
732 */
733
734 /*! \page export_fem_gmsh export_fem_gmsh
735 var = export_fem_gmsh gest nom num
736 @brief Exportation d'un FEM_MAILLAGE MAGiC en format GMSH
737 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
738 @param nom une string représentant un nom de fichier gmsh (L'extension s'ajoute automatiquement au nom du fichier).
739 @param num un integer qui représente un numero sequantielle de maillage (entre 1 et n)
740 @return var une variable inutilisable
741 */
742 /*! \page importstepocc importstepocc
743 var = importstepocc gest fichier_entree fichier_sortie eps fusion triSTL eps_tri
744 @brief importation d'un fichier STEP en MAGiC via opencascade V2017
745 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
746 @param fichier_entree une string représentant le nom de fichier STEP.
747 @param fichier_sortie une string représentant le nom du fichier MAGiC.
748 @param eps un double représentant la précision utilisé
749 @param fusion une chaine de caractère. Si la valeur est "fusion" alors les entités similaires seront fusionnés à partir d'un algorithme de balayage.
750 @param triSTL est une chaine de caractère. Si la valeur est "true" alors le modèle sera disposé à importer la triangulation STL.
751 @param eps_tri un double représentant l'écart entre un entité topologique et son maillage STL.
752 @return var une variable de type geometrie
753 */
754
755 /*! \page tristlmodele tristlmodele
756 var = tristlmodele modele type
757 @brief Création de la triangulation STL [MG_MAILLAGE] d'un modele de construction géométrique [MG_CG_MODELE]
758 @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
759 @param type une string représentant le type de triangulation. Si type = tristl la triangulation ne tiendra pas en compte de la conformité du maillage. Si type = triangulation la conformité du maillage sera assurée.
760 @return var une variable inutilisable
761 */
762
763 /*! \page tristlassemblage tristlassemblage
764 var = tristlassemblage assemblage type
765 @brief Création de la triangulation STL [MG_MAILLAGE] d'un assemblage [MG_CG_ASSEMBLAGE]
766 @param assemblage une variable représentant un assemblage [MG_CG_ASSEMBLAGE].
767 @param type une string représentant le type de triangulation. Si type = tristl la triangulation ne tiendra pas en compte de la conformité du maillage. Si type = triangulation la conformité du maillage sera assurée.
768 @return var une variable inutilisable
769
770 */
771 /*! \page histo Historique du projet MAGiC
772 La librairie MAGiC est l'implémentation pratique du MTU (Modèle de Topologie Unified) de la publication <a href="https://www.tandfonline.com/doi/abs/10.1080/16864360.2014.902677" target="_blank">Integration of CAD, FEA and topology optimization through a unified topological model</a>.
773 <br> Voici l'historique du projet depuis sa naissance en 1999 :
774 <ul>
775 <li>Version 1 : 1999. Début du projet non structuré sur multiplateforme UNIX. BREP interne STEP ou SAT</li>
776 <li>Version 2 : 2002. Transfert du projet sur Windows avec Visualisateur intégré. Visual MAGiC. Compilateur Borland c++ exclusif. BREP SolidWorks</li>
777 <li>Version 3 : 2007. Adapatation vers linux en conservant la version Windows. Abandon de la visualisation personnelle sur linux. BREP opencascade</li>
778 <li>Version 4 : 2012. Linux exclusif. Abandon finale de la visualisation personnelle. Passage en projet uniquement open-source. Projet multi utilisateur géré par SVN. Utilisation de GMSH comme visualisateur.</li>
779 <ul>
780 <li>Version 4.1 : 2012. Encapsulation du code Éléments Finis Code Aster</li> .
781 <br>&emsp;&emsp;Création d'un optimisateur de topologie intégré
782 <li>Version 4.2 : 2013. Multiplication des programmes et création de MAGIC_APPLICATION un lanceur d'application personnel et universel</li> .
783 <br>&emsp;&emsp;Création de visualisateurs simplistes intégrés en VTK pour visualiser des particularités (Conditions aux limites, comparaison de modèle.
784 <li>Version 4.3 : 2018. Utilisation du code Multi-Physique Project-Chrono</li>.
785 <br>&emsp;&emsp;Création d'un calculateur d'homogéinisation de particules fibres courtes orientées aléatoirement
786 </ul>
787 <li>Version 5 : 2025. Regroupement des différentes librairies de MAGiC en une libraire libmagic.so. Intégration d'une librairie ALGLIB pour faire entre autre de l'optimisation.</li>
788
789 </ul>
790
791 */