1 |
francois |
737 |
/*! \page Aide Aide MAGiC |
2 |
francois |
868 |
Informations diverses |
3 |
|
|
|
4 |
|
|
- \subpage infodiv |
5 |
|
|
|
6 |
francois |
737 |
Configuration de MAGiC |
7 |
|
|
|
8 |
|
|
- \subpage Configuration |
9 |
|
|
|
10 |
|
|
|
11 |
|
|
Description du format du fichier script MAGiC\n |
12 |
|
|
- \subpage Script |
13 |
francois |
864 |
|
14 |
|
|
Description de la procédure de reconstruction d'un nmodèle structurel après optimisation topologique\n |
15 |
|
|
- \subpage Reconstruction |
16 |
francois |
737 |
*/ |
17 |
francois |
868 |
//----------------------------------------------------------- |
18 |
francois |
737 |
|
19 |
francois |
868 |
|
20 |
|
|
/*! \page infodiv Informations diverses sur le projet MAGiC |
21 |
|
|
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 |
22 |
|
|
Cette page résume les différents liens pour les outils disponibles : \n\n |
23 |
|
|
<ul> |
24 |
|
|
<li><a href="http://ericca.uqtr.ca/websvn"> WebSVN </a></li> |
25 |
|
|
<li><a href="http://ericca.uqtr.ca/biblio"> Biblio ERICCA </a></li> |
26 |
|
|
<li><a href="http://ericca.uqtr.ca/cas_test"> Cas test d'optimisation de topologie </a></li> |
27 |
francois |
869 |
<li><a href="http://ericca.uqtr.ca/webmagic/index_text.html"> Tests journaliers du code </a></li> |
28 |
|
|
|
29 |
francois |
868 |
<li>Documentation de Code ASTER</li> |
30 |
|
|
<ul> |
31 |
|
|
<li><a href="http://ericca.uqtr.ca/fr11.7"> 11.7 </a></li> |
32 |
|
|
<li><a href="http://ericca.uqtr.ca/fr12.4"> 12.4 </a></li> |
33 |
|
|
</ul> |
34 |
sattarpa |
901 |
<li>Modification dans Code ASTER</li> |
35 |
francois |
868 |
<ul> |
36 |
sattarpa |
901 |
<li>\subpage ExtraireK </a></li> |
37 |
|
|
<li>\subpage CalcParal </a></li> |
38 |
|
|
</ul> |
39 |
|
|
|
40 |
|
|
<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> |
41 |
|
|
<ul> |
42 |
francois |
868 |
<li><a href="http://ericca.uqtr.ca/linux/instal_magic.bash"> Script d'installation de MAGiC </a></li> |
43 |
|
|
<li><a href="http://ericca.uqtr.ca/linux/instal_aster.bash"> Script d'installation de code ASTER</a></li> |
44 |
|
|
|
45 |
|
|
</ul> |
46 |
|
|
</ul> |
47 |
sattarpa |
901 |
*/ |
48 |
francois |
868 |
|
49 |
sattarpa |
901 |
//----------------------------------------------------------- |
50 |
francois |
868 |
|
51 |
sattarpa |
901 |
/*! \page ExtraireK Extraire matrice de raideur |
52 |
|
|
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 |
53 |
|
|
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 |
54 |
|
|
On édite "op0012.F90" on ajoutant "call matimp(matas,29,'MATLAB')" à la lieu montrée. \n |
55 |
francois |
868 |
|
56 |
sattarpa |
901 |
\verbatim |
57 |
|
|
! -- SI MATAS N'EST PAS MPI_COMPLET, ON LA COMPLETE : |
58 |
|
|
call dismoi('MPI_COMPLET', matas, 'MATR_ASSE', repk=kmpic) |
59 |
|
|
ASSERT((kmpic.eq.'OUI').or.(kmpic.eq.'NON')) |
60 |
|
|
if (kmpic .eq. 'NON') call sdmpic('MATR_ASSE', matas) |
61 |
|
|
! |
62 |
|
|
! |
63 |
|
|
! |
64 |
|
|
call matimp(matas,29,'MATLAB') << On appel matimp ICI << |
65 |
|
|
! |
66 |
|
|
! -- MENAGE : |
67 |
|
|
call jedetr(lchci) |
68 |
|
|
call jedetr(lmatel) |
69 |
|
|
! |
70 |
|
|
call jedema() |
71 |
|
|
end subroutine |
72 |
|
|
\endverbatim \n |
73 |
|
|
Et puis, on compile Code ASTER: sudo python setup.py install\n |
74 |
|
|
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 |
75 |
|
|
\verbatim |
76 |
|
|
F comm /home/..../filename.comm D 1 |
77 |
|
|
F mail /home/..../filename.mail D 20 |
78 |
|
|
F mess /home/..../filename.mess R 6 |
79 |
|
|
F m /home/..../filename.m R 29 << On ajoute cette ligne ICI << |
80 |
|
|
\endverbatim \n |
81 |
|
|
*/ |
82 |
francois |
868 |
|
83 |
sattarpa |
901 |
//----------------------------------------------------------- |
84 |
francois |
868 |
|
85 |
sattarpa |
901 |
/*! \page CalcParal Calcul parallèle dans Code ASTER |
86 |
|
|
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 |
87 |
|
|
<B>Version</B>\n |
88 |
|
|
OS:Ubuntu 14.04 \n |
89 |
|
|
Code_Aster : ver.12.4\n |
90 |
|
|
-----------------------------------------------------------\n\n |
91 |
|
|
<B>Telecharger des fichiers</B>\n |
92 |
|
|
Les fichier sont enregistrés dans: ~/Install_Files\n |
93 |
|
|
Ils sont installé dans : /opt and /opt/aster\n\n |
94 |
|
|
Télécharger les fichier suivant:\n |
95 |
|
|
aster-full-src-12.4.0-1.noarch.tar.gz (Code_Aster)\n |
96 |
|
|
OpenBLAS-0.2.15.tar.gz (OpenBLAS)\n |
97 |
|
|
scalapack_installer.tgz (ScaLAPACK)\n |
98 |
|
|
petsc-3.4.5.tar.gz (PETSc)\n\n |
99 |
|
|
Modifier le propriétaire d'installation par: $ sudo chown username /opt/\n |
100 |
|
|
Installez les bibliothèques pour Code_Aster par: \n |
101 |
|
|
$ 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 |
102 |
|
|
-----------------------------------------------------------\n\n |
103 |
|
|
<B>Compiler OpenBLAS (Math LIbrary pour Code_Aster)</B>\n |
104 |
|
|
$ cd ~/Install_Files/\n |
105 |
|
|
$ tar xfvz OpenBLAS-0.2.15..tar.gz\n |
106 |
|
|
$ cd OpenBLAS-0.2.15\n |
107 |
|
|
$ make NO_AFFINITY=1 USE_OPENMP=1\n |
108 |
|
|
$ make PREFIX=/opt/OpenBLAS install\n |
109 |
|
|
$ echo /opt/OpenBLAS/lib | sudo tee -a /etc/ld.so.conf.d/openblas.conf\n |
110 |
|
|
$ sudo ldconfig\n |
111 |
|
|
-----------------------------------------------------------\n\n |
112 |
|
|
<B>Compiler Code_Aster (séquentiel) avec OpenBLAS.</B>\n |
113 |
|
|
$ cd ~/Install_Files\n |
114 |
|
|
$ tar xfvz aster-full-src-12.4.0-1.noarch.tar.gz\n |
115 |
|
|
$ cd aster-full-src-12.4.0/\n |
116 |
|
|
$ sed -i "s:PREFER_COMPILER\ =\ 'GNU':PREFER_COMPILER\ =\'GNU_without_MATH'\nMATHLIB=\ '/opt/OpenBLAS/lib/libopenblas.a':g" setup.cfg\n |
117 |
|
|
$ python setup.py install\n |
118 |
|
|
<EM>Faire host-file pour calcul parallèle par:</EM>\n |
119 |
|
|
$ echo "$HOSTNAME cpu=$(cat /proc/cpuinfo | grep processor | wc -l)" > /opt/aster/etc/codeaster/mpi_hostfile\n |
120 |
|
|
-----------------------------------------------------------\n\n |
121 |
|
|
<B>Compiler ScaLAPACK</B>\n |
122 |
|
|
$ cd ~/Install_Files\n |
123 |
|
|
$ tar xfvz scalapack_installer.tgz\n |
124 |
|
|
$ cd scalapack_installer_1.0.2\n |
125 |
|
|
$ ./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 |
126 |
|
|
<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 |
127 |
|
|
-----------------------------------------------------------\n\n |
128 |
|
|
<B>Compiler MUMPS</B>\n |
129 |
|
|
Copier mumps-4.10.0 dans fichiers source de Code_Aster dans '/opt.\n |
130 |
|
|
Compiler par mpi-compiler\n |
131 |
|
|
$ cp ~/Install_Files/aster-full-src-12.4.0/SRC/mumps-4.10.0-aster3.tar.gz /opt/\n |
132 |
|
|
$ cd /opt\n |
133 |
|
|
$ tar xfvz mumps-4.10.0-aster3.tar.gz\n |
134 |
|
|
$ mv mumps-4.10.0 mumps-4.10.0_mpi\n |
135 |
|
|
$ cd mumps-4.10.0_mpi/\n |
136 |
|
|
Changer 'Makefile.inc.in' pour MUMPS4.10.0 Makefile.inc\n |
137 |
|
|
$ make all \n |
138 |
|
|
-----------------------------------------------------------\n\n |
139 |
|
|
<B>Compiler PETSc avec HYPRE et ML</B>\n |
140 |
|
|
$ cp ~/Install_Files/petsc-3.4.5.tar.gz /opt\n |
141 |
|
|
$ cd /opt\n |
142 |
|
|
$ tar xfvz petsc-3.4.5.tar.gz\n |
143 |
|
|
$ cd petsc-3.4.5\n |
144 |
|
|
$ ./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 |
145 |
|
|
$ make PETSC_DIR=/opt/petsc-3.4.5 PETSC_ARCH=arch-linux2-c-opt all\n |
146 |
|
|
$ make PETSC_DIR=/opt/petsc-3.4.5 PETSC_ARCH=arch-linux2-c-opt test\n |
147 |
|
|
-----------------------------------------------------------\n\n |
148 |
|
|
<B>Compiler Code_Aster (parallèle)</B>\n |
149 |
|
|
<EM>Changer un partie de 'mpi_get_procid_cmd' de '/opt/aster/etc/codeaster/asrun' par:\n |
150 |
|
|
mpi_get_procid_cmd : echo $OMPI_COMM_WORLD_RANK\n |
151 |
|
|
<EM>Changer 32 a 64 pour les processeur 64 bit: </B>\n |
152 |
|
|
batch_mpi_nbpmax : 32 (ou 64)\n |
153 |
|
|
interactif_mpi_nbpmax : 32 (ou 64)\n |
154 |
|
|
<EM>Décompresser Code_Aster</B>\n |
155 |
|
|
$ cd ~/Install_Files\n |
156 |
|
|
$ cd aster-full-src-12.4.0/SRC\n |
157 |
|
|
$ tar xfvz aster-12.4.0.tgz\n |
158 |
|
|
$ cd aster-12.4.0\n |
159 |
|
|
<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 |
160 |
|
|
$ export ASTER_ROOT=/opt/aster\n |
161 |
|
|
$ ./waf configure --use-config-dir=$ASTER_ROOT/12.4/share/aster --use-config=Ubuntu_gnu_mpi --prefix=$ASTER_ROOT/PAR12.4\n |
162 |
|
|
$ ./waf install -p\n |
163 |
|
|
<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 |
164 |
|
|
|
165 |
francois |
868 |
*/ |
166 |
|
|
|
167 |
francois |
737 |
//----------------------------------------------------------- |
168 |
francois |
868 |
//----------------------------------------------------------- |
169 |
francois |
737 |
|
170 |
|
|
|
171 |
|
|
/*! \page Script Description du contenu du fichier script |
172 |
|
|
Un fichier script est composé de commandes exécutées en séquences depuis le début du fichier jusqu'à la fin.\n |
173 |
|
|
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 |
174 |
|
|
Si le premier caractère de la ligne est le caractère # alors la ligne est ignorée.\n\n |
175 |
|
|
Les commandes disponibles dans le script MAGiC: |
176 |
couturad |
740 |
- \subpage ajoutass |
177 |
francois |
737 |
- \subpage creearbre |
178 |
couturad |
740 |
- \subpage creeassemblage |
179 |
francois |
737 |
- \subpage diff |
180 |
|
|
- \subpage enregistrer |
181 |
|
|
- \subpage evalarbre |
182 |
couturad |
740 |
- \subpage evalassemblage |
183 |
francois |
737 |
- \subpage export_mg_gmsh |
184 |
|
|
- \subpage export_fem_gmsh |
185 |
|
|
- \subpage fichier |
186 |
|
|
- \subpage importstepocc |
187 |
|
|
- \subpage inter |
188 |
|
|
- \subpage p_cylindre |
189 |
|
|
- \subpage p_cone |
190 |
|
|
- \subpage p_boite |
191 |
|
|
- \subpage p_sphere |
192 |
|
|
- \subpage p_tore |
193 |
|
|
- \subpage union |
194 |
|
|
*/ |
195 |
|
|
|
196 |
|
|
//----------------------------------------------------------- |
197 |
|
|
|
198 |
|
|
/*! \page Configuration Configuration de MAGiC |
199 |
|
|
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 |
200 |
|
|
Affiche_Code_Aster = 0.000000 //0. Affichage redirigé vers le fichier aster.log 1 affichage dans un terminal\n |
201 |
|
|
Convergence_mailleur3d_frontal = 200.000000 //Nombre de front restant à partir duquel la destruction est obligatoire\n |
202 |
|
|
Echantillon_face = 20.000000 //Nombre d'échantillon pour le calcul de la boite englobante des faces\n |
203 |
|
|
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 |
204 |
|
|
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 |
205 |
francois |
883 |
Quadratisation_jmin = 1.000000 //Garantir des tetras quadratiques avec jaconien minimum positif : 1=oui 2=non |
206 |
|
|
Quadratisation_pas = 100. //Nombre de pas pour recaler les noeuds et obtenir un jmin positif |
207 |
|
|
Quadratisation_dis = 0.100000 //Valeur de la distortion du jacobien minimale à atteindre |
208 |
|
|
Separateur_decimale = , //Seprateur décimale pour l'exportation des fichiers excel |
209 |
francois |
737 |
*/ |
210 |
|
|
|
211 |
francois |
864 |
|
212 |
francois |
737 |
//----------------------------------------------------------- |
213 |
francois |
864 |
|
214 |
|
|
/*! \page Reconstruction Description de la procédure de reconstruction d'un nmodèle structurel après optimisation topologique |
215 |
|
|
|
216 |
|
|
Description de la reconstruction |
217 |
|
|
|
218 |
|
|
- \subpage Description_reconstruction |
219 |
|
|
|
220 |
|
|
Commandes de la reconstruction |
221 |
|
|
|
222 |
|
|
- \subpage Commande_reconstruction |
223 |
|
|
|
224 |
|
|
*/ |
225 |
|
|
|
226 |
|
|
//----------------------------------------------------------- |
227 |
|
|
/*! \page Description_reconstruction Description de la reconstruction |
228 |
|
|
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. |
229 |
|
|
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 |
230 |
|
|
<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 |
231 |
|
|
<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 |
232 |
|
|
<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). |
233 |
|
|
*/ |
234 |
|
|
|
235 |
|
|
//----------------------------------------------------------- |
236 |
|
|
/*! \page Commande_reconstruction Commandes de la reconstruction |
237 |
|
|
|
238 |
|
|
<span style="text-decoration: underline;"><B>Etape 1 :</B> </span> Optimisation topologique\n <i>topo_optis.exe |
239 |
|
|
-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 |
240 |
|
|
Si on a déjà un résultat optimal on peut directement passer à l'étape 2. |
241 |
|
|
<BR><BR> |
242 |
|
|
|
243 |
|
|
<span style="text-decoration: underline;"><B>Etape 2 :</B> </span> Lissage du résultat optimal (sans la partie de non_design) \n |
244 |
|
|
<i>post_optis.exe -creepeau -in nom_fichier_resu.magic -out nom_fichier_lisse.magic -param paramliss.txt</i>\n\n |
245 |
|
|
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. |
246 |
|
|
<BR><BR> |
247 |
|
|
|
248 |
|
|
|
249 |
|
|
<span style="text-decoration: underline;"><B>Etape 3</B> </span> : Transformation en .off \n |
250 |
|
|
<i>mgoperation.exe -offout -in nom_fichier_lisse_peau.magic</i>\n\n |
251 |
|
|
(Utiliser le fichier de la peau qui ne contient pas le non_design) |
252 |
|
|
<BR><BR> |
253 |
|
|
|
254 |
|
|
|
255 |
|
|
<span style="text-decoration: underline;"><B>Etape 4 </B> </span> : Squelettisation sous MatLab\n |
256 |
|
|
|
257 |
|
|
Partie 1 : génération du squelette\n |
258 |
|
|
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 |
259 |
|
|
Ouvrir eg_skeleton_laplacian_rosa.m\n |
260 |
|
|
Mettre le nom (sans son extension) du fichier .off obtenu à l’Étape 3 dans eg_skeleton_laplacian_rosa.m à la ligne 16.\n |
261 |
|
|
executer eg_skeleton_laplacian_rosa.m\n |
262 |
|
|
Des figures (en particulier la figure 4) sont générées.\n\n |
263 |
|
|
|
264 |
|
|
Partie 2 : extraction des données\n |
265 |
|
|
Ouvrir maintenant Entxt.m qui est également dans le dossier « matlab »\n |
266 |
|
|
Donner les noms de fichier désirés dans Entxt.m aux lignes 4, 5 et 33, 34.\n |
267 |
|
|
executer Entxt.m \n |
268 |
|
|
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 |
269 |
|
|
<BR><BR> |
270 |
|
|
|
271 |
|
|
|
272 |
|
|
<span style="text-decoration: underline;"><B>Etape 5 :</B> </span> Exportation du squelette dans MAGiC\n |
273 |
|
|
<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 |
274 |
|
|
|
275 |
|
|
|
276 |
|
|
Pour obtenir une liste des paramètres pour d’éventuelles modifications, faire simplement :\n |
277 |
|
|
<i>skeleton.exe -construire_squelette </i>\n |
278 |
|
|
|
279 |
|
|
–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 |
280 |
|
|
|
281 |
|
|
–connecte 0 : permet d’introduire des mini-poutres uniquement au nœud de jonction entre le squelette et le non_design\n\n |
282 |
|
|
|
283 |
|
|
Le résultat à utiliser pour la suite est le nom_fichier_squelette3.magic |
284 |
|
|
<BR><BR> |
285 |
|
|
|
286 |
|
|
<span style="text-decoration: underline;"><B>Etape 6 :</B> </span> Lancer le calcul EF \n |
287 |
|
|
<i>mgoperation.exe -calculaster -in nom_fichier_squelette3.magic -out nom_fichier_sortie -param aster.txt -elastique</i>\n |
288 |
|
|
*/ |
289 |
|
|
|
290 |
|
|
//----------------------------------------------------------- |
291 |
francois |
737 |
/*! \page fichier fichier |
292 |
|
|
var = fichier nom |
293 |
|
|
@brief Mise en mémoire d'un gestionnaire MAGiC |
294 |
|
|
@param nom une chaine de caractére. |
295 |
|
|
@return var une variable representant le gestionnaire MAGiC |
296 |
|
|
@details Si nom = nouveau il y a création d'un nouveau modèle MAGiC\n |
297 |
|
|
@details Sinon ouverture du fichier MAGiC donné par nom\n |
298 |
|
|
*/ |
299 |
|
|
|
300 |
|
|
//----------------------------------------------------------- |
301 |
|
|
|
302 |
|
|
/*! \page p_boite p_boite |
303 |
|
|
var = p_boite arbre x1 y1 z1 x2 y2 z2 |
304 |
|
|
@brief Création d'une primitive solide de forme boite entre les points (x1,y1,z1) et (x2,y2,z2) |
305 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
306 |
|
|
@param x1 un double. |
307 |
|
|
@param y1 un double. |
308 |
|
|
@param z1 un double. |
309 |
|
|
@param x2 un double. |
310 |
|
|
@param y2 un double. |
311 |
|
|
@param z2 un double. |
312 |
|
|
@return var une variable representant une primitive solide |
313 |
|
|
*/ |
314 |
|
|
|
315 |
|
|
//----------------------------------------------------------- |
316 |
|
|
|
317 |
|
|
/*! \page p_sphere p_sphere |
318 |
|
|
var = p_sphere arbre x1 y1 z1 r |
319 |
|
|
@brief Création d'une primitive solide de forme spherique de centre (x1,y1,z1) et de rayon r |
320 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
321 |
|
|
@param x1 un double. |
322 |
|
|
@param y1 un double. |
323 |
|
|
@param z1 un double. |
324 |
|
|
@param r un double. |
325 |
|
|
@return var une variable representant une primitive solide |
326 |
|
|
*/ |
327 |
|
|
|
328 |
|
|
//----------------------------------------------------------- |
329 |
|
|
|
330 |
|
|
/*! \page p_cylindre p_cylindre |
331 |
|
|
var = p_cylindre arbre x1 y1 z1 lat lon h r |
332 |
|
|
@brief Création d'une primitive solide de forme cylindrique basée sur le cercle centré en (x1,y1,z1) orienté selon les angles lat et lon pour latitute et longitude de hauteur h et de rayon r |
333 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
334 |
|
|
@param x1 un double. |
335 |
|
|
@param y1 un double. |
336 |
|
|
@param z1 un double. |
337 |
|
|
@param lat un double. |
338 |
|
|
@param lon un double. |
339 |
|
|
@param h un double. |
340 |
|
|
@param r un double. |
341 |
|
|
@return var une variable representant une primitive solide |
342 |
|
|
*/ |
343 |
|
|
|
344 |
|
|
//----------------------------------------------------------- |
345 |
|
|
|
346 |
|
|
/*! \page p_tore p_tore |
347 |
|
|
var = p_tore arbre x1 y1 z1 lat lon R r |
348 |
|
|
@brief Création d'une primitive solide de forme torique basée sur le cercle centré en (x1,y1,z1) orienté selon les angles lat et lon pour latitute et longitude de grand rayon R et de petit rayon r |
349 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
350 |
|
|
@param x1 un double. |
351 |
|
|
@param y1 un double. |
352 |
|
|
@param z1 un double. |
353 |
|
|
@param lat un double. |
354 |
|
|
@param lon un double. |
355 |
|
|
@param h un double. |
356 |
|
|
@param r un double. |
357 |
|
|
@return var une variable representant une primitive solide |
358 |
|
|
*/ |
359 |
|
|
|
360 |
|
|
//----------------------------------------------------------- |
361 |
|
|
|
362 |
|
|
/*! \page p_cone p_cone |
363 |
|
|
var = p_cone arbre x1 y1 z1 lat lon h r |
364 |
|
|
@brief Création d'une primitive solide de forme conqiue basée sur le cercle centré en (x1,y1,z1) orienté selon les angles lat et lon pour latitute et longitude de hauteur h et de petit rayon r |
365 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
366 |
|
|
@param x1 un double. |
367 |
|
|
@param y1 un double. |
368 |
|
|
@param z1 un double. |
369 |
|
|
@param lat un double. |
370 |
|
|
@param lon un double. |
371 |
|
|
@param h un double. |
372 |
|
|
@param r un double. |
373 |
|
|
@return var une variable representant une primitive solide |
374 |
|
|
*/ |
375 |
couturad |
740 |
//----------------------------------------------------------- |
376 |
francois |
737 |
|
377 |
couturad |
740 |
/*! \page ajoutass ajoutass |
378 |
|
|
var = ajoutass arbre prim |
379 |
|
|
@brief Ajoute une primitive dans un arbre |
380 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
381 |
|
|
@param prim une variable représentant une primitive |
382 |
|
|
@return var une variable inutilisable |
383 |
|
|
*/ |
384 |
francois |
737 |
//----------------------------------------------------------- |
385 |
|
|
/*! \page union union |
386 |
|
|
var = union arbre p1 p2 nom_semantique |
387 |
|
|
@brief Création d'une opération booléene d'union entre deux primitives |
388 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
389 |
|
|
@param p1 une primitive. |
390 |
|
|
@param p2 une primitive. |
391 |
|
|
@param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion |
392 |
|
|
@return var une variable representant une primitive |
393 |
|
|
@details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué |
394 |
|
|
*/ |
395 |
|
|
//----------------------------------------------------------- |
396 |
|
|
/*! \page diff diff |
397 |
|
|
var = diff arbre p1 p2 nom_semantique |
398 |
|
|
@brief Création d'une opération booléene de soustraction entre deux primitives |
399 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
400 |
|
|
@param p1 une primitive. |
401 |
|
|
@param p2 une primitive. |
402 |
|
|
@param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion |
403 |
|
|
@return var une variable representant une primitive |
404 |
|
|
@details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué |
405 |
|
|
*/ |
406 |
|
|
//----------------------------------------------------------- |
407 |
|
|
/*! \page inter inter |
408 |
|
|
var = union arbre p1 p2 nom_semantique |
409 |
|
|
@brief Création d'une opération booléene d'intersection entre deux primitives |
410 |
|
|
@param arbre une variable représentant un arbre caractéristique. |
411 |
|
|
@param p1 une primitive. |
412 |
|
|
@param p2 une primitive. |
413 |
|
|
@param nom_semantique OPTIONNEL nom pour donner un sens physique à l'opération. Les choix sont : chamfrein, conge, intersection, percage, soustraction, union, extrusion |
414 |
|
|
@return var une variable representant une primitive |
415 |
|
|
@details Si aucun nom de sémantique n'est donné le qualificatif SANS est attribué |
416 |
|
|
*/ |
417 |
|
|
//----------------------------------------------------------- |
418 |
|
|
|
419 |
|
|
/*! \page creearbre creearbre |
420 |
|
|
var = creearbre gest nom |
421 |
|
|
@brief Création d'un arbre caractéristique |
422 |
|
|
@param gest une variable représentant un modèle MAGiC |
423 |
|
|
@param nom une chaine de caractère. Ce nom n'est pas utilisé par la suite |
424 |
|
|
@return var une variable representant un arbre caractéristique |
425 |
|
|
*/ |
426 |
|
|
|
427 |
|
|
//----------------------------------------------------------- |
428 |
couturad |
740 |
|
429 |
|
|
/*! \page creeassemblage creeassemblage |
430 |
|
|
var = creeassemblage arbre nom |
431 |
|
|
@brief Création d'un assemblage dans un arbre caractéristique |
432 |
|
|
@param arbre une variable représentant un arbre caractéristique |
433 |
|
|
@param nom une chaine de caractère. Ce nom n'est pas utilisé par la suite |
434 |
|
|
@return var une variable representant un assemblage |
435 |
|
|
*/ |
436 |
|
|
|
437 |
|
|
//----------------------------------------------------------- |
438 |
francois |
737 |
/*! \page evalarbre evalarbre |
439 |
|
|
var = evalarbre arbre nom avecstep avecstl eps eps2 |
440 |
francois |
741 |
@brief Evaluation du modèle BREP à partir de la derniere primitive d'un arbre caractéristique |
441 |
francois |
737 |
@param arbre une variable représentant un arbre caractéristique |
442 |
|
|
@param nom une string représentant un nom de fichier pour enregistrer le fichier opencascade sur le disque (L'extension s'ajoute automatiquement au nom du fichier) |
443 |
|
|
@param avecstep un boolean qui permet une version du fichier BREP en STEP |
444 |
|
|
@param avecstl un boolean qui permet la création d'une triangulation associée aux entitées BREP crées |
445 |
|
|
@param eps OPTIONNEL un double pour la précison de opencascade dans la fermeture des entitées BREP - Defaut = 1e-6. |
446 |
|
|
@param eps2 OPTIONNEL un double pour la distance entre la triangulation et la géométrie - Defaut = 1. |
447 |
|
|
@return var une variable representant une geometrie |
448 |
|
|
*/ |
449 |
|
|
|
450 |
|
|
//----------------------------------------------------------- |
451 |
couturad |
740 |
/*! \page evalassemblage evalassemblage |
452 |
francois |
747 |
var = evalassemblage arbre assemb nom avecfusion avecstep avecstl eps eps2 |
453 |
couturad |
740 |
@brief Evaluation du modèle BREP à partir d'un assemblage |
454 |
|
|
@param arbre une variable représentant un arbre caractéristique |
455 |
|
|
@param assemb une variable représentant un assemblage |
456 |
|
|
@param nom une string représentant un nom de fichier pour enregistrer le fichier opencascade sur le disque (L'extension s'ajoute automatiquement au nom du fichier) |
457 |
francois |
747 |
@param avecfusion un boolean qui permet de fusionner les entites communes a deux volumes avec l'apparaition des cofaces |
458 |
couturad |
740 |
@param avecstep un boolean qui permet une version du fichier BREP en STEP |
459 |
|
|
@param avecstl un boolean qui permet la création d'une triangulation associée aux entitées BREP crées |
460 |
|
|
@param eps OPTIONNEL un double pour la précison de opencascade dans la fermeture des entitées BREP - Defaut = 1e-6. |
461 |
|
|
@param eps2 OPTIONNEL un double pour la distance entre la triangulation et la géométrie - Defaut = 1. |
462 |
|
|
@return var une variable representant une geometrie |
463 |
|
|
*/ |
464 |
|
|
|
465 |
|
|
//----------------------------------------------------------- |
466 |
francois |
737 |
/*! \page enregistrer enregistrer |
467 |
|
|
var = enregistrer gest nom |
468 |
|
|
@brief Sauvegarde d'un fichier MAGiC |
469 |
|
|
@param gest une variable représentant un gestionnaire MAGiC |
470 |
|
|
@param nom une string représentant un nom de fichier (L'extension s'ajoute automatiquement au nom du fichier). |
471 |
|
|
@return var une variable inutilisable |
472 |
|
|
*/ |
473 |
|
|
|
474 |
|
|
//----------------------------------------------------------- |
475 |
|
|
/*! \page export_mg_gmsh export_mg_gmsh |
476 |
|
|
var = export_mg_gmsh gest nom num |
477 |
|
|
@brief Exportation d'un MG_MAILLAGE MAGiC en format GMSH |
478 |
|
|
@param gest une variable représentant un gestionnaire MAGiC |
479 |
|
|
@param nom une string représentant un nom de fichier gmsh (L'extension s'ajoute automatiquement au nom du fichier). |
480 |
|
|
@param num un integer qui représente un numero sequantielle de maillage (entre 1 et n) |
481 |
|
|
@return var une variable inutilisable |
482 |
|
|
*/ |
483 |
|
|
|
484 |
|
|
//----------------------------------------------------------- |
485 |
|
|
/*! \page export_fem_gmsh export_fem_gmsh |
486 |
|
|
var = export_fem_gmsh gest nom num |
487 |
|
|
@brief Exportation d'un FEM_MAILLAGE MAGiC en format GMSH |
488 |
|
|
@param gest une variable représentant un gestionnaire MAGiC |
489 |
|
|
@param nom une string représentant un nom de fichier gmsh (L'extension s'ajoute automatiquement au nom du fichier). |
490 |
|
|
@param num un integer qui représente un numero sequantielle de maillage (entre 1 et n) |
491 |
|
|
@return var une variable inutilisable |
492 |
|
|
*/ |
493 |
|
|
//----------------------------------------------------------- |
494 |
|
|
/*! \page importstepocc importstepocc |
495 |
|
|
var = importstepocc gest nom eps |
496 |
|
|
@brief importation d'un fichier STEP en MAGiC via opencascade |
497 |
|
|
@param gest une variable représentant un gestionnaire MAGiC |
498 |
|
|
@param nom une string représentant le nom de fichier STEP. |
499 |
|
|
@param eps OPTIONNEL un double pour la précison de opencascade dans la fermeture des entitées BREP - Defaut = 1e-6. |
500 |
|
|
@return var une variable de type geometrie |
501 |
|
|
*/ |