Télécharger adchamevol.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : adchamevol.dgibi
  2.  
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. *---------------------------------------------------------------------*
  7. * Cas-test de l'operateur '+' *
  8. * *
  9. * Ce cas-test verifie l'addition de MCHAMLs dont les composantes *
  10. * sont de type EVOLUTIOn. *
  11. * *
  12. *---------------------------------------------------------------------*
  13. * *
  14. * Pour avoir les messages, mettre IMES1 a VRAI : *
  15. IMES1 = FAUX ;
  16. * *
  17. 'OPTI' 'ECHO' 0 ;
  18. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
  19. * *
  20. *---------- Maillage : support geometrique pour les MCHAMLs ----------*
  21. * *
  22. * Je realise un maillage comportant 2 sous-zones : *
  23. P1 = 0. 0. ;
  24. P2 = 1. 0. ;
  25. P3 = 1. 1. ;
  26. P4 = 0. 1. ;
  27. D1 = P1 'DROI' 2 P2 ;
  28. Q1 = D1 'TRAN' 2 P4 ;
  29. T1 = 'MANU' 'TRI3' P3 (0.5 1.5) P4 ;
  30. S1 = Q1 'ET' T1 ;
  31. 'ELIM' S1 1.E-3 ;
  32. * *
  33. * *
  34. * *
  35. *---------- Addition d'un MCHAML d'EVOLUTIOns par lui meme -----------*
  36. * *
  37. *--- 1. MCHAML a une composante : *
  38. * *
  39. * Definition d'une EVOLUTIOn : *
  40. LX1 = 'PROG' 0. 1. 2. ;
  41. LY1 = 'PROG' 2. 3. 5. ;
  42. EV1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
  43. * *
  44. * Modele et MCHAML : *
  45. MOD1 = 'MODE' S1 'THERMIQUE' ;
  46. MAT1 = 'MATE' MOD1 'K' EV1 ;
  47. * *
  48. MAT3 = MAT1 + MAT1 ;
  49. * *
  50. * Verification de l'addition : *
  51. ERR1 = 0. ;
  52. 'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
  53. ERR1 = 1. ;
  54. 'FINS' ;
  55. 'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
  56. ERR1 = ERR1 + 1. ;
  57. 'FINS' ;
  58. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
  59. ERR1 = ERR1 + 1. ;
  60. 'FINS' ;
  61. EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
  62. LX3 = 'EXTR' EVK3 'ABSC' ;
  63. LY3 = 'EXTR' EVK3 'ORDO' ;
  64. ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 + LY1) - LY3)) ;
  65. * *
  66. * *
  67. *--- 2. MCHAML a deux composantes : *
  68. * *
  69. * Definition d'une 2e EVOLUTIOn :
  70. LX2 = LX1 ;
  71. LY2 = LY1 ** 0.5 ;
  72. EV2 = 'EVOL' 'MANU' 'T' LX2 'RHO' LY2 ;
  73. * *
  74. MAT2 = 'MATE' MOD1 'RHO' EV2 'K' EV1 ;
  75. MAT3 = MAT2 + MAT2 ;
  76. * *
  77. * Verification de l'addition :
  78. 'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
  79. ERR1 = ERR1 + 1. ;
  80. 'FINS' ;
  81. 'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 2) ;
  82. ERR1 = ERR1 + 1. ;
  83. 'FINS' ;
  84. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
  85. ERR1 = ERR1 + 1. ;
  86. 'FINS' ;
  87. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K') ;
  88. ERR1 = ERR1 + 1. ;
  89. 'FINS' ;
  90. EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
  91. LX3 = 'EXTR' EVK3 'ABSC' ;
  92. LY3 = 'EXTR' EVK3 'ORDO' ;
  93. EVK4 = 'EXTR' MAT3 'RHO' 1 1 1 ;
  94. LX4 = 'EXTR' EVK4 'ABSC' ;
  95. LY4 = 'EXTR' EVK4 'ORDO' ;
  96. ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 + LY1) - LY3))
  97. + ('MAXI' (LX2 - LX4)) + ('MAXI' ((LY2 + LY2) - LY4)) ;
  98. * *
  99. * *
  100. * *
  101. *---------------- Addition de 2 MCHAMLs d'EVOLUTIOns -----------------*
  102. * *
  103. *--- 1. MCHAMLs a une composante : *
  104. * *
  105. EV2 = 'EVOL' 'MANU' 'T' LX2 'K' LY2 ;
  106. MAT2 = 'MATE' MOD1 'K' EV2 ;
  107. MAT3 = MAT1 + MAT2 ;
  108. * *
  109. * Verification de l'addition : *
  110. 'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
  111. ERR1 = 1. ;
  112. 'FINS' ;
  113. 'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
  114. ERR1 = ERR1 + 1. ;
  115. 'FINS' ;
  116. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
  117. ERR1 = ERR1 + 1. ;
  118. 'FINS' ;
  119. EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
  120. LX3 = 'EXTR' EVK3 'ABSC' ;
  121. LY3 = 'EXTR' EVK3 'ORDO' ;
  122. ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 + LY2) - LY3)) ;
  123. * *
  124. * *
  125. *--- 2. MCHAMLs ayant deux memes composantes : *
  126. * *
  127. EV2 = 'EVOL' 'MANU' 'T' LX2 'RHO' LY2 ;
  128. MAT1 = 'MATE' MOD1 'RHO' EV2 'K' EV1 ;
  129. MAT2 = 'MATE' MOD1 'RHO' (2. * EV2) 'K' (-0.5 * EV1) ;
  130. MAT3 = MAT1 + MAT2 ;
  131. * *
  132. * Verification de l'addition :
  133. 'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
  134. ERR1 = ERR1 + 1. ;
  135. 'FINS' ;
  136. 'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 2) ;
  137. ERR1 = ERR1 + 1. ;
  138. 'FINS' ;
  139. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
  140. ERR1 = ERR1 + 1. ;
  141. 'FINS' ;
  142. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K') ;
  143. ERR1 = ERR1 + 1. ;
  144. 'FINS' ;
  145. EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
  146. LX3 = 'EXTR' EVK3 'ABSC' ;
  147. LY3 = 'EXTR' EVK3 'ORDO' ;
  148. EVK4 = 'EXTR' MAT3 'RHO' 1 1 1 ;
  149. LX4 = 'EXTR' EVK4 'ABSC' ;
  150. LY4 = 'EXTR' EVK4 'ORDO' ;
  151. ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((0.5 * LY1) - LY3))
  152. + ('MAXI' (LX2 - LX4)) + ('MAXI' ((3. * LY2) - LY4)) ;
  153. * *
  154. * *
  155. *--- 3. MCHAMLs ayant trois composantes mais qu'une en commun : *
  156. * *
  157. MAT1 = 'MATE' MOD1 'RHO' 1. 'K' EV1 ;
  158. MAT2 = 'MATE' MOD1 'C' 0.3 'K' (-0.5 * EV1) ;
  159. MAT3 = MAT1 + MAT2 ;
  160. * *
  161. * Verification de l'addition :
  162. 'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
  163. ERR1 = ERR1 + 1. ;
  164. 'FINS' ;
  165. 'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
  166. ERR1 = ERR1 + 1. ;
  167. 'FINS' ;
  168. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
  169. ERR1 = ERR1 + 1. ;
  170. 'FINS' ;
  171. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K') ;
  172. ERR1 = ERR1 + 1. ;
  173. 'FINS' ;
  174. 'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'C') ;
  175. ERR1 = ERR1 + 1. ;
  176. 'FINS' ;
  177. EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
  178. LX3 = 'EXTR' EVK3 'ABSC' ;
  179. LY3 = 'EXTR' EVK3 'ORDO' ;
  180. ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((0.5 * LY1) - LY3)) ;
  181. * *
  182. * *
  183. *-------------------------- Fin des tests ----------------------------*
  184. * *
  185. * Gestion de l'erreur : *
  186. 'SI' ('NEG' ERR1 0.) ;
  187. 'ERRE' 5 ;
  188. 'FINS' ;
  189. * *
  190. * Message de sortie : *
  191. VECH1 = 'VALE' 'ECHO' ;
  192. 'OPTI' 'ECHO' 0 ;
  193. 'SI' IMES1 ;
  194. 'SAUT' 1 'LIGN' ;
  195. 'MESS'
  196. '*** TEST REUSSI ***'
  197. ;
  198. FINS ;
  199. 'OPTI' 'ECHO' VECH1 ;
  200. * *
  201. 'FIN' ;
  202. *---------------------------------------------------------------------*
  203.  
  204.  
  205.  
  206.  
  207.  

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