ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/aide/aide.h
Revision: 1160
Committed: Wed Jul 3 20:40:15 2024 UTC (13 months, 3 weeks ago) by francois
Content type: text/plain
File size: 38616 byte(s)
Log Message:
ajout d'un mailleur grossier de particlue fine. Cas du cylindre.

File Contents

# User Rev Content
1 francois 1157 //####//------------------------------------------------------------
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 francois 1160 //####// Derniere modification par francois
20     //####// mer 03 jui 2024 16:37:18 EDT
21 francois 1157 //####//------------------------------------------------------------
22     //####//------------------------------------------------------------
23 francois 737 /*! \page Aide Aide MAGiC
24 francois 868 Informations diverses
25    
26     - \subpage infodiv
27    
28 francois 737 Configuration de MAGiC
29    
30     - \subpage Configuration
31    
32    
33     Description du format du fichier script MAGiC\n
34     - \subpage Script
35 francois 864
36 francois 902 Description de la procédure de reconstruction d'un modèle structurel après optimisation topologique\n
37 francois 864 - \subpage Reconstruction
38 francois 902
39 francois 1038 Faire une étude SiDolo
40    
41     - \subpage SiDolo
42    
43 francois 1068 Microstucture de matériaux hétérogénes
44 francois 1038
45 francois 1068 - \subpage microstructre
46    
47 francois 1091 \image html testmagic150.png
48 francois 737 */
49 francois 1086
50     /*! \mainpage
51 francois 1091 *
52 francois 1086 * <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 francois 1091 * <table border="0">
54     * <tr>
55     * <td>
56     * \image html viewvc-logo.png <br>
57 francois 1145 * <a HREF=http://ericca.uqtr.ca/cgi-bin/viewvc.cgi/REPOS_ERICCA/>Vue de la derniere version</a><br>
58 francois 1091 * \image html testmagic150.png <br>
59     * <a HREF=http://ericca.uqtr.ca/webmagic/index_text.html>État de la derniere version</a>
60     *
61     *
62     * </td>
63     * <td>
64 francois 1086 * \image html logoericca.jpg width=800px
65 francois 1091 * </td>
66     * </tr>
67     * </table>
68 francois 1086 * */
69 francois 737
70 francois 868
71     /*! \page infodiv Informations diverses sur le projet MAGiC
72     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
73     Cette page résume les différents liens pour les outils disponibles : \n\n
74     <ul>
75 francois 1040 <li><a href="http://ericca.uqtr.ca/cgi-bin/viewvc.cgi"> Web SVN </a></li>
76 francois 868 <li><a href="http://ericca.uqtr.ca/biblio"> Biblio ERICCA </a></li>
77     <li><a href="http://ericca.uqtr.ca/cas_test"> Cas test d'optimisation de topologie </a></li>
78 francois 869 <li><a href="http://ericca.uqtr.ca/webmagic/index_text.html"> Tests journaliers du code </a></li>
79    
80 francois 868 <li>Documentation de Code ASTER</li>
81     <ul>
82     <li><a href="http://ericca.uqtr.ca/fr11.7"> 11.7 </a></li>
83     <li><a href="http://ericca.uqtr.ca/fr12.4"> 12.4 </a></li>
84 francois 963 <li><a href="http://ericca.uqtr.ca/fr13.6"> 13.6 </a></li>
85 francois 1047 <li><a href="http://ericca.uqtr.ca/fr14.4"> 14.4 </a></li>
86 francois 1074 <li><a href="http://ericca.uqtr.ca/fr14.6"> 14.6 </a></li>
87 francois 1146 <li><a href="https://code-aster.org/doc/v15/fr/index.php"> 15.6 </a></li>
88 francois 868 </ul>
89 sattarpa 901 <li>Modification dans Code ASTER</li>
90 francois 868 <ul>
91 sattarpa 901 <li>\subpage ExtraireK </a></li>
92     <li>\subpage CalcParal </a></li>
93     </ul>
94    
95     <li>Script d'installation de l'environnement ERICCA : Downloader les deux fichiers suivants et faire ./instal_magic.bash Version_Aster [tout]. L'option installe les outils de développements. Il faut s'assurer que les scripts soient exécutables.</li>
96     <ul>
97 francois 868 <li><a href="http://ericca.uqtr.ca/linux/instal_magic.bash"> Script d'installation de MAGiC </a></li>
98 francois 1146 <li><a href="http://ericca.uqtr.ca/linux/instal_aster.bash"> Script d'installation de code ASTER (version&lt;15)</a></li>
99     <li><a href="http://ericca.uqtr.ca/linux/instal_asterv15plus.bash"> Script d'installation de code ASTER (version&ge;15)</a></li>
100 francois 955 <li><a href="http://ericca.uqtr.ca/linux/instal_chrono.bash"> Script d'installation de Project Chrono</a></li>
101 francois 868
102     </ul>
103     </ul>
104 sattarpa 901 */
105 francois 868
106    
107 sattarpa 901 /*! \page ExtraireK Extraire matrice de raideur
108     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
109     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
110     On édite "op0012.F90" on ajoutant "call matimp(matas,29,'MATLAB')" à la lieu montrée. \n
111 francois 868
112 sattarpa 901 \verbatim
113     ! -- SI MATAS N'EST PAS MPI_COMPLET, ON LA COMPLETE :
114     call dismoi('MPI_COMPLET', matas, 'MATR_ASSE', repk=kmpic)
115     ASSERT((kmpic.eq.'OUI').or.(kmpic.eq.'NON'))
116     if (kmpic .eq. 'NON') call sdmpic('MATR_ASSE', matas)
117     !
118     !
119     !
120     call matimp(matas,29,'MATLAB') << On appel matimp ICI <<
121     !
122     ! -- MENAGE :
123     call jedetr(lchci)
124     call jedetr(lmatel)
125     !
126     call jedema()
127     end subroutine
128     \endverbatim \n
129     Et puis, on compile Code ASTER: sudo python setup.py install\n
130     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
131     \verbatim
132     F comm /home/..../filename.comm D 1
133     F mail /home/..../filename.mail D 20
134     F mess /home/..../filename.mess R 6
135     F m /home/..../filename.m R 29 << On ajoute cette ligne ICI <<
136     \endverbatim \n
137     */
138 francois 868
139    
140 sattarpa 901 /*! \page CalcParal Calcul parallèle dans Code ASTER
141     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
142     <B>Version</B>\n
143     OS:Ubuntu 14.04 \n
144     Code_Aster : ver.12.4\n
145     -----------------------------------------------------------\n\n
146     <B>Telecharger des fichiers</B>\n
147     Les fichier sont enregistrés dans: ~/Install_Files\n
148     Ils sont installé dans : /opt and /opt/aster\n\n
149     Télécharger les fichier suivant:\n
150     aster-full-src-12.4.0-1.noarch.tar.gz (Code_Aster)\n
151     OpenBLAS-0.2.15.tar.gz (OpenBLAS)\n
152     scalapack_installer.tgz (ScaLAPACK)\n
153     petsc-3.4.5.tar.gz (PETSc)\n\n
154     Modifier le propriétaire d'installation par: $ sudo chown username /opt/\n
155     Installez les bibliothèques pour Code_Aster par: \n
156     $ 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
157     -----------------------------------------------------------\n\n
158     <B>Compiler OpenBLAS (Math LIbrary pour Code_Aster)</B>\n
159     $ cd ~/Install_Files/\n
160     $ tar xfvz OpenBLAS-0.2.15..tar.gz\n
161     $ cd OpenBLAS-0.2.15\n
162     $ make NO_AFFINITY=1 USE_OPENMP=1\n
163     $ make PREFIX=/opt/OpenBLAS install\n
164     $ echo /opt/OpenBLAS/lib | sudo tee -a /etc/ld.so.conf.d/openblas.conf\n
165     $ sudo ldconfig\n
166     -----------------------------------------------------------\n\n
167     <B>Compiler Code_Aster (séquentiel) avec OpenBLAS.</B>\n
168     $ cd ~/Install_Files\n
169     $ tar xfvz aster-full-src-12.4.0-1.noarch.tar.gz\n
170     $ cd aster-full-src-12.4.0/\n
171     $ sed -i "s:PREFER_COMPILER\ =\ 'GNU':PREFER_COMPILER\ =\'GNU_without_MATH'\nMATHLIB=\ '/opt/OpenBLAS/lib/libopenblas.a':g" setup.cfg\n
172     $ python setup.py install\n
173     <EM>Faire host-file pour calcul parallèle par:</EM>\n
174     $ echo "$HOSTNAME cpu=$(cat /proc/cpuinfo | grep processor | wc -l)" > /opt/aster/etc/codeaster/mpi_hostfile\n
175     -----------------------------------------------------------\n\n
176     <B>Compiler ScaLAPACK</B>\n
177     $ cd ~/Install_Files\n
178     $ tar xfvz scalapack_installer.tgz\n
179     $ cd scalapack_installer_1.0.2\n
180     $ ./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
181     <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
182     -----------------------------------------------------------\n\n
183     <B>Compiler MUMPS</B>\n
184     Copier mumps-4.10.0 dans fichiers source de Code_Aster dans '/opt.\n
185     Compiler par mpi-compiler\n
186     $ cp ~/Install_Files/aster-full-src-12.4.0/SRC/mumps-4.10.0-aster3.tar.gz /opt/\n
187     $ cd /opt\n
188     $ tar xfvz mumps-4.10.0-aster3.tar.gz\n
189     $ mv mumps-4.10.0 mumps-4.10.0_mpi\n
190     $ cd mumps-4.10.0_mpi/\n
191     Changer 'Makefile.inc.in' pour MUMPS4.10.0 Makefile.inc\n
192     $ make all \n
193     -----------------------------------------------------------\n\n
194     <B>Compiler PETSc avec HYPRE et ML</B>\n
195     $ cp ~/Install_Files/petsc-3.4.5.tar.gz /opt\n
196     $ cd /opt\n
197     $ tar xfvz petsc-3.4.5.tar.gz\n
198     $ cd petsc-3.4.5\n
199     $ ./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
200     $ make PETSC_DIR=/opt/petsc-3.4.5 PETSC_ARCH=arch-linux2-c-opt all\n
201     $ make PETSC_DIR=/opt/petsc-3.4.5 PETSC_ARCH=arch-linux2-c-opt test\n
202     -----------------------------------------------------------\n\n
203     <B>Compiler Code_Aster (parallèle)</B>\n
204     <EM>Changer un partie de 'mpi_get_procid_cmd' de '/opt/aster/etc/codeaster/asrun' par:\n
205     mpi_get_procid_cmd : echo $OMPI_COMM_WORLD_RANK\n
206     <EM>Changer 32 a 64 pour les processeur 64 bit: </B>\n
207     batch_mpi_nbpmax : 32 (ou 64)\n
208     interactif_mpi_nbpmax : 32 (ou 64)\n
209     <EM>Décompresser Code_Aster</B>\n
210     $ cd ~/Install_Files\n
211     $ cd aster-full-src-12.4.0/SRC\n
212     $ tar xfvz aster-12.4.0.tgz\n
213     $ cd aster-12.4.0\n
214     <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
215     $ export ASTER_ROOT=/opt/aster\n
216     $ ./waf configure --use-config-dir=$ASTER_ROOT/12.4/share/aster --use-config=Ubuntu_gnu_mpi --prefix=$ASTER_ROOT/PAR12.4\n
217     $ ./waf install -p\n
218     <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
219    
220 francois 868 */
221    
222 francois 737
223    
224     /*! \page Script Description du contenu du fichier script
225     Un fichier script est composé de commandes exécutées en séquences depuis le début du fichier jusqu'à la fin.\n
226     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
227     Si le premier caractère de la ligne est le caractère # alors la ligne est ignorée.\n\n
228     Les commandes disponibles dans le script MAGiC:
229 couturad 740 - \subpage ajoutass
230 couturad 906 - \subpage brepassemblage
231     - \subpage creemodele
232 couturad 740 - \subpage creeassemblage
233 francois 737 - \subpage diff
234     - \subpage enregistrer
235     - \subpage export_mg_gmsh
236     - \subpage export_fem_gmsh
237     - \subpage fichier
238     - \subpage importstepocc
239     - \subpage inter
240     - \subpage p_cylindre
241     - \subpage p_cone
242     - \subpage p_boite
243     - \subpage p_sphere
244 couturad 906 - \subpage p_ellipsoide
245 francois 737 - \subpage p_tore
246     - \subpage union
247 couturad 906 - \subpage fragment
248     - \subpage tristlmodele
249     - \subpage tristlassemblage
250 francois 737 */
251    
252    
253     /*! \page Configuration Configuration de MAGiC
254     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
255 francois 1147 Version_gmsh = 2.0000 //Version de gmsh utilisée\n
256     Affiche_Code_Aster = 0.000000 //0. Affichage redirigé vers le fichier aster.log 1 affichage dans un terminal\n
257     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
258     Convergence_mailleur3d_frontal = 200.000000 //Nombre de front restant à partir duquel la destruction est obligatoire\n
259     Echantillon_face = 20.000000 //Nombre d'échantillon pour le calcul de la boite englobante des faces\n
260     Epsilon_face = 1.000000 //Distance entre la triangulation et la face pour les algos qui echantillonnent les faces (en mm)\n
261     Angle_dev_face = 0.500000 //Angle entre deux elements de la triangulation pour les algos qui echantillonnent les faces\n
262     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
263     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
264     Quadratisation_jmin = 1.000000 //Garantir des tetras quadratiques avec jaconien minimum positif : 1=oui 2=non\n
265     Quadratisation_pas = 100.000000 //Nombre de pas pour recaler les noeuds et obtenir un jmin positif\n
266     Quadratisation_dis = 0.100000 //Valeur de la distortion du jacobien minimale à atteindre\n
267     Quadratisation_nbpassemax = 4.000000 //Nombre de passe maximale pour obtenir un jmin positif\n
268     Nb_iteration_max_mailleur2d = 1000000.000000 //Nombre d'iteration maximale pour le mailleur 2D\n
269     Nb_front_max_mailleur3d = 10000000.000000 //Nombre de front maximale pour le mailleur 3D\n
270     Separateur_decimale = , //Seprateur décimale pour l'exportation des fichiers excel\n
271 francois 737 */
272    
273 francois 864
274    
275 francois 1102 /*! \page Reconstruction Description de la procédure de reconstruction d'un modèle structurel après optimisation topologique
276 francois 864
277     Description de la reconstruction
278    
279     - \subpage Description_reconstruction
280    
281 francois 1102 Commandes de la reconstruction version thèse A.Nana
282 francois 864
283     - \subpage Commande_reconstruction
284    
285 francois 1102 Commandes de la reconstruction version thèse A. Amroune
286    
287     - \subpage Commande_reconstruction2
288    
289 francois 864 */
290    
291     /*! \page Description_reconstruction Description de la reconstruction
292     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.
293     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
294     <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
295     <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
296     <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).
297     */
298 francois 1102 /*! \page Commande_reconstruction Commandes de la reconstruction A Nana (non fonctionnel aujourd'hui)
299 francois 864
300     <span style="text-decoration: underline;"><B>Etape 1 :</B> </span> Optimisation topologique\n <i>topo_optis.exe
301     -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
302     Si on a déjà un résultat optimal on peut directement passer à l'étape 2.
303     <BR><BR>
304    
305     <span style="text-decoration: underline;"><B>Etape 2 :</B> </span> Lissage du résultat optimal (sans la partie de non_design) \n
306     <i>post_optis.exe -creepeau -in nom_fichier_resu.magic -out nom_fichier_lisse.magic -param paramliss.txt</i>\n\n
307     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.
308     <BR><BR>
309    
310    
311     <span style="text-decoration: underline;"><B>Etape 3</B> </span> : Transformation en .off \n
312     <i>mgoperation.exe -offout -in nom_fichier_lisse_peau.magic</i>\n\n
313     (Utiliser le fichier de la peau qui ne contient pas le non_design)
314     <BR><BR>
315    
316    
317     <span style="text-decoration: underline;"><B>Etape 4 </B> </span> : Squelettisation sous MatLab\n
318    
319     Partie 1 : génération du squelette\n
320     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
321     Ouvrir eg_skeleton_laplacian_rosa.m\n
322     Mettre le nom (sans son extension) du fichier .off obtenu à l’Étape 3 dans eg_skeleton_laplacian_rosa.m à la ligne 16.\n
323     executer eg_skeleton_laplacian_rosa.m\n
324     Des figures (en particulier la figure 4) sont générées.\n\n
325    
326     Partie 2 : extraction des données\n
327     Ouvrir maintenant Entxt.m qui est également dans le dossier « matlab »\n
328     Donner les noms de fichier désirés dans Entxt.m aux lignes 4, 5 et 33, 34.\n
329     executer Entxt.m \n
330     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
331     <BR><BR>
332    
333    
334     <span style="text-decoration: underline;"><B>Etape 5 :</B> </span> Exportation du squelette dans MAGiC\n
335     <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
336    
337    
338     Pour obtenir une liste des paramètres pour d’éventuelles modifications, faire simplement :\n
339     <i>skeleton.exe -construire_squelette </i>\n
340    
341     –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
342    
343     –connecte 0 : permet d’introduire des mini-poutres uniquement au nœud de jonction entre le squelette et le non_design\n\n
344    
345     Le résultat à utiliser pour la suite est le nom_fichier_squelette3.magic
346     <BR><BR>
347    
348     <span style="text-decoration: underline;"><B>Etape 6 :</B> </span> Lancer le calcul EF \n
349     <i>mgoperation.exe -calculaster -in nom_fichier_squelette3.magic -out nom_fichier_sortie -param aster.txt -elastique</i>\n
350     */
351 francois 1102 /*! \page Commande_reconstruction2 Commandes de la reconstruction A Amroune
352    
353     <span style="text-decoration: underline;"><B>Etape 1 :</B> </span> Optimisation topologique\n <i>topo_optis.exe
354     -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
355     Si on a déjà un résultat optimal on peut directement passer à l'étape 2.
356     <BR><BR>
357    
358     <span style="text-decoration: underline;"><B>Etape 2 :</B> </span> Lissage du résultat optimal (sans la partie de non_design) \n
359     <i>post_optis.exe -creepeau -in nom_fichier_resu.magic -out nom_fichier_lisse.magic -param paramliss.txt</i>\n\n
360     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.
361     <BR><BR>
362    
363    
364     <span style="text-decoration: underline;"><B>Etape 3</B> </span> : Transformation en .off \n
365     <i>mgoperation.exe -offout -in nom_fichier_lisse_peau.magic</i>\n\n
366     (Utiliser le fichier de la peau qui ne contient pas le non_design)
367     <BR><BR>
368    
369    
370     <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
371    
372     Ouvrir le fichier .off dans starlab et appliquer successiverment les filtres suivant :
373     <ol>
374     <li>Voronoi based MAT</li>
375     <li>MCF Skeletonization</li>
376     <li>SurfaceMesh to Skeleton</li>
377     </ol>
378    
379     Enregistrer le squelette en fichier .cg
380     <BR><BR>
381     <span style="text-decoration: underline;"><B>Etape 5 :</B> </span> Reconstruction du modèle BREP\n
382     <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>
383     <ul>
384     <li>squelette chaine: Nom du fichier du squelette .cg</li>
385     <li>nd chaine: Fichier magic 3D du non-design</li>
386     <li>peau chaine: Fichier magic de la peau avec design et non-design</li>
387     <li>coefjonc double: Coefficient de distance deffinissant les limites des jonctions</li>
388     <li>nbsections integer: Nombre de sections transversales par branche</li>
389     <li>nbptsinterp1 integer: Nombre de points d'interpolation pour chaque section de branche</li>
390     <li>nbptsinterp2 integer: Nombre de points d'interpolation pour chaque segment de section de jonction</li>
391     <li>angle double: Intervalle angulaire de projection pour les sections intermediaires des jonctions (en degre)</li>
392     </ul>
393    
394     */
395 francois 1038 /*! \page SiDolo Utilisation de SiDolo couplé à MAGiC
396     <ul>
397     <li>Avant étude</li>
398     <ul>
399     <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>
400     </ul>
401     <li>Étape 1</li>
402     <ul>
403     <li>Créer un répertoire pour une étude d'optimisation. Conseil pratique un répetertoire = une étude</li>
404     <li>Entrer dans ce répertoire</li>
405     </ul>
406     <li>Étape 2</li>
407     <ul>
408     <li>Créer un modèle MAGiC.</li>
409     <li>Créer un script qui fait un calcul d'une itération d'optimisation.</li>
410     </ul>
411     <li>Étape 3</li>
412     <ul>
413     <li>Créer l'ensemble des fichiers nécessaire à une étude Sidolo. <a href="http://ericca.uqtr.ca/SiDolo"> Exemple de fichiers </a>.</li>
414     <ul>
415     <li>fichier .dat. Définition des parametre de l'étude </li>
416     <li>fichier sidvar.h. Définition des variables </li>
417     <li>fichier interface.f. Programmation des mises à jour de données entre chaque itération</li>
418     <li>fichier .exp. Fichier de la courbe expérimentale à approcher </li>
419     </ul>
420     <li>Configurer les fichiers en se référant à la documentation SiDolo présente dans le répertoire doc de SiDolo.</li>
421     </ul>
422     <li>Étape 4</li>
423     <ul>
424     <li><span style="color:magenta">source ../ou est SiDolo/bin/sidolo_user </span>. </li>
425     <li><span style="color:magenta">sde nomoptim</span> pour creer l'excutable de l'optimisation. </li>
426     <li><span style="color:magenta">sdi interface</span> pour creer l'executable de l'interface. </li>
427 francois 1050 <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>
428 francois 1038 </ul>
429 francois 1042 <li>Étape 5</li>
430 francois 1038 <ul>
431     <li>Lancer l'executable de l'optimisateur</li>
432     </ul>
433     </ul>
434 francois 864
435 francois 1038 */
436 francois 1068 /*!
437     \page microstructre Microstucture de matériaux hétérogénes
438 francois 1038
439 francois 1068 Matériaux hétérogénes à fibres courtes
440 francois 1038
441 francois 1068 - \subpage fibrescourtes
442    
443     Polycristaux
444     - \subpage polycristaux
445    
446     */
447     /*!
448     \page fibrescourtes Matériaux hétérogénes à fibres courtes
449 francois 1078 <ul>
450     <li>Création des fichiers paramètres</li>
451     <ul>
452     <li>Créer un répertoire vide par etude et se placer dedans.</li><br>
453     <li>Commande : microstructure.exe -creeparam </li><br>
454     Affiche les différents paramètres généraux:
455     Type de generateur : [0] RSA, [1] DCR
456     Type d'inclusion : [0] Sphere, [1] Cylindre
457     Type de maillage : [0] lineaire, [1] quadratique, [2] lineaire et quadratique
458     Type d'etude : [0] mecanique, [1] thermique, [2] mecanique et thermique
459     Nombre de couche d'erosion (defaut = 0)
460     Epaisseur d'une couche d'erosion (defaut = 0.02)
461 francois 1079 <li>Commande : microstructure.exe -creeparam -type_generateur 0 -type_inclusion 0 -type_maillage 0 -type_etude 0 -nb_couche_erosion 10</li><br>
462 francois 1078 Génère l'arborescence de fichier de paramètres nécessaire pour étudier une microstructure
463     <br><br></ul>
464     <li>Lancement de la simulation</li>
465     <ul>
466     <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>
467     <ul>
468     <li>En séquentiel</li>
469     <ul>
470     <li>Commande : ./generer_nb_ves index_départ index_fin "dossier app"</li>
471     </ul>
472     </ul>
473     <ul>
474     <li>En parralélle</li>
475     <ul>
476     <li> </li>
477     </ul>
478     </ul>
479     </ul>
480     <li>Génération des résultats</li>
481     <ul>
482     <li>Commande : ./post_traitement "dossier app"</li>
483 francois 1079 <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>
484     <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>
485 francois 1078 </ul>
486 francois 1068 */
487     /*!
488     \page polycristaux Polycristaux
489     <ul>
490     <li>Création des fichiers paramètres</li>
491     <ul>
492 francois 1070 <li>Créer un répertoire vide par etude et se placer dedans.</li><br>
493 francois 1068 <li>Commande : microstructure.exe -polycristaux -creeparampoly -param cuivre.txt</li><br>
494 francois 1070 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
495 francois 1068 <br><br></ul>
496     <li>Lancement de la simulation</li>
497     <ul>
498     <li>En séquentiel</li>
499     <ul>
500     <li>Commande : ./vasy nb_echantillon</li>
501     </ul>
502     </ul>
503     <ul>
504     <li>En parralélle</li>
505     <ul>
506     <li>Commande : parra.exe ./vasy_par nb_cpu nb_echantillon cuivre.txt </li>
507     </ul>
508    
509     </ul>
510     </ul>
511     <ul>
512     <li>Génération des graphiques résultats</li>
513     <ul>
514     <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.
515     </ul>
516     </ul>
517    
518     */
519    
520    
521 francois 737 /*! \page fichier fichier
522     var = fichier nom
523     @brief Mise en mémoire d'un gestionnaire MAGiC
524 couturad 906 @param nom une chaine de caractére.
525 francois 737 @return var une variable representant le gestionnaire MAGiC
526     @details Si nom = nouveau il y a création d'un nouveau modèle MAGiC\n
527     @details Sinon ouverture du fichier MAGiC donné par nom\n
528     */
529    
530    
531     /*! \page p_boite p_boite
532 couturad 906 var = p_boite modele x1 y1 z1 x2 y2 z2
533     @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)
534     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
535 francois 737 @param x1 un double.
536     @param y1 un double.
537     @param z1 un double.
538     @param x2 un double.
539     @param y2 un double.
540     @param z2 un double.
541 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
542 francois 737 */
543    
544    
545     /*! \page p_sphere p_sphere
546 couturad 906 var = p_sphere modele x1 y1 z1 r
547     @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
548     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
549 francois 737 @param x1 un double.
550     @param y1 un double.
551     @param z1 un double.
552     @param r un double.
553 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
554 francois 737 */
555    
556    
557     /*! \page p_cylindre p_cylindre
558 francois 1160 var = p_cylindre modele x1 y1 z1 axe_x axe_y axe_z r h
559 couturad 906 @brief Création d'une forme primitive volumique de type cylindre [MG_CG_FORME_VOLUME_CYLINDRE]
560     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
561     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
562 francois 737 @param x1 un double.
563     @param y1 un double.
564     @param z1 un double.
565 couturad 906 @param axe_x un double.
566     @param axe_y un double.
567     @param axe_z un double.
568 francois 1160 @param r un double.
569 francois 737 @param h un double.
570 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
571     */
572 francois 737
573 francois 902
574 couturad 906 /*! \page p_ellipsoide p_ellipsoide
575     var = p_ellipsoide modele x1 y1 z1 axe_x axe_y axe_z R r
576     @brief Création d'une forme primitive volumique de type ellipsoide [MG_CG_FORME_VOLUME_ELLIPSOIDE]
577     centré en (x1,y1,z1) orienté selon l'axe (axe_x,axe_y,axe_z) de rayon majeur R et de rayon mineur r
578     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
579     @param x1 un double.
580     @param y1 un double.
581     @param z1 un double.
582     @param axe_x un double.
583     @param axe_y un double.
584     @param axe_z un double.
585     @param R un double.
586     @param r un double.
587     @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
588     */
589    
590    
591 francois 737
592     /*! \page p_tore p_tore
593 ghazal 1092 var = p_tore modele x1 y1 z1 axe_x axe_y axe_z R r angle1 angle2
594 couturad 906 @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
595     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
596 francois 737 @param x1 un double.
597     @param y1 un double.
598     @param z1 un double.
599 couturad 906 @param axe_x un double.
600     @param axe_y un double.
601     @param axe_z un double.
602     @param R un double.
603 francois 737 @param r un double.
604 ghazal 1092 @param angle1 un double qui représente la portion de 2PI du tore.
605     @param angle2 un double qui represente le début du tore par rapport à x.
606 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
607 francois 737 */
608    
609    
610     /*! \page p_cone p_cone
611 couturad 906 var = p_cone modele x1 y1 z1 axe_x axe_y axe_z h r
612     @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
613     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
614 francois 737 @param x1 un double.
615     @param y1 un double.
616     @param z1 un double.
617 couturad 906 @param axe_x un double.
618     @param axe_y un double.
619     @param axe_z un double.
620 francois 737 @param h un double.
621     @param r un double.
622 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
623 francois 737 */
624    
625 couturad 740 /*! \page ajoutass ajoutass
626 couturad 906 var = ajoutass assemblage forme
627     @brief Ajoute une forme [MG_CG_FORME] dans un assemblage [MG_CG_ASSEMBLAGE]
628     @param assemblage une variable représentant un assemblage [MG_CG_ASSEMBLAGE].
629     @param forme une variable représentant forme utile pour la construction géométrique [MG_CG_FORME]
630 couturad 740 @return var une variable inutilisable
631     */
632 francois 737 /*! \page union union
633 couturad 906 var = union modele forme1 forme2 nom_semantique
634     @brief Création d'une opération booléene d'union [MG_CG_OP_BOOL_UNION] entre deux formes [MG_CG_FORME]
635     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
636     @param forme1 une forme [MG_CG_FORME].
637     @param forme2 une forme [MG_CG_FORME].
638 francois 737 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
639 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
640 francois 737 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
641     */
642 couturad 906
643 francois 737 /*! \page diff diff
644 couturad 906 var = diff modele forme1 forme2 nom_semantique
645     @brief Création d'une opération booléene de soustraction [MG_CG_OP_BOOL_DIFFERENCE] entre deux formes [MG_CG_FORME]
646     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
647     @param forme1 une forme [MG_CG_FORME].
648     @param forme2 une forme [MG_CG_FORME].
649 francois 737 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
650 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
651 francois 737 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
652     */
653 couturad 906
654 francois 737 /*! \page inter inter
655 couturad 906 var = inter modele forme1 forme2 nom_semantique
656     @brief Création d'une opération booléene d'intersection [MG_CG_OP_BOOL_INTERSECTION] entre deux formes [MG_CG_FORME]
657     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
658     @param forme1 une forme [MG_CG_FORME].
659     @param forme2 une forme [MG_CG_FORME].
660 francois 737 @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
661 couturad 906 @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
662 francois 737 @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
663     */
664 couturad 906
665     /*! \page fragment fragment
666     var = fragment modele forme1 forme2 nom_semantique
667     @brief Création d'une opération booléene de fragmentation [MG_CG_OP_BOOL_FRAGMENT] entre deux formes [MG_CG_FORME]
668     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
669     @param forme1 une forme [MG_CG_FORME].
670     @param forme2 une forme [MG_CG_FORME].
671     @param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion
672     @return var une variable representant une forme utile pour la construction géométrique [MG_CG_FORME]
673     @details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué
674 francois 737 */
675    
676 couturad 740
677 couturad 906 /*! \page creemodele creemodele
678     var = creemodele gest nom unite eps fusion triSTL eps_tri
679     @brief Création d'un modele de construction géométrique [MG_CG_MODELE]
680     @param gest une variable représentant un modèle MAGiC [MG_GESTIONNAIRE]
681     @param nom une chaine de caractère.
682     @param unite un double représentant l'unité de mesure utilisé
683     @param eps un double représentant la précision utilisé
684     @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.
685     @param triSTL est une chaine de caractère. Si la valeur est "true" alors le modèle sera disposé à importer la triangulation STL.
686     @param eps_tri un double représentant l'écart entre un entité topologique et son maillage STL.
687     @return var une variable representant un modele de construction géométrique [MG_CG_MODELE]
688 couturad 740 */
689    
690 francois 737
691 couturad 906 /*! \page creeassemblage creeassemblage
692     var = creeassemblage modele nom
693     @brief Création d'un assemblage [MG_CG_ASSEMBLAGE] dans un modele de construction géométrique [MG_CG_MODELE]
694     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
695     @param nom une chaine de caractère. Ce nom n'est pas utilisé par la suite
696     @return var une variable representant un assemblage [MG_CG_ASSEMBLAGE]
697 couturad 740 */
698    
699 francois 737 /*! \page enregistrer enregistrer
700     var = enregistrer gest nom
701     @brief Sauvegarde d'un fichier MAGiC
702 couturad 906 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
703 francois 737 @param nom une string représentant un nom de fichier (L'extension s'ajoute automatiquement au nom du fichier).
704     @return var une variable inutilisable
705     */
706    
707 couturad 906 /*! \page brepassemblage brepassemblage
708     var = brepassemblage assemblage nom
709     @brief Conversion d'un assemblage [MG_CG_ASSEMBLAGE] au format brep d'OpenCascade
710     @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
711     @param nom une string représentant un nom de fichier brep
712     @return var une variable inutilisable
713     */
714    
715    
716 francois 737 /*! \page export_mg_gmsh export_mg_gmsh
717     var = export_mg_gmsh gest nom num
718     @brief Exportation d'un MG_MAILLAGE MAGiC en format GMSH
719 couturad 906 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
720 francois 737 @param nom une string représentant un nom de fichier gmsh (L'extension s'ajoute automatiquement au nom du fichier).
721     @param num un integer qui représente un numero sequantielle de maillage (entre 1 et n)
722     @return var une variable inutilisable
723     */
724    
725     /*! \page export_fem_gmsh export_fem_gmsh
726     var = export_fem_gmsh gest nom num
727     @brief Exportation d'un FEM_MAILLAGE MAGiC en format GMSH
728 couturad 906 @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
729 francois 737 @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     /*! \page importstepocc importstepocc
734 couturad 906 var = importstepocc gest fichier_entree fichier_sortie eps fusion triSTL eps_tri
735     @brief importation d'un fichier STEP en MAGiC via opencascade V2017
736     @param gest une variable représentant un gestionnaire MAGiC [MG_GESTIONNAIRE]
737     @param fichier_entree une string représentant le nom de fichier STEP.
738     @param fichier_sortie une string représentant le nom du fichier MAGiC.
739     @param eps un double représentant la précision utilisé
740     @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.
741     @param triSTL est une chaine de caractère. Si la valeur est "true" alors le modèle sera disposé à importer la triangulation STL.
742     @param eps_tri un double représentant l'écart entre un entité topologique et son maillage STL.
743 francois 737 @return var une variable de type geometrie
744     */
745 couturad 906
746     /*! \page tristlmodele tristlmodele
747     var = tristlmodele modele type
748     @brief Création de la triangulation STL [MG_MAILLAGE] d'un modele de construction géométrique [MG_CG_MODELE]
749     @param modele une variable représentant un modele de conscrution géométrique [MG_CG_MODELE].
750     @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.
751     @return var une variable inutilisable
752     */
753    
754     /*! \page tristlassemblage tristlassemblage
755     var = tristlassemblage assemblage type
756     @brief Création de la triangulation STL [MG_MAILLAGE] d'un assemblage [MG_CG_ASSEMBLAGE]
757     @param assemblage une variable représentant un assemblage [MG_CG_ASSEMBLAGE].
758     @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.
759     @return var une variable inutilisable
760     */