Télécharger konvaxi.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : konvaxi.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. ************************************************************************
  6. **** Finite Volume, "Cell-Centred Formulation". ****
  7. **** 'MODE' 'AXIS' ****
  8. **** We check that 3D axis-symmetrical = 2D 'MODE' 'AXIS' ****
  9. **** Operateurs 'KONV' et ('FIMP' 'VF' 'AXIS) ****
  10. **** ****
  11. **** A. BECCANTINI, LTMF FEBRUARY 2004 ****
  12. ************************************************************************
  13. ************************************************************************
  14. *
  15. GRAPH = FAUX ;
  16. *
  17. **** Nothing from here
  18. *
  19. 'SI' FAUX ;
  20. *
  21. **** Till here
  22. *
  23. 'FINSI' ;
  24.  
  25. *
  26. *****************************
  27. **** QUA4 and TRI3 **********
  28. *****************************
  29. *
  30. * Axi
  31. *
  32. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' ;
  33. *
  34. P1 = 0.9 1.01 ;
  35. P2 = 2.1 0.99 ;
  36. P3 = 3.2 1.01 ;
  37. P6 = 1.1 1.99 ;
  38. P5 = 1.9 1.99 ;
  39. P4 = 3.0 2.01 ;
  40. *
  41. DX = 0.5 ;
  42. *
  43. MAIL = ('MANUEL' 'QUA4' P1 P2 P5 P6) 'ET'
  44. ('MANUEL' 'QUA4' P2 P3 P4 P5) ;
  45. 'SI' GRAPH ;
  46. 'TRACER' MAIL 'TITR' 'Maillage 2D' ;
  47. 'FINSI' ;
  48. *
  49. MODM = 'MODELISER' MAIL 'EULER' ;
  50. TABM = 'DOMA' MODM 'VF' ;
  51. QMAIL = TABM . 'QUAF' ;
  52. PCEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
  53. PCEN2 = 'POIN' 2 (TABM . 'CENTRE') ;
  54. *
  55. * We compute the flux at the interfaces
  56. *
  57. GAMN = 'MANUEL' 'CHPO' (TABM . 'CENTRE') 1 'SCAL' 1.4 ;
  58. RN = 'BRUI' 'BLAN' 'UNIF' 1.0 1.0D-1 (TABM . 'CENTRE') ;
  59. PN = 'BRUI' 'BLAN' 'UNIF' 1.0 1.0D-1 (TABM . 'CENTRE') ;
  60. UX = 'BRUI' 'BLAN' 'UNIF' 0.3 1.0D-1 (TABM . 'CENTRE') ;
  61. UY = 'BRUI' 'BLAN' 'UNIF' 0.3 1.0D-1 (TABM . 'CENTRE') ;
  62. UN = ('NOMC' 'UX' UX) '+' ('NOMC' 'UY' UY) ;
  63. RU = RN '*' UN ;
  64. RECIN = 0.5D0 '*'
  65. ('PSCAL' RU RU ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY')) ;
  66. RECIN = RECIN '/' RN ;
  67. REIN = PN '/' (GAMN '-' 1.0) ;
  68. REN = REIN '+' RECIN ;
  69. *
  70. * UN PN1 = 'PRIM' 'PERFMONO' RN RU REN GAMN ;
  71. * 'LISTE' ('MAXIMUM' (PN '-' PN1) 'ABS') ;
  72. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1 MODM RN UN PN GAMN ;
  73. LISTINCO = ('MOTS' 'RN' 'RUNX' 'RUNY' 'RETN') ;
  74. CHPFLU DT = 'KONV' 'VF' 'PERFMONO' 'FLUX' 'VLH'
  75. MODM ROF VITF PF GAMF LISTINCO ;
  76. RESI DT = 'KONV' 'VF' 'PERFMONO' 'RESI' 'VLH'
  77. MODM ROF VITF PF GAMF LISTINCO ;
  78. GRADP = 'MANUEL' 'CHPO' (TABM . 'CENTRE') 2 'P1DX' 0.0
  79. 'P1DY' 0.0 ;
  80. ALP = 'MANUEL' 'CHPO' (TABM . 'CENTRE') 1 'P1' 0.0 ;
  81. RESIP = 'FIMP' 'VF' 'AXIS' 'RESI' MODM
  82. ('MOTS' 'RN' 'RUNX' 'RUNY' 'RETN') PN GRADP ALP ;
  83. RESI = RESI '+' RESIP ;
  84. * FGEO = (TABM . 'XXSUR2D') '/' (TABM . 'XXVOLUM') ;
  85. * RESI = RESI '+' ('NOMC' 'RUNX' (PN '*' FGEO)) ;
  86. *
  87. *** 3D
  88. *
  89. 'OPTION' 'DIME' 3 'ELEM' 'CUB8' 'MODE' 'PLAN' ;
  90. LISTINC2 = ('MOTS' 'RN' 'RUNX' 'RUNY' 'RUNZ' 'RETN') ;
  91. LISTTH = 'PROG' 10 5 2.5 1.25 ;
  92. LISTER = 'PROG' ;
  93. LISTPRE = 'PROG' ;
  94. LISTRES = 'PROG' ;
  95. 'REPETER' BLTH ('DIME' LISTTH) ;
  96. TH = ('EXTRAIRE' LISTTH &BLTH) ;
  97. SUR1 = MAIL 'TOURNER' (-0.5 * TH)
  98. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  99. SUR2 = MAIL 'TOURNER' (0.5 * TH)
  100. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  101. MAIL2 = 'VOLU' SUR1 1 SUR2 ;
  102. MODM2 = 'MODELISER' MAIL2 'EULER' ;
  103. TABM2 = 'DOMA' MODM2 'VF' ;
  104. QMAIL2 = TABM2 . 'QUAF' ;
  105. NN1 = 'NBNO' ((TABM2 . 'CENTRE') 'ET' (TABM . 'CENTRE')) ;
  106. NN2 = 'NBNO' ((TABM2 . 'FACE') 'ET' (TABM . 'FACE')) ;
  107. 'ELIMINATION' (TABM2 . 'CENTRE') (DX '/' 5) (TABM . 'CENTRE') ;
  108. 'ELIMINATION' (TABM2 . 'FACE') (DX '/' 5) (TABM . 'FACE') ;
  109. NN3 = 'NBNO' ((TABM2 . 'CENTRE') 'ET' (TABM . 'CENTRE')) ;
  110. NN4 = 'NBNO' ((TABM2 . 'FACE') 'ET' (TABM . 'FACE')) ;
  111. 'SI' ((NN1 '-' NN3) 'NEG' 2) ;
  112. 'ERREUR' 'Probleme axi 1' ;
  113. 'FINSI' ;
  114. 'SI' ((NN2 '-' NN4) 'NEG' 7) ;
  115. 'ERREUR' 'Probleme axi 2' ;
  116. 'FINSI' ;
  117. UN2 = UN '+' ('MANUEL' 'CHPO' (TABM2 . 'CENTRE') 1 'UZ' 0.0) ;
  118. RUN2 = RN '*' UN2 ;
  119. * UN PN1 = 'PRIM' 'PERFMONO' RN RUN2 REN GAMN ;
  120. * 'LISTE' ('MAXIMUM' (PN '-' PN1) 'ABS') ;
  121. ROF2 VITF2 PF2 GAMF2 = 'PRET' 'PERFMONO' 1 1 MODM2 RN UN2 PN
  122. GAMN ;
  123. CHPFLU2 DT2 = 'KONV' 'VF' 'PERFMONO' 'FLUX' 'VLH'
  124. MODM2 ROF2 VITF2 PF2 GAMF2 LISTINC2 ;
  125. RESI2 DT2 = 'KONV' 'VF' 'PERFMONO' 'RESI' 'VLH'
  126. MODM2 ROF2 VITF2 PF2 GAMF2 LISTINC2 ;
  127. * Normal orientation is the same???
  128. AA = 'REDU' (TABM2 . 'XXNORMAF') (TABM . 'FACE') ;
  129. ORIENT = 'PSCAL' AA (TABM . 'XXNORMAF') ('MOTS' 'UX' 'UY')
  130. ('MOTS' 'UX' 'UY') ;
  131. * 'LISTE' ORIENT ;
  132. BB = ('REDU' CHPFLU2 (TABM . 'FACE')) '*' ORIENT '/'
  133. ((TH '*' PI) '/' 180.) ;
  134. ERRO = 'MAXIMUM' (BB '-' CHPFLU) 'ABS' ;
  135. LISTER = LISTER 'ET' ('PROG' ERRO) ;
  136. *
  137. * The flux on the FACES not belonging to the 2D
  138. *
  139. AFAC = 'DIFF' (TABM2 . 'FACE') (TABM . 'FACE') ;
  140. NN = 'NBEL' AFAC ;
  141. 'SI' (NN 'NEG' 4) ;
  142. 'ERREUR' 'Probleme axi 3' ;
  143. 'FINSI' ;
  144. *
  145. AFA1 = ('COORDONNEE' 3 AFAC) 'POIN' 'SUPERIEUR' 0.0 ;
  146. AFA2 = ('COORDONNEE' 3 AFAC) 'POIN' 'INFERIEUR' 0.0 ;
  147. NN1 = 'NBNO' AFA1 ;
  148. NN2 = 'NBNO' AFA2 ;
  149. 'SI' (NN1 'NEG' NN2) ;
  150. 'ERREUR' 'Probleme axi 4' ;
  151. 'FINSI' ;
  152. 'DEPLACER' AFA1 'TOURNER' TH
  153. (0.0 0.0 0.0) (0.0 1.0 0.0) ;
  154. AA = AFA1 'ET' AFA2 ;
  155. 'ELIMINATION' AA (DX '/' 10) ;
  156. AA = AFA1 'ET' AFA2 ;
  157. AA = 'CHANGER' AA 'POI1' ;
  158. NN2 = 'NBNO' AA ;
  159. 'SI' (NN1 'NEG' NN2) ;
  160. 'ERREUR' 'Probleme axi 5' ;
  161. 'FINSI' ;
  162. BB = 'REDU' CHPFLU2 AA ;
  163. CC = 'MAXIMUM' BB 'ABS' 'AVEC' ('MOTS' 'RN' 'RUNY' 'RUNZ' 'RETN') ;
  164. 'SI' (CC > 1.0D-6) ;
  165. 'ERREUR' 'Probleme axi 7' ;
  166. 'FINSI' ;
  167. CC = (-1 '*' ('EXCO' BB 'RUNX')) '/' ((TH * PI) '/' 180) ;
  168. POI1 = 'POIN' 1 (('COORDONNEE' 1 AA) 'POIN' 'INFERIEUR' 2.0) ;
  169. POI2 = 'POIN' 1 (('COORDONNEE' 1 AA) 'POIN' 'SUPERIEUR' 2.0) ;
  170. VAL1 = 'EXTRAIRE' CC POI1 'SCAL' ;
  171. VAL2 = 'EXTRAIRE' CC POI2 'SCAL' ;
  172. VAL3 = 'EXTRAIRE' (PN '*' (TABM . 'XXSUR2D')) PCEN1 'SCAL' ;
  173. VAL4 = 'EXTRAIRE' (PN '*' (TABM . 'XXSUR2D')) PCEN2 'SCAL' ;
  174. ERRP = 'MAXIMUM' ('PROG' ((VAL1 '-' VAL3) '/' VAL3)
  175. ((VAL2 '-' VAL4) '/' VAL4)) 'ABS' ;
  176. *
  177. LISTPRE = LISTPRE 'ET' ('PROG' ERRP) ;
  178. *
  179. ERRES = 'MAXIMUM' (RESI2 '-' RESI) 'ABS'
  180. ;
  181. * 'AVEC' ('MOTS' 'RN' 'RUNY' 'RUNZ' 'RETN') ;
  182. LISTRES = LISTRES 'ET' ('PROG' ERRES) ;
  183.  
  184. 'FIN' BLTH ;
  185. *
  186. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  187. (('LOG' LISTER) '/' ('LOG' 10.)) ;
  188. 'SI' GRAPH ;
  189. 'DESSIN' EVERR 'TITR' 'Error on numerical flux' ;
  190. 'FINSI' ;
  191. 'SI' (ERRO > 1.0D-3) ;
  192. 'ERREUR' 'Probleme axi' ;
  193. 'FINSI' ;
  194. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  195. (('LOG' LISTPRE) '/' ('LOG' 10.)) ;
  196. 'SI' GRAPH ;
  197. 'DESSIN' EVERR 'TITR' 'Error on pressure flux' ;
  198. 'FINSI' ;
  199. 'SI' (ERRP > 1.0D-2) ;
  200. 'ERREUR' 'Probleme axi' ;
  201. 'FINSI' ;
  202. EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
  203. (('LOG' LISTRES) '/' ('LOG' 10.)) ;
  204. 'SI' GRAPH ;
  205. 'DESSIN' EVERR 'TITR' 'Error on residuum' ;
  206. 'FINSI' ;
  207. 'SI' (ERRES > 1.0D-2) ;
  208. 'ERREUR' 'Probleme axi' ;
  209. 'FINSI' ;
  210. 'FIN' ;
  211.  
  212.  
  213.  
  214.  
  215.  

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