Télécharger partition.dgibi

Retour à la liste

Numérotation des lignes :

  1. ************************************************************************
  2. * NOM : partition
  3. * DESCRIPTION : Teste les options de partitionnement de maillage de
  4. * l'operateur PART
  5. ************************************************************************
  6. SMALL = 1.E-5 ;
  7. OPTI 'DIME' 3 ;
  8.  
  9. * Affichages graphiques ?
  10. GRAPH = FAUX ;
  11.  
  12.  
  13. * PROCEDURE PERMETTANT DE VALIDER QU'UNE PARTITION A LE NOMBRE ATTENDU
  14. * DE ZONES, OU QU'UN CONTOUR A LE NOMBRE ATTENDU D'ELEMENTS
  15. DEBP VALIDER ENTI1*'ENTIER' ;
  16. ARGU TAB1/'TABLE' ;
  17. SI (EXIS TAB1) ;
  18. LOGI1 = (EGA (DIME TAB1) ENTI1) ;
  19. SINON ;
  20. ARGU MAIL1*'MAILLAGE' ;
  21. LOGI1 = (EGA (NBEL MAIL1) ENTI1) ;
  22. FINS ;
  23.  
  24. SI (NON LOGI1) ;
  25. ERRE 5 ;
  26. FINS ;
  27. FINP ;
  28.  
  29.  
  30. * +------------------------------------------------------------+
  31. * | MAILLAGES SURFACIQUES TYPE "LIVRETS DE QUELQUES PAGES" ... |
  32. * +------------------------------------------------------------+
  33.  
  34. NNN = 2 ;
  35.  
  36. OPTI 'ELEM' 'QUA4' ;
  37. A1 = (0. 0. 0.) DROI NNN (1. 0. 0.) TRAN NNN (0. 1. 0.) ;
  38.  
  39. OPTI 'ELEM' 'TRI3' ;
  40. B1 = (1. 0. 0.) DROI NNN (1. 0. 1.) TRAN NNN (0. 1. 0.) ;
  41.  
  42. C1 = A1 PLUS (1. 0. 0.) ;
  43.  
  44. D1 = B1 TOUR (1. 0. 0.) (1. 1. 0.) 80. ;
  45.  
  46. E1 = CHAN 'QUAD' D1 ;
  47.  
  48. F1 = CHAN 'QUAD' (A1 TOUR (1. 0. 0.) (1. 1. 0.) -70.) ;
  49.  
  50. G1 = CHAN 'QUAD' (A1 TOUR (1. 0. 0.) (1. 1. 0.) -10.) ;
  51.  
  52. ELIM (A1 ET B1 ET C1 ET D1 ET E1 ET F1 ET G1) SMALL ;
  53.  
  54. MAIL11 = A1 ET B1 ET C1 ;
  55. MAIL12 = A1 ET B1 ET C1 ET D1 ;
  56. MAIL13 = A1 ET B1 ET C1 ET E1 ET F1 ET G1 ;
  57.  
  58. *******************************************************
  59.  
  60. * LES DEUX PARTITIONS CI-DESSOUS NE SONT PAS EQUIVALENTES !
  61. TAB11_1 = PART 'NESC' 'SEPA' MAIL11 'ANGL' 30. ;
  62. TAB11_2 = PART 'NESC' 'SEPA' MAIL11 'MAIL' (ARET MAIL11 30.) ;
  63.  
  64. MESS 'PARTITION 11 POUR UN ANGLE DE 30 DEGRES"' ;
  65. SI GRAPH ; TRACPART TAB11_1 'NCLK' ; FINS ;
  66. MESS 'PARTITION 11 LE LONG DES ARETES > 30 DEGRES' ;
  67. SI GRAPH ; TRACPART TAB11_2 'NCLK' ; FINS ;
  68.  
  69. VALIDER TAB11_1 2 ;
  70. VALIDER TAB11_2 3 ;
  71.  
  72. * ON EN PROFITE POUR TESTER L'OPERATEUR CONTOUR
  73. BORI11 = CONT MAIL11 'INTE' ;
  74. BORE11 = CONT MAIL11 'EXTE' ;
  75. BORT11 = CONT MAIL11 'TOUT' ;
  76.  
  77. VALIDER BORI11 NNN ;
  78. VALIDER BORE11 (9*NNN) ;
  79. VALIDER BORT11 (10*NNN) ;
  80.  
  81. SI GRAPH ;
  82. TRAC BORI11 'NOEU' 'TITR' 'CONTOUR INTERIEUR DE MAIL11' ;
  83. TRAC BORE11 'NOEU' 'TITR' 'CONTOUR EXTERIEUR DE MAIL11' ;
  84. TRAC BORT11 'NOEU' 'TITR' 'CONTOUR COMPLET DE MAIL11' ;
  85. FINS ;
  86.  
  87. TAB11_3 = PART 'NESC' 'SEPA' MAIL11 'MAIL' BORI11 ;
  88. TAB11_4 = PART 'NESC' 'SEPA' MAIL11 'MAIL' BORE11 ;
  89. TAB11_5 = PART 'NESC' 'SEPA' MAIL11 'MAIL' BORT11 ;
  90.  
  91. MESS 'PARTITION 11 LE LONG DU CONTOUR INTERIEUR' ;
  92. SI GRAPH ; TRACPART TAB11_3 'NCLK' ; FINS ;
  93. MESS 'PARTITION 11 LE LONG DU CONTOUR INTERIEUR' ;
  94. SI GRAPH ; TRACPART TAB11_4 'NCLK' ; FINS ;
  95. MESS 'PARTITION 11 LE LONG DU CONTOUR INTERIEUR' ;
  96. SI GRAPH ; TRACPART TAB11_5 'NCLK' ; FINS ;
  97.  
  98. VALIDER TAB11_3 3 ;
  99. VALIDER TAB11_4 1 ;
  100. VALIDER TAB11_5 3 ;
  101.  
  102. * ENCORE UNE AUTRE FACON D'OBTENIR LE MEME RESULTAT
  103. TAB11_6 = PART 'NESC' 'SEPA' MAIL11 'FACE' ;
  104.  
  105. MESS 'PARTITION 11 AVEC L OPTION "FACE"' ;
  106. SI GRAPH ; TRACPART TAB11_6 'NCLK' ; FINS ;
  107.  
  108. VALIDER TAB11_6 3 ;
  109.  
  110. *******************************************************
  111.  
  112. * EFFET DE LA VALEUR DE L'ANGLE SUR LE NOMBRE DE PARTITIONS
  113. TAB12_1 = PART 'NESC' MAIL12 'SEPA' 'ANGL' 5. ;
  114. TAB12_2 = PART 'NESC' MAIL12 'SEPA' 'ANGL' 30. ;
  115. TAB12_3 = PART 'NESC' MAIL12 'SEPA' 'ANGL' 100. ;
  116.  
  117. MESS 'PARTITION 12 POUR UN ANGLE DE 5 DEGRES' ;
  118. SI GRAPH ; TRACPART TAB12_1 'NCLK' ; FINS ;
  119. MESS 'PARTITION 12 POUR UN ANGLE DE 30 DEGRES' ;
  120. SI GRAPH ; TRACPART TAB12_2 'NCLK' ; FINS ;
  121. MESS 'PARTITION 12 POUR UN ANGLE DE 100 DEGRES' ;
  122. SI GRAPH ; TRACPART TAB12_3 'NCLK' ; FINS ;
  123.  
  124. VALIDER TAB12_1 3 ;
  125. VALIDER TAB12_2 2 ;
  126. VALIDER TAB12_3 1 ;
  127.  
  128. *******************************************************
  129.  
  130. * PARTITION AVEC DES ELEMENTS D'ORDRE 1 ET 2 DANS LE MAILLAGE
  131.  
  132. * CE CONTOUR CONTIENT A LA FOIS DES SEG2 ET DES SEG3...
  133. BORI13 = CONT MAIL13 'INTE' ;
  134. LIST BORI13 ;
  135. VALIDER BORI13 (2*NNN) ;
  136. * ...ALORS QUE CES ARETES NE CONTIENNENT QUE DES SEG2 (BUG ?)
  137. ARET13 = ARET MAIL13 3. ;
  138. LIST ARET13 ;
  139.  
  140. TAB13_1 = PART 'NESC' 'SEPA' MAIL13 'ANGL' 3. ;
  141. TAB13_2 = PART 'NESC' 'SEPA' MAIL13 'MAIL' ARET13 ;
  142. TAB13_3 = PART 'NESC' 'SEPA' MAIL13 'FACE' ;
  143. TAB13_4 = PART 'NESC' 'SEPA' MAIL13 'MAIL' BORI13 ;
  144.  
  145. MESS 'PARTITION 13 POUR UN ANGLE DE 3 DEGRES' ;
  146. SI GRAPH ; TRACPART TAB13_1 'NCLK' ; FINS ;
  147. MESS 'PARTITION 13 LE LONG DES ARETES > 3 DEGRES' ;
  148. SI GRAPH ; TRACPART TAB13_2 'NCLK' ; FINS ;
  149. MESS 'PARTITION 13 AVEC L OPTION "FACE"' ;
  150. SI GRAPH ; TRACPART TAB13_3 'NCLK' ; FINS ;
  151. MESS 'PARTITION 13 LE LONG DU CONTOUR INTERIEUR' ;
  152. SI GRAPH ; TRACPART TAB13_4 'NCLK' ; FINS ;
  153.  
  154. VALIDER TAB13_1 4 ;
  155. VALIDER TAB13_2 4 ;
  156. VALIDER TAB13_3 6 ;
  157. VALIDER TAB13_4 6 ;
  158.  
  159.  
  160. * +---------------------------------------+
  161. * | MAILLAGE LINEIQUE TYPE "TALISMAN" ... |
  162. * +---------------------------------------+
  163.  
  164. P0 = (0. 0. 0.) ;
  165. P1 = (1. 0. 0.) ;
  166. PTS2 = P0 ET P1 ;
  167. PK = P1 ;
  168. REPE K 11 ;
  169. PK = PK TOUR P0 (0. 0. 1.) 30. ;
  170. PTS2 = PTS2 ET PK ;
  171. FIN K ;
  172. MAIL2 = CHAN 'LIGN' (TRIA PTS2) ;
  173.  
  174. * ON COMMENCE PAR CHERCHER LES JONCTIONS...
  175. JONC2 = POIN MAIL2 'JONC' ;
  176. SI GRAPH ; TRAC (MAIL2 ET (COUL 'ROUG' JONC2)) ; FINS ;
  177. VALIDER JONC2 13 ;
  178.  
  179. * ...PUIS ON TESTE QUELQUES PARTITIONS
  180. TAB2_1 = PART 'NESC' 'SEPA' MAIL2 'LIGN' ;
  181. TAB2_2 = PART 'NESC' 'SEPA' MAIL2 'MAIL' JONC2 ;
  182. TAB2_3 = PART 'NESC' 'SEPA' MAIL2 'ANGL' 10. ;
  183. TAB2_4 = PART 'NESC' 'SEPA' MAIL2 'MAIL' (ELEM PTS2 (LECT 1 8 10)) ;
  184.  
  185. MESS 'PARTITION 2 AVEC L OPTION "LIGN"' ;
  186. SI GRAPH ; TRACPART TAB2_1 'NCLK' ; FINS ;
  187. MESS 'PARTITION 2 SELON LES NOEUDS DE JONCTION' ;
  188. SI GRAPH ; TRACPART TAB2_2 'NCLK' ; FINS ;
  189. MESS 'PARTITION 2 POUR UN ANGLE DE 10 DEGRES' ;
  190. SI GRAPH ; TRACPART TAB2_3 'NCLK' ; FINS ;
  191. MESS 'PARTITION 2 SELON 2 NOEUDS' ;
  192. SI GRAPH ; TRACPART TAB2_4 'NCLK' ; FINS ;
  193.  
  194. VALIDER TAB2_1 24 ;
  195. VALIDER TAB2_2 24 ;
  196. VALIDER TAB2_3 18 ;
  197. VALIDER TAB2_4 4 ;
  198.  
  199.  
  200. * +--------------------+
  201. * | MAILLAGE VOLUMIQUE |
  202. * +--------------------+
  203.  
  204. OPTI 'ELEM' 'CUB8' ;
  205.  
  206. SURF1 = (0. 0. 0.) DROI 4 (1. 0. 0.) TRAN 4 (0. 1. 0.) ;
  207. VOLU1 = SURF1 VOLU 'TRAN' 4 (0. 0. 1.) ;
  208. VOLU2 = VOLU1 PLUS (1. 0. 0.) ;
  209. * VOLU2 = CHAN 'TET4' VOLU2 ;
  210. VOLU3 = VOLU1 ET VOLU2 ;
  211.  
  212. COUP1 = SURF1 PLUS (0. 0. 0.25) ;
  213. COUP2 = SURF1 PLUS (1. 0. 0.75) ;
  214. * COUP2 = CHAN 'TRI3' COUP2 ;
  215. COUP3 = (COTE 2 COUP1) TRAN 2 (0. 0. 0.5) ;
  216. COUP4 = SURF1 PLUS (0.75 0. 0.75) ;
  217. COUP_A = COUL 'ROUG' (COUP1 ET COUP2 ET COUP3) ;
  218. COUP_B = COUL 'VERT' (COUP1 ET COUP4 ET COUP3) ;
  219.  
  220. ELIM (VOLU3 ET COUP_A ET COUP_B) SMALL ;
  221.  
  222. SI GRAPH ;
  223. TRAC (VOLU3 ET COUP_A) 'CACH' 'TITR' 'MAILLAGE SEPARATEUR COUP_A' ;
  224. TRAC (VOLU3 ET COUP_B) 'CACH' 'TITR' 'MAILLAGE SEPARATEUR COUP_B' ;
  225. FINS ;
  226.  
  227. TAB3_1 = PART 'NESC' 'OPTI' VOLU3 8 ;
  228. TAB3_2 = PART 'NESC' 'ARLE' VOLU3 5 ;
  229. TAB3_3 = PART 'NESC' 'CONN' VOLU3 ;
  230. TAB3_4 = PART 'NESC' 'SEPA' VOLU3 'MAIL' COUP_A ;
  231. TAB3_5 = PART 'NESC' 'SEPA' VOLU3 'MAIL' COUP_B ;
  232.  
  233. MESS 'PARTITION 3 AVEC L OPTION "OPTI"' ;
  234. SI GRAPH ; TRACPART TAB3_1 'NCLK' ; FINS ;
  235. MESS 'PARTITION 3 AVEC L OPTION "ARLE"' ;
  236. SI GRAPH ; TRACPART TAB3_2 'NCLK' ; FINS ;
  237. MESS 'PARTITION 3 AVEC L OPTION "CONN"' ;
  238. SI GRAPH ; TRACPART TAB3_3 'NCLK' ; FINS ;
  239. MESS 'PARTITION 3 AVEC L OPTION "SEPA" "MAIL" COUP_A' ;
  240. SI GRAPH ; TRACPART TAB3_4 'NCLK' ; FINS ;
  241. MESS 'PARTITION 3 AVEC L OPTION "SEPA" "MAIL" COUP_B' ;
  242. SI GRAPH ; TRACPART TAB3_5 'NCLK' ; FINS ;
  243.  
  244. VALIDER TAB3_1 8 ;
  245. VALIDER TAB3_2 5 ;
  246. VALIDER TAB3_3 1 ;
  247. VALIDER TAB3_4 2 ;
  248. VALIDER TAB3_5 1 ;
  249.  
  250. FIN ;
  251.  
  252.  
  253.  
  254.  
  255.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales