Télécharger cont.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : cont.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 1 ;
  5. ************************************************************************
  6. * NOM : CONT
  7. * DESCRIPTION : Quelques cas-tests pour l'operateur CONT
  8. *
  9. * Cas 1 : avant la fiche 9607, le résultat contenait des
  10. * noeuds nuls.
  11. *
  12. * Cas 2 : avant la fiche ????, plantage car résultat
  13. * correct=maillage vide.
  14. *
  15. *
  16. *
  17. * LANGAGE : GIBIANE-CAST3M
  18. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  19. * mél : stephane.gounand@cea.fr
  20. **********************************************************************
  21. * VERSION : v1, 04/12/2017, version initiale
  22. * HISTORIQUE : v1, 04/12/2017, création
  23. * HISTORIQUE :
  24. * HISTORIQUE :
  25. ************************************************************************
  26. *
  27. interact = faux ;
  28. graph = faux ;
  29. *
  30. *
  31. * verifie que deux maillages sont identiques au sens de DIFF
  32. * cad en etant tolerant
  33. *
  34. 'DEBPROC' EGAMAIL ;
  35. 'ARGUMENT' mail1*'MAILLAGE' ;
  36. 'ARGUMENT' mail2*'MAILLAGE' ;
  37. lega = 'EGA' ('NBEL' ('DIFF' mail1 mail2)) 0 ;
  38. 'RESPRO' lega ;
  39. 'FINPROC' ;
  40. *
  41. lok = vrai ;
  42. *
  43. * Cas-test 1
  44. *
  45. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
  46. *
  47. * Créer 10 noeuds
  48. *
  49. tn = 'TABL' ;
  50. 'REPE' nn 10 ;
  51. tn . &nn = (0. 0.) ;
  52. 'FIN' nn ;
  53. *
  54. * Liste des noeuds des triangles
  55. *
  56. ln1 = 'LECT' 1 4 2 6 4 7 6 2 4 2 8 ;
  57. ln2 = 'LECT' 2 2 1 4 7 8 2 10 2 3 2 ;
  58. ln3 = 'LECT' 3 5 5 2 2 2 9 9 9 9 9 ;
  59. *
  60. mail = 'VIDE' 'MAILLAGE'/'TRI3' ;
  61. *
  62. 'REPE' mm ('DIME' ln1) ;
  63. *
  64. n1 = 'EXTR' ln1 &mm ; p1 = tn . n1 ;
  65. n2 = 'EXTR' ln2 &mm ; p2 = tn . n2 ;
  66. n3 = 'EXTR' ln3 &mm ; p3 = tn . n3 ;
  67. *
  68. mail = 'ET' mail ('MANU' 'TRI3' p1 p2 p3) ;
  69.  
  70. 'FIN' mm ;
  71. *
  72. t1 = 'CONT' mail 'TOUT' ;
  73. t2 = 'CONT' mail ;
  74. t3 = 'CONT' mail 'INTE' ;
  75. *
  76. next1 = 'LECT' 1 1 2 3 4 4 4 4 6 7 8 9 ;
  77. next2 = 'LECT' 3 5 10 9 5 6 7 9 9 8 9 10 ;
  78. mcext = 'VIDE' 'MAILLAGE'/'SEG2' ;
  79. *
  80. 'REPE' mm ('DIME' next1) ;
  81. n1 = 'EXTR' next1 &mm ; p1 = tn . n1 ;
  82. n2 = 'EXTR' next2 &mm ; p2 = tn . n2 ;
  83. mcext = 'ET' mcext ('MANU' 'SEG2' p1 p2) ;
  84. 'FIN' mm ;
  85. *
  86. nint1 = 'LECT' 2 2 ;
  87. nint2 = 'LECT' 4 9 ;
  88. mcint = 'VIDE' 'MAILLAGE'/'SEG2' ;
  89. *
  90. 'REPE' mm ('DIME' nint1) ;
  91. n1 = 'EXTR' nint1 &mm ; p1 = tn . n1 ;
  92. n2 = 'EXTR' nint2 &mm ; p2 = tn . n2 ;
  93. mcint = 'ET' mcint ('MANU' 'SEG2' p1 p2) ;
  94. 'FIN' mm ;
  95. *
  96. mctot = mcext 'ET' mcint ;
  97. *
  98. 'SI' ('NON' (egamail t1 mctot)) ;
  99. 'MESS' '!!! Cas 1 : CONT TOUT incorrect' ;
  100. lok = lok 'ET' faux ;
  101. 'FINS' ;
  102. *
  103. 'SI' ('NON' (egamail t2 mcext)) ;
  104. 'MESS' '!!! Cas 1 : CONT EXTE incorrect' ;
  105. lok = lok 'ET' faux ;
  106. 'FINS' ;
  107. *
  108. 'SI' ('NON' (egamail t3 mcint)) ;
  109. 'MESS' '!!! Cas 1 : CONT INTE incorrect' ;
  110. lok = lok 'ET' faux ;
  111. 'FINS' ;
  112. *
  113. * Cas-test 2 : on vérifie que le contour d'une enveloppe est vide
  114. * (théorème de Stokes)
  115. *
  116. 'OPTI' 'DIME' 3 'ELEM' 'CUB8' ;
  117. * maillage repris de volu.dgibi mais QUA4 au lieu de TRI3 plus
  118. * paramètres différents
  119. nx = 3 ; rcyl = 0.58 ; ang = 31.4 ;
  120. *
  121. * Maillage de l'enveloppe
  122. *
  123. nx2 = '*' nx 2 ;
  124. mrcyl = ('*' rcyl -1.) ;
  125. pA = rcyl 0. 0. ; pB = 0. rcyl 0. ; pC = mrcyl 0. 0. ;
  126. pD = 0. mrcyl 0. ;
  127. pA pB pC pD = 'TOURNER' pA pB pC pD (0. 0. 0.) (0. 0. 1.) ang ;
  128. pE = 1. -1. 0. ; pF = 1. 1. 0. ; pG = -1. 1. 0. ; pH = -1. -1. 0. ;
  129. *
  130. ctc1 = 'CER3' nx2 pA pB pC ; ctc2 = 'CER3' nx2 pC pD pA ;
  131. cerb = ctc1 'ET' ctc2 ;
  132. carb = 'DROIT' nx pE pF 'DROIT' nx pG 'DROIT' nx pH 'DROIT'
  133. nx pE ;
  134. bas = 'SURFACE' ('ET' carb ('INVERSE' cerb)) 'PLANE' ;
  135. hau cerh carh = 'PLUS' bas cerb carb (0. 0. 2.) ;
  136. suri = 'REGLER' nx cerb cerh ;
  137. sure = 'REGLER' nx carb carh ;
  138. * On fait attention à l'orientation (normale rentrante pour env)
  139. envo = bas 'ET' ('INVE' hau) 'ET' suri 'ET' ('INVE' sure) ;
  140. 'SI' graph ;
  141. 'TRAC' 'CACH' envo 'TITR' 'Enveloppe' ;
  142. 'FINS' ;
  143. *
  144. vol = 'VOLU' envo ;
  145. env = 'ENVE' vol ;
  146. cnt = 'CONT' env 'NOID' ;
  147. * cnt = 'CONT' env ;
  148. *
  149. 'SI' ('NON' (egamail env envo)) ;
  150. 'MESS' '!!! Cas 2 : ENVE incorrect' ;
  151. lok = lok 'ET' faux ;
  152. 'FINS' ;
  153. *
  154. 'SI' ('NON' ('EGA' ('NBEL' cnt) 0)) ;
  155. 'MESS' '!!! Cas 2 : CONT incorrect' ;
  156. lok = lok 'ET' faux ;
  157. 'FINS' ;
  158. *
  159. * Test final
  160. *
  161. 'SI' ('NON' lok) ;
  162. 'ERREUR' 5 ;
  163. 'SINON' ;
  164. 'SAUT' 1 'LIGN' ;
  165. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  166. 'FINSI' ;
  167. *
  168. 'SI' interact ;
  169. 'OPTION' 'ECHO' 1 ;
  170. 'OPTION' 'DONN' 5 ;
  171. 'FINSI' ;
  172.  
  173. *
  174. * End of dgibi file CONT
  175. *
  176. 'FIN' ;
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  

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