Télécharger konv_fmm_test2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : konv_fmm_test2.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************************
  5. * *
  6. * 'KONV' OPERATOR *
  7. * FREE MATRIX METHOD implicitation. *
  8. * *
  9. * VF "cell-centered" discretization of the Euler equations. *
  10. * Unknowns : U (density, momentum, total energy per volume unity *
  11. * (conservative variables)) *
  12. * In the i-th cell we have to compute *
  13. * *
  14. * (U_i^{n+1} - U_i^{n}) * AN_i(U^{n}) = *
  15. * RES_i(U^{n}) + BN_i(U^{n}) - BN_i(U_i^{n+1}) *
  16. * *
  17. * In this test case we compute AN et BN in a particular 1D case. *
  18. * *
  19. * A. Beccantini *
  20. * SFME/LTMF *
  21. * 03/05/01 *
  22. ***********************************************************************
  23. *
  24. ******************
  25. **** MAILLAGE ****
  26. ******************
  27.  
  28. TYEL = 'QUA4' ;
  29.  
  30. 'OPTION' 'DIME' 2 'ELEM' TYEL 'ISOV' 'SULI'
  31. 'ECHO' 1 'TRAC' 'X' ;
  32.  
  33. GRAPH = VRAI ;
  34. GRAPH = FAUX ;
  35.  
  36. *
  37. *
  38. *
  39.  
  40. RAF = 1 ;
  41.  
  42. NX = 1 ;
  43. NY = 1 ;
  44. DX = 0.5 ;
  45.  
  46. A0 = 0. 0. ;
  47. A1 = 0.5 0. ;
  48. A2 = 0.5 0.5 ;
  49. A3 = 0. 0.5 ;
  50.  
  51. *
  52. **** LIGB
  53. *
  54.  
  55. LIGB= A0 'DROIT' NX A1 ;
  56.  
  57. *
  58. **** LIGH
  59. *
  60.  
  61. LIGH = A3 'DROIT' NX A2 ;
  62.  
  63. *
  64. **** DOMINT
  65. *
  66.  
  67. DOMINT = LIGH 'REGLER' NY LIGB ;
  68. LIGCON = 'CONTOUR' DOMINT ;
  69.  
  70. *
  71. *** LIGG
  72. *
  73.  
  74. LIGG = LIGCON 'ELEM' 'COMP' A0 A3 ;
  75.  
  76. *
  77. **** LIGD
  78. *
  79.  
  80. LIGD = LIGCON 'ELEM' 'COMP' A2 A1 ;
  81.  
  82. FROD = LIGD 'TRANSLATION' 1 (DX 0.0) ;
  83. FROG = LIGG 'TRANSLATION' 1 ((-1.0 '*' DX) 0.0) ;
  84.  
  85. * DOMTOT = total region
  86.  
  87. DOMTOT = DOMINT 'ET' FROD 'ET' FROG ;
  88. 'ELIMINATION' (1.0D-3 '/' RAF) DOMTOT ;
  89.  
  90. *
  91. **** Creation of DOMAINE tables via the MODEL object
  92. *
  93.  
  94.  
  95. $DOMTOT = 'MODELISER' DOMTOT 'EULER' ;
  96. $DOMINT = 'MODELISER' DOMINT 'EULER' ;
  97. $FROD = 'MODELISER' FROD 'EULER' ;
  98. $FROG = 'MODELISER' FROG 'EULER' ;
  99. $LIGG = 'MODELISER' LIGG 'EULER' ;
  100. $LIGD = 'MODELISER' LIGD 'EULER' ;
  101.  
  102. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  103. TDOMINT = 'DOMA' $DOMINT 'VF' ;
  104. TFROD = 'DOMA' $FROD 'VF' ;
  105. TFROG = 'DOMA' $FROG 'VF' ;
  106. TLIGG = 'DOMA' $LIGG 'VF' ;
  107. TLIGD = 'DOMA' $LIGD 'VF' ;
  108.  
  109. QDOMTOT = TDOMTOT . 'QUAF' ;
  110. QDOMINT = TDOMINT . 'QUAF' ;
  111. QFROD = TFROD . 'QUAF' ;
  112. QFROG = TFROG . 'QUAF' ;
  113. QLIGG = TLIGG . 'QUAF' ;
  114. QLIGD = TLIGD . 'QUAF' ;
  115.  
  116.  
  117. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QDOMINT ;
  118. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROD ;
  119. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROG ;
  120. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGD ;
  121. 'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGG ;
  122. *
  123. **** SEG2 mesh for BC
  124. *
  125.  
  126. ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' $LIGD 'CENTRE')) ;
  127. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  128. ELP1 ;
  129. ELTFRO = 'ELEM' ('DOMA' $FROD 'FACEL') 'APPUYE' 'LARGEMENT'
  130. ELP1 ;
  131. P1 = 'POIN' 1 ELTINT ;
  132. P2 = 'POIN' 1 ELTFRO ;
  133. COND = 'MANUEL' 'SEG2' P1 P2 ;
  134.  
  135. NBL1 = ('NBNO' ('DOMA' $LIGD 'CENTRE')) '-' 1 ;
  136. 'SI' (NBL1 > 0) ;
  137. 'REPETER' BL1 NBL1 ;
  138. ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
  139. ('DOMA' $LIGD 'CENTRE')) ;
  140. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  141. ELP1 ;
  142. ELTFRO = 'ELEM' ('DOMA' $FROD 'FACEL') 'APPUYE' 'LARGEMENT'
  143. ELP1 ;
  144. P1 = 'POIN' 1 ELTINT ;
  145. P2 = 'POIN' 1 ELTFRO ;
  146. COND = COND 'ET' ('MANUEL' 'SEG2' P1 P2) ;
  147. 'FIN' BL1 ;
  148. 'FINSI' ;
  149.  
  150. COND = COND 'COULEUR' 'ROUG' ;
  151.  
  152. ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' $LIGG 'CENTRE')) ;
  153. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  154. ELP1 ;
  155. ELTFRO = 'ELEM' ('DOMA' $FROG 'FACEL') 'APPUYE' 'LARGEMENT'
  156. ELP1 ;
  157. P1 = 'POIN' 1 ELTINT ;
  158. P2 = 'POIN' 1 ELTFRO ;
  159. CONG = 'MANUEL' 'SEG2' P1 P2 ;
  160.  
  161. 'SI' (NBL1 > 0) ;
  162. NBL1 = ('NBNO' ('DOMA' $LIGG 'CENTRE')) '-' 1 ;
  163. 'REPETER' BL1 NBL1 ;
  164. ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
  165. ('DOMA' $LIGG 'CENTRE')) ;
  166. ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
  167. ELP1 ;
  168. ELTFRO = 'ELEM' ('DOMA' $FROG 'FACEL') 'APPUYE' 'LARGEMENT'
  169. ELP1 ;
  170. P1 = 'POIN' 1 ELTINT ;
  171. P2 = 'POIN' 1 ELTFRO ;
  172. CONG = CONG 'ET' ('MANUEL' 'SEG2' P1 P2) ;
  173. 'FIN' BL1 ;
  174. 'FINSI' ;
  175.  
  176. CONG = CONG 'COULEUR' 'ROUG' ;
  177.  
  178. 'SI' GRAPH ;
  179. 'TRACER' (DOMTOT 'ET' COND 'ET' CONG) 'TITRE'
  180. 'Domaine total' ;
  181. 'FINSI' ;
  182.  
  183. *****************************************************
  184. *****************************************************
  185. ******* Initial conditions **************************
  186. *****************************************************
  187. *****************************************************
  188.  
  189. *
  190.  
  191. ***************************************************************
  192. ***** PROCEDURE POUR CALCULER LES VARIABLES CONSERVATIVES *****
  193. ***************************************************************
  194.  
  195. 'DEBPROC' CONS ;
  196. 'ARGUMENT' RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ;
  197.  
  198. RVN = RN '*' VN ('MOTS' 'SCAL' 'SCAL') ('MOTS' 'UX' 'UY')
  199. ('MOTS' 'UX' 'UY') ;
  200. CELL = 'PSCAL' RVN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
  201. RECIN = 0.5 '*' CELL ;
  202. REIN = PN '/' (GAMN '-' 1.0) ;
  203. RETN = RECIN '+' REIN ;
  204.  
  205. DETR CELL ;
  206. DETR RECIN ;
  207. DETR REIN ;
  208. 'RESPRO' RVN RETN ;
  209.  
  210. 'FINPROC' ;
  211.  
  212. ***************************************************************
  213. ***************************************************************
  214. ***************************************************************
  215.  
  216. GAMAIR = 1.4 ;
  217.  
  218.  
  219. RN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
  220. 'NATURE' 'DISCRET') ;
  221.  
  222. VN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 2 'UX' 0.5
  223. 'UY' 0.0 'NATURE' 'DISCRET') ;
  224.  
  225. PN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 4.0
  226. 'NATURE' 'DISCRET') ;
  227.  
  228. GAMN = 'MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' GAMAIR
  229. 'NATURE' 'DISCRET' ;
  230.  
  231. GN0 RETN0 = CONS RN0 VN0 PN0 GAMN ;
  232.  
  233. VN1 PN1 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMN ;
  234.  
  235. ERRO = 'MAXIMUM' (PN1 '-' PN0) 'ABS' ;
  236.  
  237. 'SI' (ERRO > 1.0D-6) ;
  238. 'MESSAGE' 'Problem in the ic file!!!'
  239. 'ERREUR' 5 ;
  240. 'FINSI' ;
  241.  
  242. *
  243. **** Plot of IC
  244. *
  245.  
  246. MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE' ) 'THERMIQUE';
  247.  
  248. 'SI' GRAPH ;
  249.  
  250. CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN0 ;
  251. CHM_PN = 'KCHA' $DOMTOT 'CHAM' PN0 ;
  252. CHM_VN = 'KCHA' $DOMTOT 'CHAM' VN0 ;
  253.  
  254. 'TRACER' CHM_RN MOD1
  255. 'TITR' ('CHAINE' 'RN at t=' 0.0);
  256. 'TRACER' CHM_PN MOD1
  257. 'TITR' ('CHAINE' 'PN at t=' 0.0);
  258. 'TRACER' CHM_VN MOD1
  259. 'TITR' ('CHAINE' 'VN at t=' 0.0);
  260.  
  261. 'FINSI' ;
  262.  
  263. MOTRN = 'RN' ;
  264. MOTRNX = 'RUX' ;
  265. MOTRNY = 'RUY' ;
  266. MOTRETN = 'RETN' ;
  267. LISTINCO = 'MOTS' MOTRN MOTRNX MOTRNY MOTRETN ;
  268.  
  269. *********************************************************************
  270. ********************** TEST *****************************************
  271. *********************************************************************
  272.  
  273. ZERO = 1.0D-8 ;
  274. SAFFAC = 10. ;
  275. PINT = 'POIN' 1 ('DOMA' $DOMINT 'CENTRE') ;
  276.  
  277. cson = 2. ;
  278. sigmaf = cson '+' 0.5 ;
  279. rsurf = 0.5 ;
  280. rvolu = 0.25 ;
  281. rdia = 0.5 ;
  282. deltat = saffac '*' 0.5 '*' (rdia '/' sigmaf) ;
  283.  
  284. ani = ((1. '/' deltat) '+' ((rsurf '/' rvolu) '*' sigmaf)) ;
  285. ani = ani '+' ((rsurf '/' rvolu) '*' cson) ;
  286.  
  287. *
  288.  
  289. ANINT = 'MANUEL' 'CHPO' ('DOMA' $DOMINT 'CENTRE') 1 'SCAL' ani ;
  290.  
  291. ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
  292. $DOMTOT RN0 VN0 PN0 GAMN ;
  293.  
  294. ANI1 = 'KONV' 'VF' 'PMONOFMM' 'AN' LISTINCO
  295. $DOMTOT RN0 GN0 RETN0 GAMN SAFFAC ;
  296.  
  297.  
  298. ERRO = 'MAXIMUM' ('REDU' ('ABS' (ANINT '-' ANI1))
  299. ('DOMA' $DOMINT 'CENTRE')) ;
  300.  
  301. 'SI' (ERRO > ZERO) ;
  302. 'MESSAGE' 'Probleme en KONV' ;
  303. 'ERREUR' 5 ;
  304. 'FINSI' ;
  305.  
  306. BNI1 = 'KONV' 'VF' 'PMONOFMM' 'BN' LISTINCO
  307. $DOMTOT RN0 GN0 RETN0 GAMN ;
  308.  
  309. ro = 'EXTRAIRE' RN0 'SCAL' PINT ;
  310. roux = 'EXTRAIRE' GN0 'UX' PINT ;
  311. rouy = 'EXTRAIRE' GN0 'UY' PINT ;
  312. retn = 'EXTRAIRE' RETN0 'SCAL' PINT ;
  313.  
  314. bcel = -1 '*' (sigmaf * rsurf '/' rvolu) ;
  315. bcel = bcel '-' (cson * rsurf '/' rvolu) ;
  316.  
  317. bn1 = bcel * ro ;
  318. bn2 = bcel * roux ;
  319. bn3 = bcel * rouy ;
  320. bn4 = bcel * retn ;
  321.  
  322. bna1 = 'EXTRAIRE' BNI1 'RN' PINT ;
  323. bna2 = 'EXTRAIRE' BNI1 'RUX' PINT ;
  324. bna3 = 'EXTRAIRE' BNI1 'RUY' PINT ;
  325. bna4 = 'EXTRAIRE' BNI1 'RETN' PINT ;
  326.  
  327. ERRO = 'MAXIMUM' ('ABS' ('PROG' (bn1 '-' bna1) (bn2 '-' bna2)
  328. (bn3 '-' bna3) (bn4 '-' bna4))) ;
  329.  
  330. 'SI' (ERRO > ZERO) ;
  331. 'MESSAGE' 'Probleme en KONV' ;
  332. 'ERREUR' 5 ;
  333. 'FINSI' ;
  334.  
  335. 'FIN' ;
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  

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