Télécharger konv_gamma.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : konv_gamma.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************
  5. ***********************************************************
  6. **** APPROCHE VF "Cell-Centred Formulation" pour la ****
  7. **** solution des ****
  8. **** Equations d Euler pour un gaz parfait ****
  9. **** OPERATEURS PRIM, PRET, KONV ****
  10. **** Computation of preconditioned jacobians ****
  11. **** ****
  12. **** Cas gaz monoespece, "calorically perfect" ****
  13. **** ****
  14. **** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2002 ****
  15. ***********************************************************
  16. ***********************************************************
  17.  
  18. 'OPTION' 'DIME' 2 ;
  19. 'OPTION' 'ELEM' QUA4 ;
  20. 'OPTION' 'ECHO' 0 ;
  21. 'OPTION' 'TRAC' 'X' ;
  22.  
  23. *
  24. *** GRAPH
  25. *
  26.  
  27. GRAPH = FAUX ;
  28. * GRAPH = VRAI ;
  29.  
  30. ERRTOL = 1.0D-3 ;
  31.  
  32. ***************************
  33. ***** DOMAINE SPATIAL ****
  34. ***************************
  35.  
  36.  
  37. A0 = 0.0D0 0.0D0;
  38. A1 = 1.0D0 0.0D0;
  39. A2 = 2.0D0 0.0D0;
  40. A3 = 3.0D0 0.0D0;
  41.  
  42. A0A1 = A0 'DROIT' 1 A1;
  43. A1A2 = A1 'DROIT' 1 A2;
  44. A2A3 = A2 'DROIT' 1 A3;
  45.  
  46.  
  47. DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ;
  48. DOM2 = DOM1 'PLUS' (0.0 1.0) ;
  49. DOM3 = DOM2 'PLUS' (0.0 1.0) ;
  50. DOM4 = 'TRANSLATION' A1A2 1 (0.0 1.0) ;
  51. DOM5 = DOM4 'PLUS' (0.0 1.0) ;
  52. DOM6 = DOM5 'PLUS' (0.0 1.0) ;
  53. DOM7 = 'TRANSLATION' A2A3 1 (0.0 1.0) ;
  54. DOM8 = DOM7 'PLUS' (0.0 1.0) ;
  55. DOM9 = DOM8 'PLUS' (0.0 1.0) ;
  56.  
  57.  
  58. DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET'
  59. DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ELIMINATION' 0.0001 ;
  60.  
  61. $DOMTOT = 'MODE' DOMTOT 'EULER' ;
  62. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  63. MDOMTOT = TDOMTOT . 'QUAF' ;
  64. 'ELIM' MDOMTOT 0.0001 ;
  65.  
  66. ***************************************************
  67. ***** Densité, pression, vitesse, gamma ***********
  68. ***************************************************
  69.  
  70. RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
  71. PN0 = 'BRUI' 'BLAN' 'UNIF' 1.234 0.8 ('DOMA' $DOMTOT 'CENTRE') ;
  72. GAMMAN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
  73. 'NATU' 'DISCRET' ;
  74. CSONN = (GAMMAN '*' PN0) '/' RN0 ;
  75. CSONN = 'KOPS' CSONN '**' 0.5 ;
  76. UXN0 = 0.2 * CSONN ;
  77. UYN0 = 0.3 * CSONN ;
  78.  
  79. GN0 = ('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
  80. ('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET') ;
  81.  
  82. ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
  83. RETN0 = 'NOMC' 'SCAL' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN)
  84. 'NATU' 'DISCRET' ;
  85.  
  86. VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
  87.  
  88. ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
  89. ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
  90. ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS' ;
  91.  
  92. 'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
  93. 'MESSAGE' 'Problem 0' ;
  94. 'ERREUR' 5 ;
  95. 'FINSI' ;
  96.  
  97.  
  98. 'SI' GRAPH;
  99. 'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET'
  100. ('DOMA' $DOMTOT 'CENTRE'))
  101. 'TITRE' 'Domaine et centre' ;
  102. 'FINSI' ;
  103.  
  104. VN0 = 'COPIER' VIT ;
  105.  
  106. * Identity matrix
  107.  
  108. NOMDEN = 'RN ' ;
  109. NOMMOX = 'RUXN' ;
  110. NOMMOY = 'RUYN' ;
  111. NOMRET = 'RETN' ;
  112.  
  113. NOMVX = 'RUXN' ;
  114. NOMVY = 'RUYN' ;
  115. NOMP = 'PN' ;
  116.  
  117. LISTCONS = 'MOTS' NOMDEN NOMMOX NOMMOY NOMRET ;
  118. LISTPRIM = 'MOTS' NOMDEN NOMVX NOMVY NOMP ;
  119.  
  120. UN0 = ('NOMC' RN0 NOMDEN 'NATURE' 'DISCRET') 'ET'
  121. ('NOMC' ('MOTS' 'UX' 'UY') GN0 ('MOTS' NOMMOX NOMMOY)
  122. 'NATURE' 'DISCRET') 'ET'
  123. ('NOMC' RETN0 NOMRET 'NATURE' 'DISCRET') ;
  124.  
  125. MATIDE = 'KOPS' 'MATIDE' LISTCONS
  126. ('DOMA' $DOMTOT 'CENTRE') 'MATRIK' ;
  127.  
  128. ERRO = ('MAXIMUM' (UN0 '-' ('KOPS' 'MULT' MATIDE UN0)) 'ABS') ;
  129.  
  130. 'SI' (ERRO > ERRTOL) ;
  131. 'MESSAGE' 'KONV' ;
  132. 'MESSAGE' 'Probleme a!!!' ;
  133. 'ERREUR' 5 ;
  134. 'FINSI' ;
  135.  
  136. *
  137. **** Jacobian CONS/PRIM
  138. *
  139.  
  140. CONSPRIM = 'PRIM' 'CONSPRIM' ('DOMA' $DOMTOT 'CENTRE')
  141. LISTCONS LISTPRIM
  142. RN0 VN0 PN0 GAMMAN ;
  143.  
  144. COEFF = 'BRUI' 'BLAN' 'UNIF' 1.0 0.00001 ('DOMA' $DOMTOT 'CENTRE') ;
  145.  
  146. RN = RN0 * COEFF ;
  147. PN = PN0 * COEFF ;
  148. VN = VN0 * COEFF ;
  149.  
  150. DPRIM = ('NOMC' (RN '-' RN0) NOMDEN) '+'
  151. ('NOMC' (VN '-' VN0) ('MOTS' 'UX' 'UY') ('MOTS' NOMVX NOMVY))
  152. '+' ('NOMC' (PN '-' PN0) NOMP) ;
  153. GN = RN * VN ;
  154. RETN = (('INVERSE' (GAMMAN '-' 1.0)) '*' PN) '+' (0.5 '*' RN '*'
  155. ('PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) ;
  156.  
  157. DCONV = ('NOMC' (RN '-' RN0) NOMDEN) '+'
  158. ('NOMC' (GN '-' GN0) ('MOTS' 'UX' 'UY') ('MOTS' NOMMOX NOMMOY))
  159. '+' ('NOMC' (RETN '-' RETN0) NOMRET) ;
  160.  
  161. DCONV1 = 'KOPS' 'MULT' CONSPRIM DPRIM ;
  162.  
  163. 'REPETER' BL1 ('DIME' LISTCONS) ;
  164. NOMV = 'EXTRAIRE' LISTCONS &BL1 ;
  165. CHPO1 = 'EXCO' DCONV1 NOMV ;
  166. CHPO2 = 'EXCO' DCONV NOMV ;
  167. ERRO = ('MAXIMUM' (CHPO1 '-' CHPO2) 'ABS') '/'
  168. ('MAXIMUM' CHPO1 'ABS') ;
  169. 'SI' (ERRO > 1.0D-5) ;
  170. 'MESSAGE' 'KONV' ;
  171. 'MESSAGE' 'Problem b' ;
  172. 'FINSI' ;
  173. 'FIN' BL1 ;
  174.  
  175. 'FIN' ;
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  

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