Télécharger lapnef2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : lapnef2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. ********************* cas test lapnvf2.dgibi *********************
  6. *
  7. *-----------------------------------------------------------------
  8. * Cas Test pour l'operateur LAPN version EF avec primal<>dual
  9. *-----------------------------------------------------------------
  10. * On cherche la solution stationnaire d'un problème de diffusion
  11. * thermique sur un disque où on impose une température T1 sur le
  12. * disque de rayon r1 et T2 à l'exterieur du disque de rayon r2.
  13. *
  14. * La solution analytique ne dépend que du rayon r, soit :
  15. *
  16. * T2 log (r/r1) - T1 log (r/r2)
  17. * T(r) = -----------------------------
  18. * log r2 - log r1
  19. *
  20. * On complique le pb initial en résolvant en fait
  21. * dD/dt + lapl(T) = 0
  22. * D - T = 0
  23. * afin de tester LAPN et MDIA couplant T et U.
  24. *-----------------------------------------------------------------
  25. * Auteurs : J.CREUZIL et F.DABBENE (TTMF) 12/97
  26. *-----------------------------------------------------------------
  27. *
  28. *- Options
  29. *
  30. 'OPTI' 'DIME' 2 'ELEM' 'TRI3' 'ECHO' 0 ;
  31. 'OPTI' 'TRAC' 'PS' ;
  32. GRAPH = 'N' ;
  33. *
  34. *- Données du problème
  35. *
  36. R1 = 3.0 ; R2 = 9.0 ;
  37. T1 = 200.0 ; T2 = 100.0 ;
  38. *
  39. *- Maillage
  40. *
  41. R0 = R1 - 0.5 ;
  42. R3 = R2 + 0.5 ;
  43. MR0 = -1.D0 * R0 ;
  44. MR1 = -1.D0 * R1 ;
  45. MR2 = -1.D0 * R2 ;
  46. MR3 = -1.D0 * R3 ;
  47. *
  48. PC = 0.0 0.0 ;
  49. P0 = R0 0.0 ;
  50. P1 = R1 0.0 ;
  51. P2 = R2 0.0 ;
  52. P3 = R3 0.0 ;
  53. P4 = 0.0 R0 ;
  54. P5 = 0.0 R1 ;
  55. P6 = 0.0 R2 ;
  56. P7 = 0.0 R3 ;
  57. P8 = MR0 0.0 ;
  58. P9 = MR1 0.0 ;
  59. P10 = MR2 0.0 ;
  60. P11 = MR3 0.0 ;
  61. *
  62. N = 12 ;
  63. N1 = 10 ;
  64. P0P1 = P0 'DROI' 2 P1 ;
  65. P1P2 = P1 'DROI' N P2 ;
  66. P2P3 = P2 'DROI' 2 P3 ;
  67. P4P5 = P4 'DROI' 2 P5 ;
  68. P5P6 = P5 'DROI' N P6 ;
  69. P6P7 = P6 'DROI' 2 P7 ;
  70. P9P8 = P9 'DROI' 2 P8 ;
  71. P10P9 = P10 'DROI' N P9 ;
  72. P11P10 = P11 'DROI' 2 P10;
  73. P5P4 = 'INVE' P4P5 ;
  74. P6P5 = 'INVE' P5P6 ;
  75. P7P6 = 'INVE' P6P7 ;
  76. P4P0 = 'CERC' N1 P4 PC P0 ;
  77. P5P1 = 'CERC' N1 P5 PC P1 ;
  78. P1P5 = 'INVE' P5P1 ;
  79. P2P6 = 'CERC' N1 P2 PC P6 ;
  80. P6P2 = 'INVE' P2P6 ;
  81. P3P7 = 'CERC' N1 P3 PC P7 ;
  82. P8P4 = 'CERC' N1 P8 PC P4 ;
  83. P5P9 = 'CERC' N1 P5 PC P9 ;
  84. P9P5 = 'INVE' P5P9 ;
  85. P6P10 = 'CERC' N1 P6 PC P10;
  86. P10P6 = 'INVE' P6P10 ;
  87. P7P11 = 'CERC' N1 P7 PC P11;
  88. P4P7 = P4P5 'ET' P5P6 'ET' P6P7 ;
  89. M10 = 'DALL' P1P2 P2P6 P6P5 P5P1 ;
  90. 'OPTI' 'ELEM' 'QUA4' ;
  91. M00 = 'DALL' P0P1 P1P5 P5P4 P4P0 ;
  92. M20 = 'DALL' P2P3 P3P7 P7P6 P6P2 ;
  93. M30 = 'DALL' P9P8 P8P4 P4P5 P5P9 ;
  94. M40 = 'DALL' P10P9 P9P5 P5P6 P6P10 ;
  95. M50 = 'DALL' P11P10 P10P6 P6P7 P7P11 ;
  96. M = M00 'ET' M10 'ET' M20 'ET' M30 'ET' M40 'ET' M50 ;
  97. M1 = M00 'ET' M30 ;
  98. M3 = M20 'ET' M50 ;
  99. M2 = M10 'ET' M40 ;
  100. COT1 = 'CONT' M ;
  101. *
  102. *- Tables domaines
  103. *
  104. $M = 'DOMA' M ;
  105. $M1 = 'DOMA' M1 'INCL' $M;
  106. $M2 = 'DOMA' M2 'INCL' $M;
  107. $M3 = 'DOMA' M3 'INCL' $M;
  108. $D1 = 'DOMA' P4P7 'INCL' $M;
  109. *
  110. *- Resolution du probleme
  111. *
  112. CHP1 = 'MANU' 'CHPO' $M1.'SOMMET' 1 'SCAL' T1 ;
  113. CHP2 = 'MANU' 'CHPO' $M3.'SOMMET' 1 'SCAL' T2 ;
  114. CHP3 = 'KCHT' $M 'SCAL' 'SOMMET' 0. CHP1 CHP2 ;
  115. CHP4 = 'MANU' 'CHPO' $M2.'SOMMET' 1 'SCAL' 0. ;
  116. *
  117. RV = 'EQEX' $M 'ITMA' 10
  118. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  119. 'ZONE' $M 'OPER' 'DFDT' 1.D0 'DNM' 'DT' 'INCO' 'DN' 'DN'
  120. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  121. 'ZONE' $M 'OPER' 'LAPN' 'DIFF' 'INCO' 'CN' 'DN'
  122. ;
  123. RV = 'EQEX' RV
  124. 'OPTI' 'EFM1' 'IMPL' 'CENTREE'
  125. 'ZONE' $M 'OPER' 'MDIA' 1.D0 'INCO' 'DN' 'CN'
  126. 'OPTI' 'EFM1' 'IMPL' 'CENTREE'
  127. 'ZONE' $M 'OPER' 'MDIA' -1.D0 'INCO' 'CN' 'CN'
  128. ;
  129. RV = 'EQEX' RV
  130. 'CLIM' 'DN' 'TIMP' $M1.'SOMMET' T1
  131. 'CLIM' 'DN' 'TIMP' $M3.'SOMMET' T2
  132. ;
  133. RV . 'INCO' = TABLE 'INCO' ;
  134. RV . 'INCO' . 'CN' = 'KCHT' $M 'SCAL' 'SOMMET' 1. ;
  135. RV . 'INCO' . 'DNM' = 'KCHT' $M 'SCAL' 'SOMMET' 1. ;
  136. RV . 'INCO' . 'DN' = 'KCHT' $M 'SCAL' 'SOMMET' 1. ;
  137. RV . 'INCO' . 'DIFF' = 'KCHT' $M 'SCAL' 'CENTRE' 2. ;
  138. RV . 'INCO' . 'DT' = 20. ;
  139. *
  140. EXEC RV ;
  141. *
  142. *- Solution analytique
  143. *
  144. XC YC = 'COOR' $M.'SOMMET' ;
  145. SOL0 = 'LOG' ( R1 / R2 ) ;
  146. SOL1 = 'LOG' ( R1 ** T2 / (R2 ** T1)) ;
  147. RC = XC*XC + (YC*YC) ** 0.5 ;
  148. SS1 = 'MANU' 'CHPO' $M.'SOMMET' 1 'SCAL' (SOL1 / SOL0) ;
  149. SS2 = (T1 - T2) / SOL0 * (LOG RC) ;
  150. SS4 = 'MANU' 'CHPO' $M1.'SOMMET' 1 'SCAL' T1 ;
  151. SS5 = 'MANU' 'CHPO' $M3.'SOMMET' 1 'SCAL' T2 ;
  152. SS3 = 'KCHT' $M 'SCAL' 'SOMMET' (SS2 + SS1) SS4 SS5 ;
  153. *
  154. *- Tracé des résultats
  155. *
  156. ERR1 = 'ABS' ((RV.INCO.'CN') - SS3) ;
  157. 'SI' ('NEG' GRAPH 'N') ;
  158. 'TITR' 'Solution (coupe)' ;
  159. EV1 = 'EVOL' 'CHPO' SS3 P4P7 ;
  160. 'DESS' EV1 ;
  161. 'TRAC' $M.MAILLAGE (RV.INCO.'CN') 'TITR' 'Solution' ;
  162. 'TRAC' $M.MAILLAGE (RV.INCO.'DN') 'TITR' 'Solution 2' ;
  163. 'TRAC' $M.MAILLAGE ERR1 'TITR' 'Erreur relative' ;
  164. 'FINSI' ;
  165. *
  166. *- Gestion des erreurs
  167. *
  168. MAXE1 = 'MAXI' ERR1 ;
  169. 'MESS' 'Erreur Absolue : ' MAXE1 ;
  170. 'SI' (MAXE1 '>' 2.5E-2) ;
  171. 'ERRE' 5 ;
  172. 'SINO' ;
  173. 'ERRE' 0 ;
  174. 'FINS' ;
  175. *
  176. FIN;
  177.  
  178.  
  179.  
  180.  
  181.  

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