Télécharger elem.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : elem.dgibi
  2. 'OPTI' echo 0 ;
  3. ************************************************************************
  4. ************************************************************************
  5. ************************************************************************
  6. * NOM : ELEM
  7. * DESCRIPTION : Test de verification de l'operateur ELEM
  8. * En particulier l'option APPUYE ELEM qui est nouvelle
  9. *
  10. * LANGAGE : GIBIANE-CAST3M
  11. * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA)
  12. * mel : stephane.gounand@cea.fr
  13. **********************************************************************
  14. * VERSION : v1, 01/08/2025, version initiale
  15. * HISTORIQUE : v1, 01/08/2025, création
  16. * HISTORIQUE :
  17. * HISTORIQUE :
  18. ************************************************************************
  19. *
  20. interact=faux ;
  21. *
  22. lok = vrai ;
  23. *
  24. 'DEBP' egamail mail1*'MAILLAGE' mail2*'MAILLAGE' ;
  25. lega = 'EGA' (nbel ('DIFF' mail1 mail2)) 0 ;
  26. 'FINP' lega ;
  27. *
  28. * Restitue la plus longue en premier
  29. 'DEBP' lis2 n*'ENTIER' ;
  30. 'SI' ('EGA' n (n '/' 2 '*' 2)) ;
  31. 'SI' ('EGA' n 2) ;
  32. l1 = 'LECT' 1 ; l2 = 'LECT' 2 ;
  33. 'SINO' ;
  34. l1 = 'LECT' 1 'PAS' 2 ('-' n 1) ;
  35. l2 = 'LECT' 2 'PAS' 2 n ;
  36. 'FINS' ;
  37. 'SINO' ;
  38. 'SI' ('EGA' n 1) ;
  39. l1 = 'LECT' 1 ;
  40. l2 = 'LECT' ;
  41. 'SINO' ;
  42. l1 = 'LECT' 1 'PAS' 2 n ;
  43. l2 = 'LECT' 2 'PAS' 2 ('-' n 1) ;
  44. 'FINS' ;
  45. 'FINS' ;
  46. 'FINP' l1 l2 ;
  47. *
  48. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  49. 'OPTI' 'DENS' 0.2 ;
  50. *'OPTI' 'DENS' 0.333333 ;
  51. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  52. *
  53. lAB = 'DROI' pA pB ; lBC = 'DROI' pB pC ;
  54. lCD = 'DROI' pC pD ; lDA = 'DROI' pD pA ;
  55. mt = 'DALL' lAB lBC lCD lDA ;
  56. *
  57. nmt = 'NBEL' mt ;
  58. l2 l1 = lis2 nmt ;
  59. mt1 = 'ELEM' mt l1 ; mt2 = 'ELEM' mt l2 ;
  60. mt2n = 'CHAN' mt2 'TRI3' ;
  61. mtn = mt1 'ET' mt2n ;
  62. cmtn = 'CONT' mtn ;
  63. *
  64. * Test 1 : 1 arête du bord : 1 seul element associe
  65. *
  66. are = 'ELEM' cmtn ('/' ('+' ('NBEL' cmtn) 1) 2) ;
  67. eleare = 'ELEM' mtn appuye elements are ;
  68. tst = 'EGA' ('NBEL' eleare) 1 ;
  69. 'SI' ('NON' tst) ; 'MESS' '!!!! erre nb. elem appuye are .neq. 1' ; 'FINS' ;
  70. lok = lok 'ET' tst ;
  71. pare = 'CHAN' are 'POI1' ;
  72. peleare = 'CHAN' eleare 'POI1' ;
  73. pint = 'INTE' pare peleare ;
  74. tst = egamail pint pare ;
  75. 'SI' ('NON' tst) ; 'MESS' '!!!! erre pt. elem appuye are .neq. pt inte' ; 'FINS' ;
  76. lok = lok 'ET' tst ;
  77. *
  78. * Test 2 : 1 arête interne : 2 elements associes
  79. *
  80. aretot = 'CHAN' 'LIGNE' mtn ;
  81. areint = 'DIFF' aretot cmtn ;
  82. areint1 = 'ELEM' areint ('/' ('+' ('NBEL' areint) 1) 2) ;
  83. eleare1 = 'ELEM' mtn appuye elements areint1 ;
  84. tst = 'EGA' ('NBEL' eleare1) 2 ;
  85. 'SI' ('NON' tst) ; 'MESS' '!!!! erre nb. elem appuye areint .neq. 2' ; 'FINS' ;
  86. lok = lok 'ET' tst ;
  87. pareint1 = 'CHAN' areint1 'POI1' ;
  88. peleare1 = 'CHAN' eleare1 'POI1' ;
  89. pint1 = 'INTE' pareint1 peleare1 ;
  90. tst = egamail pint1 pareint1 ;
  91. 'SI' ('NON' tst) ; 'MESS' '!!!! erre pt. elem appuye areint .neq. pt inte' ; 'FINS' ;
  92. lok = lok 'ET' tst ;
  93. *
  94. * Test 3 : 1 bord sans coin de n elements : n elements associes
  95. *
  96. elebas = 'ELEM' mtn appuye elements lAB ;
  97. nelebas = 'NBEL' elebas ;
  98. nlAB = 'NBEL' lAB ;
  99. tst = 'EGA' nelebas nlAB ;
  100. 'SI' ('NON' tst) ; 'MESS' '!!!! erre elem appuye lAB' ; 'FINS' ;
  101. lok = lok 'ET' tst ;
  102. pAB = 'CHAN' lAB 'POI1' ;
  103. pelebas = 'CHAN' elebas 'POI1' ;
  104. pintbas = 'INTE' pAB pelebas ;
  105. tst = egamail pintbas pAB ;
  106. 'SI' ('NON' tst) ; 'MESS' '!!!! erre pt. elem appuye lAB .neq. pt inte' ; 'FINS' ;
  107. lok = lok 'ET' tst ;
  108. *
  109. * Test 3 : n elements quadratiques : n elements lineaire associes
  110. *
  111. mtn3 = 'ELEM' mtn 'TRI3' ; mtn4 = 'DIFF' mtn mtn3 ;
  112. lis3 lis3b = lis2 ('NBEL' mtn3) ;
  113. lis4 lis4b = lis2 ('NBEL' mtn4) ;
  114. *
  115. mtnx = ('ELEM' mtn3 lis3) 'ET' ('ELEM' mtn4 lis4) ;
  116. *
  117. mtnq = 'CHAN' mtn quad ;
  118. mtnq6 = 'ELEM' mtnq 'TRI6' ;
  119. mtnq8 = 'ELEM' mtnq 'QUA8' ;
  120. mtnqx1 = ('ELEM' mtnq6 lis3) 'ET' ('ELEM' mtnq8 lis4) ;
  121. mtnqx2 = 'ELEM' mtnq 'APPU' 'ELEM' mtnx ;
  122. *
  123. tst = egamail mtnqx1 mtnqx2 ;
  124. 'SI' ('NON' tst) ; 'MESS' '!!!! erre elem quad appuye line' ; 'FINS' ;
  125. lok = lok 'ET' tst ;
  126. *
  127. mtnf = 'CHAN' mtnq quaf ;
  128. mtnf7 = 'ELEM' mtnf 'TRI7' ;
  129. mtnf9 = 'ELEM' mtnf 'QUA9' ;
  130. mtnfx1 = ('ELEM' mtnf7 lis3) 'ET' ('ELEM' mtnf9 lis4) ;
  131. mtnfx2 = 'ELEM' mtnf 'APPU' 'ELEM' mtnx ;
  132. *
  133. tst = egamail mtnfx1 mtnfx2 ;
  134. 'SI' ('NON' tst) ; 'MESS' '!!!! erre elem quaf appuye line' ; 'FINS' ;
  135. lok = lok 'ET' tst ;
  136. *
  137. mtnfx3 = 'ELEM' mtnf 'APPU' 'ELEM' mtnqx1 ;
  138. *
  139. tst = egamail mtnfx3 mtnfx2 ;
  140. 'SI' ('NON' tst) ; 'MESS' '!!!! erre elem quaf appuye quad' ; 'FINS' ;
  141. lok = lok 'ET' tst ;
  142. *
  143. *
  144. 'SI' ('NON' lok) ;
  145. 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ;
  146. 'ERREUR' 5 ;
  147. 'SINON' ;
  148. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  149. 'FINSI' ;
  150. *
  151. 'SI' interact ;
  152. 'OPTION' 'ECHO' 1 'DONN' 5 ;
  153. 'FINSI' ;
  154. *
  155. * End of dgibi file ELEM
  156. *
  157. 'FIN' ;
  158.  
  159.  
  160.  

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