Télécharger mat_carrees_exce.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mat_carrees_exce.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************************
  5. ***********************************************************************
  6. ** **
  7. ** **
  8. ** TONUS - multicompartiments **
  9. ** **
  10. ** **
  11. ** Version 0.0 - décembre 95 **
  12. ** **
  13. ** **
  14. ** **
  15. ***********************************************************************
  16. ** **
  17. ** MATRICES ELEMENTAIRES CARREES **
  18. ** (avec pénalisation de la diagonale) **
  19. ** **
  20. ***********************************************************************
  21. * *
  22. * *
  23. * CAS-TEST 1 *
  24. * ------------ *
  25. * *
  26. * 3 compartiments - 2 jonctions *
  27. * *
  28. * *
  29. * *
  30. * 3 *
  31. * O *
  32. * / *
  33. * X (2,3) *
  34. * 2 / *
  35. * O *
  36. * / *
  37. * X (1,2) *
  38. * / *
  39. * 1 0 *
  40. * *
  41. * *
  42. * *
  43. * Conditions aux limites : *
  44. * *
  45. * Injection d'un gaz léger dans le compartiment 1. *
  46. * Sortie libre dans le compartiment 3. *
  47. * Pression atmosphérique dans le compartiment 3. *
  48. * *
  49. * traitement de la condition à la limite en pression par *
  50. * pénalisation *
  51. * *
  52. ***********************************************************************
  53. *
  54. OPTI DIME 2 ELEM SEG2 ;
  55. *
  56. ***********************************************************************
  57. * Description géométrique
  58. ***********************************************************************
  59. *
  60. * Les points centres de gravité des compartiments
  61. *
  62. P1 = 0. 0. ;
  63. P2 = 1. 1. ;
  64. P3 = 2. 2. ;
  65. *
  66. * Les jonctions entre les compartiments
  67. *
  68. L12 = P1 D 1 P2 ;
  69. L23 = P2 D 1 P3 ;
  70. *
  71. THEGEO = L12 ET L23 ;
  72. *
  73. TABDOM = DOMA THEGEO ;
  74. *
  75. ***********************************************************************
  76. *
  77. * coefficient de pénalisation de la diagonale :
  78. *
  79. PENDIA1 = 1.E-13 ;
  80. *
  81. * coefficient de pénalisation pour le traitement de la C.L.
  82. *
  83. XBOUND = 1./PENDIA1 ;
  84. *
  85. ***********************************************************************
  86. *
  87. SUPTOT = MANU 'SUPE' ((TABDOM.SOMMET) ET (TABDOM.CENTRE)) ;
  88. *
  89. ***********************************************************************
  90. *
  91. * Construction de la matrice globale par assemblage de 4 matrices
  92. * élémentaires :
  93. *
  94. ***********************************************************************
  95. *
  96. MATRI1 = MANU 'RIGIDITE' 'TYPE' 'RIGIDITE' SUPTOT
  97. (MOTS 'Q') 'DUAL' (MOTS 'P') 'QUEL'
  98. (PROG 0. 0. 0. -1. 0.)
  99. (PROG 0. 0. 0. 1. -1.)
  100. (PROG 0. 0. 0. 0. 1.)
  101. (PROG 0. 0. 0. 0. 0.)
  102. (PROG 0. 0. 0. 0. 0.) ;
  103. *
  104. MATRI2 = MANU 'RIGIDITE' 'TYPE' 'RIGIDITE' SUPTOT
  105. (MOTS 'P') 'DUAL' (MOTS 'Q') 'QUEL'
  106. (PROG 0. 0. 0. 0. 0.)
  107. (PROG 0. 0. 0. 0. 0.)
  108. (PROG 0. 0. 0. 0. 0.)
  109. (PROG -1. 1. 0. 0. 0.)
  110. (PROG 0. -1. 1. 0. 0.) ;
  111. *
  112. * Pénalisation de la diagonale de la matrice globale
  113. *
  114. MATRI3 = MANU 'RIGIDITE' 'TYPE' 'RIGIDITE' SUPTOT
  115. (MOTS 'P') 'DUAL' (MOTS 'P')
  116. (PROG PENDIA1 0. 0. 0. 0.)
  117. (PROG 0. PENDIA1 0. 0. 0.)
  118. (PROG 0. 0. (XBOUND) 0. 0.)
  119. (PROG 0. 0. 0. PENDIA1 0.)
  120. (PROG 0. 0. 0. 0. PENDIA1) ;
  121. *
  122. MATRI4 = MANU 'RIGIDITE' 'TYPE' 'RIGIDITE' SUPTOT
  123. (MOTS 'Q') 'DUAL' (MOTS 'Q')
  124. (PROG PENDIA1 0. 0. 0. 0.)
  125. (PROG 0. PENDIA1 0. 0. 0.)
  126. (PROG 0. 0. PENDIA1 0. 0.)
  127. (PROG 0. 0. 0. 1. 0.)
  128. (PROG 0. 0. 0. 0. 1.) ;
  129. *
  130. MATRIX = MATRI4 ET MATRI2 ET MATRI1 ET MATRI3 ;
  131. *
  132. *
  133. RHS1 = MANU 'CHPO' ((TABDOM . 'SOMMET') ET (TABDOM.CENTRE))
  134. 2 'P' (PROG -1.2 0. 0. 0. 0.)
  135. 'Q' (PROG 0. 0. 0. 0. 0.)
  136. 'NATURE' 'DISCRET' ;
  137. *
  138. list matrix ;
  139. list rhs1 ;
  140. *
  141. leres1 = RESO MATRIX RHS1 ;
  142. *
  143. list leres1 ;
  144. *
  145. ***********************************************************************
  146. *
  147. * Construction de la matrice globale directement :
  148. *
  149. ***********************************************************************
  150. *
  151. LISTOT1 = PROG PENDIA1 0. 0. 0. 0. 0. 0. -1. 0. 0.
  152. 0. PENDIA1 0. 0. 0. 0. 0. 0. 0. 0.
  153. 0. 0. PENDIA1 0. 0. 0. 0. 1. 0. -1.
  154. 0. 0. 0. PENDIA1 0. 0. 0. 0. 0. 0.
  155. 0. 0. 0. 0. (XBOUND) 0. 0. 0. 0. 1. ;
  156. *
  157. LISTOT1 = LISTOT1 ET
  158. (PROG 0. 0. 0. 0. 0. PENDIA1 0. 0. 0. 0.
  159. 0. 0. 0. 0. 0. 0. PENDIA1 0. 0. 0.
  160. -1. 0. 1. 0. 0. 0. 0. 1. 0. 0.
  161. 0. 0. 0. 0. 0. 0. 0. 0. PENDIA1 0.
  162. 0. 0. -1. 0. 1. 0. 0. 0. 0. 1. ) ;
  163. *
  164. MATOT1 = MANU 'RIGIDITE' 'TYPE' 'RIGIDITE' SUPTOT
  165. (MOTS 'P' 'Q') 'DUAL' (MOTS 'P' 'Q') 'QUEL'
  166. LISTOT1 ;
  167. *
  168. list matot1 ;
  169. *
  170. leres2 = RESO MATOT1 RHS1 ;
  171. *
  172. list leres2 ;
  173. *
  174. *** Test sur les valeurs obtenues ...
  175. *
  176. p4 = (tabdom . CENTRE) poin proc (0.5 0.5) ;
  177. p5 = (tabdom . CENTRE) poin proc (1.5 1.5) ;
  178.  
  179. resu11 = extr leres1 p p1 ;
  180. resu12 = extr leres1 p p2 ;
  181. resu13 = extr leres1 p p3 ;
  182. resu14 = extr leres1 q p4 ;
  183. resu15 = extr leres1 q p5 ;
  184.  
  185. resu21 = extr leres2 p p1 ;
  186. resu22 = extr leres2 p p2 ;
  187. resu23 = extr leres2 p p3 ;
  188. resu24 = extr leres2 q p4 ;
  189. resu25 = extr leres2 q p5 ;
  190.  
  191. valref1 = 2.4 ;
  192. valref2 = 1.2 ;
  193. valref3 = -1.2E-13 ;
  194. valref4 = 1.2 ;
  195. valref5 = 1.2 ;
  196.  
  197. ok = vrai ;
  198.  
  199. si(abs(resu11-valref1) > 1.E-10) ;
  200. ok = faux ;
  201. finsi ;
  202. si(abs(resu21-valref1) > 1.E-10) ;
  203. ok = faux ;
  204. finsi ;
  205.  
  206. si(abs(resu12-valref2) > 1.E-10) ;
  207. ok = faux ;
  208. finsi ;
  209. si(abs(resu22-valref2) > 1.E-10) ;
  210. ok = faux ;
  211. finsi ;
  212.  
  213. si(abs(resu13-valref3) > 1.E-25) ;
  214. ok = faux ;
  215. finsi ;
  216. si(abs(resu23-valref3) > 1.E-25) ;
  217. ok = faux ;
  218. finsi ;
  219.  
  220. si(abs(resu14-valref4) > 1.E-10) ;
  221. ok = faux ;
  222. finsi ;
  223. si(abs(resu24-valref4) > 1.E-10) ;
  224. ok = faux ;
  225. finsi ;
  226.  
  227. si(abs(resu15-valref5) > 1.E-10) ;
  228. ok = faux ;
  229. finsi ;
  230. si(abs(resu25-valref5) > 1.E-10) ;
  231. ok = faux ;
  232. finsi ;
  233.  
  234. si(non ok) ;
  235. erreur 5 ;
  236. finsi ;
  237.  
  238. fin ;
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  

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