Télécharger vahldavis3D.dgibi

Retour à la liste

Numérotation des lignes :

  1. *****************************************************
  2. ************************************************************************
  3. ************************************************************************
  4. * fichier : vahldavis3D.dgibi *
  5. ** modifie le 15/06/2014 passage EQPR -> EQEX *
  6. *****************************************************
  7.  
  8. GRAPH = FAUX ;
  9. NITER = 250 ;
  10. CFL = 0.9 ;
  11. DISCR='MACRO';
  12. KPRESS='CENTRE';
  13. BETA=1.;
  14. BETA = 100. ;
  15.  
  16. ************************
  17. * CAVITE CARREE 3D *
  18. * Paillere TTMF Dec 97 *
  19. ************************
  20.  
  21. ******************************
  22. *ESTIMATION DE LA CONVERGENCE*
  23. ******************************
  24.  
  25. DEBPROC CALCUL;
  26. ARGU RVX*'TABLE';
  27.  
  28. RV = RVX.'EQEX';
  29.  
  30. DD = RV.PASDETPS.'NUPASDT';
  31. NN = DD/5;
  32. LO = (DD-(5*NN)) EGA 0;
  33.  
  34. SI (LO);
  35.  
  36. UN = RV.INCO.'UN';
  37. UNM1 = RV.INCO.'UNM1';
  38.  
  39. unx = kcht $MT scal sommet (exco 'UX' un);
  40. unm1x = kcht $MT scal sommet (exco 'UX' unm1);
  41. uny = kcht $MT scal sommet (exco 'UY' un);
  42. unm1y = kcht $MT scal sommet (exco 'UY' unm1);
  43. unz = kcht $MT scal sommet (exco 'UZ' un);
  44. unm1z = kcht $MT scal sommet (exco 'UZ' unm1);
  45.  
  46. ERRX = KOPS unx '-' unm1x;
  47. ERRY = KOPS uny '-' unm1y;
  48. ERRZ = KOPS unz '-' unm1z;
  49. ELIX = MAXI ERRX 'ABS';
  50. ELIY = MAXI ERRY 'ABS';
  51. ELIZ = MAXI ERRZ 'ABS';
  52. ELIX = (LOG (ELIX + 1.0E-10))/(LOG 10.);
  53. ELIY = (LOG (ELIY + 1.0E-10))/(LOG 10.);
  54. ELIZ = (LOG (ELIZ + 1.0E-10))/(LOG 10.);
  55. MESSAGE 'ITER' RV.PASDETPS.'NUPASDT' 'ERREUR LINF' ELIX ELIY ELIZ ;
  56. RV.INCO.'UNM1' = KCHT $MT 'VECT' 'SOMMET' (RV.INCO.'UN');
  57. IT = PROG RV.PASDETPS.'NUPASDT';
  58. ERX = PROG ELIX ;
  59. ERY = PROG ELIY ;
  60. ERZ = PROG ELIZ ;
  61. RV.INCO.'IT' = (RV.INCO.'IT') ET IT ;
  62. RV.INCO.'ERX' = (RV.INCO.'ERX') ET ERX ;
  63. RV.INCO.'ERY' = (RV.INCO.'ERY') ET ERY ;
  64. RV.INCO.'ERZ' = (RV.INCO.'ERZ') ET ERZ ;
  65.  
  66. FINSI;
  67. as2 ama1 = 'KOPS' 'MATRIK' ;
  68. FINPROC as2 ama1 ;
  69.  
  70. ************
  71. * MAILLAGE *
  72. ************
  73.  
  74. OPTI ELEM CU20 ;
  75.  
  76. NX = 4 ;
  77. NY = 2 ;
  78. NZ = 4 ;
  79.  
  80. A1 = 0.0 0.0 0.0 ;
  81. A2 = 1.0 0.0 0.0 ;
  82. A3 = 1.0 0.4 0.0 ;
  83. A4 = 0.0 0.4 0.0 ;
  84. B1 = 0.0 0.0 1.0 ;
  85. B2 = 1.0 0.0 1.0 ;
  86. B3 = 1.0 0.4 1.0 ;
  87. B4 = 0.0 0.4 1.0 ;
  88.  
  89. BAS = 'DALLER' (A1 D NX A2) (A2 D NY A3) (A3 D NX A4)
  90. (A4 D NY A1) 'PLAN' ;
  91. HAU = 'DALLER' (B1 D NX B2) (B2 D NY B3) (B3 D NX B4)
  92. (B4 D NY B1) 'PLAN' ;
  93. DRO = 'DALLER' (A2 D NY A3) (A3 D NZ B3) (B3 D NY B2)
  94. (B2 D NZ A2) 'PLAN' ;
  95. GAU = 'DALLER' (A1 D NY A4) (A4 D NZ B4) (B4 D NY B1)
  96. (B1 D NZ A1) 'PLAN' ;
  97. DEV = 'DALLER' (A1 D NX A2) (A2 D NZ B2) (B2 D NX B1)
  98. (B1 D NZ A1) 'PLAN' ;
  99. DER = 'DALLER' (A4 D NX A3) (A3 D NZ B3) (B3 D NX B4)
  100. (B4 D NZ A4) 'PLAN' ;
  101.  
  102. BAS = BAS COUL TURQ ;
  103. HAU = HAU COUL TURQ ;
  104. DRO = DRO COUL BLEU ;
  105. GAU = GAU COUL ROUG ;
  106. DEV = DEV COUL VERT ;
  107. DER = DER COUL VERT ;
  108.  
  109. V1 = 0.0 0.0 1.0 ;
  110. MT = BAS 'VOLU' NZ 'TRAN' V1 ;
  111. MMT= CHAN MT QUAF ;
  112.  
  113. Mbas = chan bas quaf ;
  114. Mhau = chan hau quaf ;
  115. Mdro = chan dro quaf ;
  116. Mgau = chan gau quaf ;
  117. Mdev = chan dev quaf ;
  118. Mder = chan der quaf ;
  119.  
  120. elim (MMT et Mbas et Mhau et Mdro et Mgau et Mdev et Mder) 0.001;
  121.  
  122. $MT = 'MODE' MMT 'NAVIER_STOKES' DISCR ;
  123. MT = DOMA $MT MAILLAGE ;
  124. $HAU = 'MODE' MHAU 'NAVIER_STOKES' DISCR ;
  125. HAU = DOMA $HAU MAILLAGE ;
  126. $BAS = 'MODE' MBAS 'NAVIER_STOKES' DISCR ;
  127. BAS = DOMA $BAS MAILLAGE ;
  128. $GAU = 'MODE' MGAU 'NAVIER_STOKES' DISCR ;
  129. GAU = DOMA $GAU MAILLAGE ;
  130. $DRO = 'MODE' MDRO 'NAVIER_STOKES' DISCR ;
  131. £DRO = 'DOMA' $DRO 'TABLE' ;
  132. DRO = DOMA $DRO MAILLAGE ;
  133. $DEV = 'MODE' MDEV 'NAVIER_STOKES' DISCR ;
  134. DEV = DOMA $DEV MAILLAGE ;
  135. $DER = 'MODE' MDER 'NAVIER_STOKES' DISCR ;
  136. DER = DOMA $DER MAILLAGE ;
  137.  
  138. CNT = ENVE MT ;
  139.  
  140. **************
  141. * PARAMETRES *
  142. **************
  143.  
  144. Pr = 0.71D0 ;
  145. Ra = 1.D5 ;
  146. Gr = Ra/Pr ;
  147. NU = 1.D0/(Gr**0.5) ;
  148. ALF= NU/Pr ;
  149. gb = 0.D0 0.D0 -1.0D0 ;
  150.  
  151. ***********************
  152. * CREATION DES TABLES *
  153. ***********************
  154.  
  155. RV = EQEX $MT 'ITMA' NITER 'ALFA' CFL
  156. 'ZONE' $MT 'OPER' CALCUL
  157. 'ZONE' $MT 'OPER' 'NS' NU GB 'TN' 0.5 'INCO' 'UN'
  158. 'ZONE' $MT 'OPER' 'TSCAL' ALF 'UN' 0. 'INCO' 'TN'
  159. 'OPTI' 'CENTREE'
  160. ZONE $MT 'OPER' 'DFDT' 1. 'UN' 'DELTAT' INCO 'UN'
  161. ZONE $MT 'OPER' 'DFDT' 1. 'TN' 'DELTAT' INCO 'TN'
  162. ;
  163.  
  164. RV = EQEX RV
  165. 'CLIM' 'UN' 'UIMP' (HAU ET BAS ET DRO ET GAU) 0.
  166. 'UN' 'VIMP' cnt 0.
  167. 'UN' 'WIMP' (HAU ET BAS ET DRO ET GAU) 0.
  168. 'TN' 'TIMP' gau 1.
  169. 'TN' 'TIMP' dro 0. ;
  170.  
  171. RVP = EQEX 'OPTI' 'EF' KPRESS
  172. 'ZONE' $MT OPER KBBT -1. beta INCO 'UN' 'PRES'
  173. ;
  174.  
  175. rvp.'METHINV'.TYPINV=1 ;
  176. rvp.'METHINV'.IMPINV=0 ;
  177. rvp.'METHINV'.NITMAX=300;
  178. rvp.'METHINV'.PRECOND=3 ;
  179. rvp.'METHINV'.RESID =1.e-8 ;
  180. rvp.'METHINV' . 'FCPRECT'=100 ;
  181. rvp.'METHINV' . 'FCPRECI'=100 ;
  182.  
  183. RV.'PROJ' =RVP ;
  184.  
  185. RV.INCO = TABLE INCO;
  186. RV.INCO.'PRES' = kcht $MT SCAL KPRESS 0.;
  187. RV.INCO.'UN' = kcht $MT VECT SOMMET (0. 0. 0.);
  188. corx = coor 1 mt;
  189. RV.INCO.'TN' = kcht $MT SCAL SOMMET (1.-corx);
  190.  
  191. RV.INCO.'UNM1' = kcht $MT VECT SOMMET (1.D-5 1.D-5 1.D-5);
  192. RV.INCO.'IT' = PROG 1;
  193. RV.INCO.'ERX' = PROG 0.;
  194. RV.INCO.'ERY' = PROG 0.;
  195. RV.INCO.'ERZ' = PROG 0.;
  196.  
  197.  
  198. EXEC RV ;
  199.  
  200. DYDZ = DOMA $DRO 'VOLUME' ;
  201. DYDZT = SOMT DYDZ ;
  202.  
  203. GRADT = KOPS RV.INCO.'TN' 'GRAD' $MT;
  204. DTDX = KCHT $MT 'SCAL' 'CENTRE' (EXCO 'UX' GRADT);
  205. DTDX = ELNO $MT DTDX;
  206.  
  207. DTDXp = KCHT $DRO 'SCAL' 'SOMMET' DTDX;
  208. DTDXp = KOPS DTDXp '*' (-1.);
  209.  
  210. DTDXpc = NOEL $DRO DTDXp;
  211. num = KOPS DTDXpc '*' DYDZ ;
  212. num = SOMT NUM;
  213. num = NUM/DYDZT;
  214.  
  215.  
  216. MESSAGE 'NUSSELT MOYEN' NUM ' 2D ' 2.7124 ;
  217. MESSAGE 'NUSSELT MAX' (MAXI DTDXpc) ' 2D ' 3.7240 ;
  218. MESSAGE 'NUSSELT MIN' (MINI DTDXpc) ' 2D ' 0.93978 ;
  219.  
  220. ER1 = ABS( NUM - 2.7124D0) / 2.7124 ;
  221. ER2 = ABS( (MAXI DTDXpc) - 3.7240) / 3.7240 ;
  222. ER3 = ABS( (MINI DTDXpc) - 0.93978) / 0.93978 ;
  223. ER4 = MINI (RV.INCO.'ERX') ;
  224. ER5 = MINI (RV.INCO.'ERY') ;
  225. ER6 = MINI (RV.INCO.'ERZ') ;
  226.  
  227. MESSAGE ER1 ER2 ER3 ER4 ER5 ER6 ;
  228.  
  229. SI ( ER4 > -2.0 ) ;
  230. ERREUR 5 ;
  231. FINSI ;
  232. SI ( ER5 > -2.0 ) ;
  233. ERREUR 5 ;
  234. FINSI ;
  235. SI ( ER6 > -2.0 ) ;
  236. ERREUR 5 ;
  237. FINSI ;
  238. SI ( ER1 > 0.04 ) ;
  239. ERREUR 5 ;
  240. FINSI ;
  241.  
  242. SI ( GRAPH ) ;
  243.  
  244. TRACE MT 'CACH' ;
  245. TRACE RV.INCO.'TN' MT CNT 14 ;
  246. UNCH = VECT RV.INCO.'UN' 1. UX UY UZ VERT ;
  247. TRACE UNCH MT CNT ;
  248.  
  249. EVOLX = EVOL 'MANU' 'ITERATIONS' (RV.INCO.'IT') 'LOG|E(u)|inf'
  250. (RV.INCO.'ERX') ;
  251. EVOLY = EVOL 'MANU' 'ITERATIONS' (RV.INCO.'IT') 'LOG|E(v)|inf'
  252. (RV.INCO.'ERY') ;
  253. EVOLZ = EVOL 'MANU' 'ITERATIONS' (RV.INCO.'IT') 'LOG|E(w)|inf'
  254. (RV.INCO.'ERZ') ;
  255. EVOLX = EVOLX COUL ROUG ;
  256. EVOLY = EVOLY COUL JAUN ;
  257. EVOLZ = EVOLZ COUL VERT ;
  258. TAB1 = TABLE ;
  259. TAB1.1 = 'MARQ TRIA REGU' ;
  260. TAB1.2 = 'MARQ LOSA REGU' ;
  261. TAB1.3 = 'MARQ CARR REGU' ;
  262. TAB1.'TITRE' = TABLE ;
  263. TAB1.'TITRE' . 1 = 'MOT' 'UX' ;
  264. TAB1.'TITRE' . 2 = 'MOT' 'UY' ;
  265. TAB1.'TITRE' . 3 = 'MOT' 'UZ' ;
  266. dess (EVOLX ET EVOLY ET EVOLZ) 'XBOR' 0. (2*NITER) 'YBOR' -10.0 0.0
  267. 'TITR' 'CONVERGENCE VERS LE STATIONNAIRE' LEGE TAB1 ;
  268.  
  269. FINSI ;
  270.  
  271. FIN ;
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  

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