Télécharger volu.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : volu.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : VOLU
  7. * DESCRIPTION : Cas-test pour l'operateur VOLU.
  8. *
  9. *
  10. * Cas 1 : On cherche à mailler en tétraèdres un cube moins un cylindre.
  11. *
  12. * Avec les paramètres nx = 3 ; rcyl = 0.88 ; ang = 5. ;
  13. * les éléments 118 et 120 ont les mêmes noeuds mais ont
  14. * des orientations opposées.
  15. * Bug corrige avec la fiche 9542
  16. *
  17. * Ameliorations possibles : mettre une batterie de cas problematiques au
  18. * lieu d'un seul.
  19. *
  20. *
  21. * LANGAGE : GIBIANE-CAST3M
  22. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA)
  23. * mél : stephane.gounand@cea.fr
  24. **********************************************************************
  25. * VERSION : v1, 12/09/2017, version initiale
  26. * HISTORIQUE : v1, 12/09/2017, création
  27. * HISTORIQUE :
  28. * HISTORIQUE :
  29. ************************************************************************
  30. *
  31. interact = faux ;
  32. graph = faux ;
  33. *
  34. 'OPTION' 'DIME' 3 'ELEM' 'TET4' ;
  35. 'SI' (interact 'ET' graph) ;
  36. 'OPTI' 'TRAC' open ;
  37. 'FINS' ;
  38. *
  39. * Paramètres : nx : nombre de maille
  40. * rcyl : rayon du cylindre interne
  41. * ang ; rotation du cylindre interne par rapport à son axe
  42. *
  43. nx = 3 ; rcyl = 0.88 ; ang = 5. ;
  44. *
  45. * Maillage de l'enveloppe
  46. *
  47. nx2 = '*' nx 2 ;
  48. mrcyl = ('*' rcyl -1.) ;
  49. pA = rcyl 0. 0. ; pB = 0. rcyl 0. ; pC = mrcyl 0. 0. ;
  50. pD = 0. mrcyl 0. ;
  51. pA pB pC pD = 'TOURNER' pA pB pC pD (0. 0. 0.) (0. 0. 1.) ang ;
  52. pE = 1. -1. 0. ; pF = 1. 1. 0. ; pG = -1. 1. 0. ; pH = -1. -1. 0. ;
  53. *
  54. ctc1 = 'CER3' nx2 pA pB pC ; ctc2 = 'CER3' nx2 pC pD pA ;
  55. cerb = ctc1 'ET' ctc2 ;
  56. carb = 'DROIT' nx pE pF 'DROIT' nx pG 'DROIT' nx pH 'DROIT'
  57. nx pE ;
  58. bas = 'SURFACE' ('ET' carb ('INVERSE' cerb)) 'PLANE' ;
  59. hau cerh carh = 'PLUS' bas cerb carb (0. 0. 2.) ;
  60. suri = 'REGLER' nx cerb cerh ;
  61. sure = 'REGLER' nx carb carh ;
  62. *
  63. * On fait attention à l'orientation (normale rentrante pour env)
  64. *
  65. env = bas 'ET' ('INVE' hau) 'ET' suri 'ET' ('INVE' sure) ;
  66. 'SI' graph ;
  67. 'TRAC' 'CACH' env 'TITR' 'Enveloppe' ;
  68. * vnor = @VISOR ('INVE' env) jaun ;
  69. * 'TRAC' 'CACH' env vnor 'TITR' 'Enveloppe+normalesortante' ;
  70. 'FINS' ;
  71. *
  72. * Maillage volumique
  73. *
  74. 'MESS' 'Appel VOLU' ;
  75. vol = 'VOLU' env ;
  76. 'SAUT' 1 'LIGN' ;
  77. 'MESS' 'Appel VOLU VERB' ;
  78. vol2 = 'VOLU' env 'VERB' ;
  79. *
  80. * Tests divers (consistance...)
  81. *
  82. lok = vrai ;
  83. *
  84. * Le test avec 'DIFF' ne marche pas : les noeuds internes ont des numéros
  85. * différents !
  86. *
  87. ** Identité de vol et vol2
  88. **
  89. *dvol = 'DIFF' vol2 vol ;
  90. *'SI' ('NEG' ('NBEL' dvol) 0) ;
  91. * 'MESS' '!!! maillages differents avec et sans le motcle VERB' ;
  92. * lok = lok 'ET' faux ;
  93. *'FINS' ;
  94. * Identité de vol et vol2
  95. *
  96. dpvol = 'MOIN' vol2 vol ;
  97. mdpvol = 'MAXI' dpvol 'ABS' ;
  98. * Ce test semble strict mais on pense que l'on doit avoir égalité
  99. * stricte des coordonnées (même programme exécutée sauf entrées-sorties)
  100. * Si ca ne marche pas, on pourra mettre ('VALE' 'PREC') a la place.
  101. 'SI' ('>' mdpvol ('VALE' 'PETI')) ;
  102. 'MESS' '!!! maillages differents avec et sans le motcle VERB' ;
  103. lok = lok 'ET' faux ;
  104. 'FINS' ;
  105. * éléments en double
  106. vol3 = 'UNIQ' vol ;
  107. dnod = '-' ('NBEL' vol) ('NBEL' vol3) ;
  108. 'SI' ('>' dnod 0) ;
  109. 'MESS' '!!! elements en double dans vol' ;
  110. lok = lok 'ET' faux ;
  111. 'FINS' ;
  112. * enveloppe identique a l'original
  113. denv = 'DIFF' ('ENVE' vol) env ;
  114. 'SI' ('NEG' ('NBEL' denv) 0) ;
  115. 'MESS' '!!! enveloppe du maillage volu differente de loriginal' ;
  116. lok = lok 'ET' faux ;
  117. 'FINS' ;
  118.  
  119. *
  120. * Test final
  121. *
  122. 'SI' ('NON' lok) ;
  123. 'ERREUR' 5 ;
  124. 'SINON' ;
  125. 'SAUT' 1 'LIGN' ;
  126. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  127. 'FINSI' ;
  128. *
  129. 'SI' interact ;
  130. 'OPTION' 'ECHO' 1 ;
  131. 'OPTION' 'DONN' 5 ;
  132. 'FINSI' ;
  133. *
  134. * End of dgibi file VOLU
  135. *
  136. 'FIN' ;
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  

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