Télécharger test_et.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : test_et.dgibi
  2. interact = vrai ;
  3. ************************************************************************
  4. * NOM : test_et.dgibi
  5. * DESCRIPTION : test le bon fonctionnement de l'opérateur 'ET'
  6. *
  7. * LANGAGE : GIBIANE-CAST3M
  8. * AUTEUR : Pascal Maugis (CEA/DSM/LSCE)
  9. * mail : pmaugis@cea.fr
  10. ************************************************************************
  11. * VERSION : v1, 10/05/2007, version initiale
  12. * HISTORIQUE : v1, 10/05/2007, création
  13. * HISTORIQUE :
  14. * HISTORIQUE :
  15. ************************************************************************
  16. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  17. * en cas de modification de ce sous-programme afin de faciliter
  18. * la maintenance !
  19. ************************************************************************
  20. *
  21. *
  22. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
  23. 'SI' ('NON' interact) ;
  24. 'OPTION' 'TRAC' 'PS' ;
  25. 'SINON' ;
  26. 'OPTION' 'TRAC' 'X' ;
  27. 'FINSI' ;
  28.  
  29. * Créer un LISTREEL
  30. 'LISTE' (('PROG' 0) 'ET' ('PROG' 1)) ;
  31. *'LISTE' (('PROG' 0) 'ET' 1.) ;
  32. *'LISTE' (0. 'ET' ('PROG' 1)) ;
  33. *'LISTE' (0. 'ET' 1.) ;
  34. *'LISTE' (0 'ET' ('PROG' 1)) ;
  35. *'LISTE' (('PROG' 0) 'ET' 1) ;
  36.  
  37. * Créer un LISTENTI
  38. 'LISTE' (('LECT' 0) 'ET' ('LECT' 1)) ;
  39. *'LISTE' (('LECT' 0) 'ET' 1) ;
  40. *'LISTE' (0 'ET' ('LECT' 1)) ;
  41. *'LISTE' (0 'ET' 1) ;
  42.  
  43. * Créer un LISTCHPO
  44. stop;
  45. ch1 = 'MANU' 'CHPO' ((0 0) 'ET' (1 1)) 1 'SCAL' 2. 'NATURE' 'DISCRET' ;
  46. ch2 = ch1 + 1. ;
  47. ch3 = ch1 'ET' ch2 ;
  48. 'LISTE' ('SUITE' 'CHPOINT' ch1) ;
  49. 'LISTE' (('SUITE' 'CHPOINT' ch1) 'ET' ('SUITE' 'CHPOINT' ch2));
  50. *'LISTE' (('SUITE' 'CHPOINT' ch1) 'ET' ch2);
  51. *'LISTE' (ch1 'ET' ('SUITE' 'CHPOINT' ch2));
  52.  
  53. * Deux maillages simples
  54. * ----------------------
  55. p1 = 0 0;
  56. p2 = 1 1;
  57. p3 = 1 1;
  58. p4 = 1 0 ;
  59.  
  60. * ET ne respecte pas l'ordre d'adjonction des maillages
  61. * le 2e segment est bien en 2e.
  62. m1 = ('MANU' 'SEG2' p1 p2) 'ET' ('MANU' 'SEG2' p2 p3) ;
  63. 'LISTE' m1 ;
  64.  
  65. * d'une façon générale, le segment créant la continuité passe en premier
  66. m2 = m1 'ET' ('MANU' 'SEG2' p4 p1) ;
  67. 'LISTE' m2 ;
  68.  
  69. * sauf si mot-clef 'TELQUEL'
  70. m2 = m1 'ET' ('MANU' 'SEG2' p4 p1) 'TELQUEL' ;
  71. 'LISTE' m2 ;
  72. 'SI' (('NBEL' ('DIFF' ('ELEM' m1 1) ('ELEM' m2 1))) 'EGA' 0) ;
  73. 'ERREUR' 0;
  74. 'SINON' ;
  75. 'ERREUR' 5 ;
  76. 'FINSI' ;
  77.  
  78. * Un maillage complexe
  79. * --------------------
  80. * a) avec possibilité de continuité de parcours
  81. m3 = m1 'ET' ('MANU' 'TRI3' p1 p2 p3) ;
  82. m4 = 'MANU' 'SEG2' p4 p1 ;
  83. * sans 'TELQ', préséance de la continuité de parcours
  84. t1 = 'ELEM' (m3 'ET' m4) 'SEG2' ;
  85. 'LISTE' t1 ;
  86. t1 = 'ELEM' (m4 'ET' m3) 'SEG2' ;
  87. 'LISTE' t1 ;
  88. * avec 'TELQ' l'ordre des opérandes est respecté
  89. t1 = 'ELEM' (m3 'ET' m4 'TELQUEL') 'SEG2' ;
  90. 'LISTE' t1 ;
  91. 'SI' (('NBEL' ('DIFF' ('ELEM' t1 1) ('ELEM' m1 1))) 'EGA' 0) ;
  92. 'ERREUR' 0;
  93. 'SINON' ;
  94. 'ERREUR' 5 ;
  95. 'FINSI' ;
  96.  
  97. * b) sans continuité de parcours possible
  98. * sans 'TELQ', le maillage complexe passe toujours en premier
  99. * le résultat est invariablement la fraction SEG2 du maillage complexe,
  100. * puis le maillage simple.
  101. m5 = 'MANU' 'SEG2' (3 2) (2 3) ;
  102. t1 = 'ELEM' (m3 'ET' m5) 'SEG2' ;
  103. 'LISTE' t1 ;
  104. t2 = 'ELEM' (m5 'ET' m3) 'SEG2' ;
  105. 'LISTE' t2 ;
  106. * on vérifie la compatibilité descendante
  107. 'SI' (('NBEL' ('DIFF' ('ELEM' t1 1) ('ELEM' t2 1))) 'EGA' 0) ;
  108. 'ERREUR' 0;
  109. 'SINON' ;
  110. 'ERREUR' 5 ;
  111. 'FINSI' ;
  112.  
  113. 'FIN' ;
  114.  
  115.  
  116.  
  117.  

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