Télécharger ccar_cond.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ccar_cond.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : CCAR_COND
  7. * DESCRIPTION : Cavité chauffée contenant un carré conducteur
  8. * centré.
  9. * Refs biblio:
  10. * @article{Lee20053308,
  11. * title = "A numerical study of natural convection in a horizontal enclosure with a conducting body ",
  12. * journal = "International Journal of Heat and Mass Transfer ",
  13. * volume = "48",
  14. * number = "16",
  15. * pages = "3308 - 3318",
  16. * year = "2005",
  17. * doi = "http://dx.doi.org/10.1016/j.ijheatmasstransfer.2005.02.026",
  18. * url = "http://www.sciencedirect.com/science/article/pii/S0017931005001948",
  19. * author = "Jae Ryong Lee and Man Yeong Ha"
  20. * }
  21. * @article{doi:10.1080/10407789008944791,
  22. * author = {House, John M. and Beckermann, Christoph and Smith, Theodore F.},
  23. * title = {EFFECT OF A CENTERED CONDUCTING BODY ON NATURAL CONVECTION HEAT TRANSFER IN AN ENCLOSURE},
  24. * journal = {Numerical Heat Transfer, Part A: Applications},
  25. * volume = {18},
  26. * number = {2},
  27. * pages = {213-225},
  28. * year = {1990},
  29. * doi = {10.1080/10407789008944791},
  30. * URL = {http://dx.doi.org/10.1080/10407789008944791}
  31. * }
  32. * En fait, on fait le cas de House (chauffage par le mur gauche), plutôt
  33. * que le cas de Lee (chauffage par le bas). Lee utilise House pour valider
  34. * son code et donne les valeurs du Nusselt pour Ra=10^5.
  35. * On compare le nusselt sur le cas Ra=10^5, alph=5.
  36. *
  37. *
  38. * LANGAGE : GIBIANE-CAST3M
  39. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  40. * mél : gounand@semt2.smts.cea.fr
  41. **********************************************************************
  42. * VERSION : v1, 18/04/2014, version initiale
  43. * HISTORIQUE : v1, 18/04/2014, création
  44. * HISTORIQUE :
  45. * HISTORIQUE :
  46. ************************************************************************
  47. *
  48. interact = FAUX ;
  49. graph = FAUX ;
  50. complet = FAUX ;
  51. *
  52. 'OPTION' 'DIME' 2 'ELEM' 'QUA8' ;
  53. *
  54. * Physique
  55. * asp : longueur du carré solide / longueur du carré fluide
  56. * Pr : nombre de Prandtl
  57. * Ra : nombre de Rayleigh
  58. * alph : diffusivité solide / diffusivité fluide
  59. *
  60. asp = 0.5 ;
  61. alph = 5. ;
  62. Pr = 0.7 ;
  63. Ra = 1.d5 ;
  64. *
  65. nu = Pr ; gb = (0. ('*' ('*' Ra Pr) -1.)) ;
  66. alfl = 1. ;
  67. alfs = '*' alfl alph ;
  68. *
  69. * Maillages + discrétisation :
  70. * den : taille de maille
  71. * disv : élément fini pour la vitesse
  72. * disp : élément fini pour la pression
  73. * dec : décentrement des termes convectifs (CENTREE, SUPG ou SUPGDC)
  74. * nitma : nombre de pas de temps
  75. * pdt : valeur du pas de temps
  76. * niter : nombre d'itérations de point fixe
  77. * omeg : sous-relaxation
  78. * insta = VRAI on fait de l'instationnaire (Ra=10^6)
  79. * = FAUX on essaie de calculer directement le stationnaire
  80. * (marche pour Ra<=10^5)
  81. 'SI' complet ;
  82. den = 0.025 ;
  83. 'SINON' ;
  84. den = 0.075 ;
  85. 'FINSI' ;
  86. disv = 'QUAF' ;
  87. disp = 'CENTREP1' ;
  88. insta = Ra '>' 5.d5 ;
  89. 'SI' insta ;
  90. dec = 'SUPG' ;
  91. niter = 5 ; omeg = 0.5 ; pdt = 0.0025 ; npdt = 100 ;
  92. 'SINON' ;
  93. dec = 'CENTREE' ;
  94. niter = 30 ; omeg = 0.5 ; npdt = 1 ;
  95. * niter = 2 ; omeg = 1. ; npdt = 1 ;
  96. 'FINSI' ;
  97. *
  98. * Maillage
  99. *
  100. 'DENS' den ;
  101. p0 = 0. 0. ; p1 = 1. 0. ; p2 = 1. 1. ; p3 = 0. 1. ;
  102. pcen = 0.5 0.5 ;
  103. bas = 'DROIT' p0 p1 ; dro = 'DROIT' p1 p2 ;
  104. hau = 'DROIT' p2 p3 ; gau = 'DROIT' p3 p0 ;
  105. bass dros haus gaus = 'HOMOTHETIE' bas dro hau gau asp pcen ;
  106. cext = bas 'ET' dro 'ET' hau 'ET' gau ;
  107. cint = bass 'ET' dros 'ET' haus 'ET' gaus ;
  108. mtf = 'REGLER' cint cext ;
  109. mts = 'DALLER' bass dros haus gaus ;
  110. mtf = 'COULEUR' mtf 'BLEU' ;
  111. mts = 'COULEUR' mts 'ROUG' ;
  112. mt = mtf 'ET' mts ;
  113. *mt = 'SURFACE' (cext 'ET' ('INVERSE' cint) ;
  114. 'SI' graph ;
  115. tit = 'CHAINE' 'Maillage nb. elem.=' ('NBEL' mt) ;
  116. 'TRACER' mt 'TITR' tit ;
  117. 'FINSI' ;
  118. *
  119. * Création des éléments quadratique fluides
  120. * et des modèles NAVIER_STOKES
  121. *
  122. _mt = 'CHANGER' mt 'QUAF' ;
  123. _mtf = 'CHANGER' mtf 'QUAF' ;
  124. _mts = 'CHANGER' mts 'QUAF' ;
  125. _bas = 'CHANGER' bas 'QUAF' ;
  126. _dro = 'CHANGER' dro 'QUAF' ;
  127. _hau = 'CHANGER' hau 'QUAF' ;
  128. _gau = 'CHANGER' gau 'QUAF' ;
  129. _cint = 'CHANGER' cint 'QUAF' ;
  130. _cext = 'CHANGER' cext 'QUAF' ;
  131. 'ELIMINATION' (_mt 'ET' _mtf 'ET' _mts 'ET' _bas 'ET' _dro 'ET' _hau
  132. 'ET' _gau 'ET' _cint 'ET' _cext) 1.D-6 ;
  133. *
  134. $mt = 'MODELISER' _mt 'NAVIER_STOKES' disv ;
  135. $mtf = 'MODELISER' _mtf 'NAVIER_STOKES' disv ;
  136. $mts = 'MODELISER' _mts 'NAVIER_STOKES' disv ;
  137. $bas = 'MODELISER' _bas 'NAVIER_STOKES' disv ;
  138. $dro = 'MODELISER' _dro 'NAVIER_STOKES' disv ;
  139. $hau = 'MODELISER' _hau 'NAVIER_STOKES' disv ;
  140. $gau = 'MODELISER' _gau 'NAVIER_STOKES' disv ;
  141. $cint = 'MODELISER' _cint 'NAVIER_STOKES' disv ;
  142. $cext = 'MODELISER' _cext 'NAVIER_STOKES' disv ;
  143. mt = 'DOMA' $mt 'MAILLAGE' ;
  144. mtf = 'DOMA' $mtf 'MAILLAGE' ;
  145. mts = 'DOMA' $mts 'MAILLAGE' ;
  146. bas = 'DOMA' $bas 'MAILLAGE' ;
  147. dro = 'DOMA' $dro 'MAILLAGE' ;
  148. hau = 'DOMA' $hau 'MAILLAGE' ;
  149. gau = 'DOMA' $gau 'MAILLAGE' ;
  150. cint = 'DOMA' $cint 'MAILLAGE' ;
  151. cext = 'DOMA' $cext 'MAILLAGE' ;
  152. *
  153. * Création du point où on impose la référence de pression (cavité
  154. * fermée)
  155. *
  156. ppres = 'POIN' ('DOMA' $mtf disp) 'PROC' (0.5 0.5) ;
  157. mp1 = 'MANUEL' ppres 'POI1' ;
  158. *
  159. * Description du problème (NS incompressible Boussinesq)
  160. *
  161. rv = 'EQEX' 'ITMA' npdt 'NITER' niter 'OMEGA' omeg 'FIDT' 1 ;
  162. * Navier-Stokes
  163. rv = 'EQEX' rv
  164. 'OPTI' 'EF' 'IMPL' dec
  165. 'ZONE' $mtf 'OPER' 'NS' 1. 'UN' nu gb 'TN' 0. 'INCO' 'UN'
  166. 'OPTI' 'EF' 'IMPL' 'CENTREE' disp
  167. 'ZONE' $mtf 'OPER' 'KBBT' 1. 'INCO' 'UN' 'PN' ;
  168. 'SI' insta ;
  169. rv = 'EQEX' rv
  170. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  171. 'ZONE' $mtf 'OPER' 'DFDT' 1. 'UNM1' pdt 'INCO' 'UN' ;
  172. 'FINSI' ;
  173. * Energie
  174. * liquide
  175. rv = 'EQEX' rv
  176. 'OPTI' 'EF' 'IMPL' dec
  177. 'ZONE' $mtf 'OPER' 'KONV' 1. 'UN' alfl 'INCO' 'TN'
  178. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  179. 'ZONE' $mtf 'OPER' 'LAPN' alfl 'INCO' 'TN' ;
  180. * solide
  181. rv = 'EQEX' rv
  182. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  183. 'ZONE' $mts 'OPER' 'LAPN' alfs 'INCO' 'TN' ;
  184. 'SI' insta ;
  185. rv = 'EQEX' rv
  186. 'OPTI' 'EF' 'IMPL' 'CENTREE'
  187. 'ZONE' $mtf 'OPER' 'DFDT' 1. 'TNM1' pdt 'INCO' 'TN' ;
  188. 'FINSI' ;
  189.  
  190. * Conditions aux limites
  191. * dynamiques
  192. rv = 'EQEX' rv 'CLIM'
  193. 'UN' 'UIMP' (cint 'ET' cext) 0.
  194. 'UN' 'VIMP' (cint 'ET' cext) 0.
  195. 'PN' 'TIMP' mp1 0. ;
  196. * thermiques
  197. rv = 'EQEX' rv 'CLIM'
  198. 'TN' 'TIMP' gau 1.
  199. 'TN' 'TIMP' dro 0. ;
  200. *
  201. * Table des inconnues et conditions initiales
  202. *
  203. rv . 'INCO' = 'TABLE' 'INCO' ;
  204. rv . 'INCO' . 'UN' = 'KCHT' $mtf 'VECT' 'SOMMET' (0. 0.) ;
  205. rv . 'INCO' . 'PN' = 'KCHT' $mtf 'SCAL' disp 0. ;
  206. * Perturbation du champ de température initial pour déclencher
  207. * l'instabilité
  208. tnal = 'BRUIT' 'BLAN' 'UNIF' 0.5 0.1 mtf ;
  209. rv . 'INCO' . 'TN' = 'KCHT' $mt 'SCAL' 'SOMMET' tnal ;
  210. *
  211. 'SI' insta ;
  212. rv . 'INCO' . 'UNM1' = 'KCHT' $mtf 'VECT' 'SOMMET' (0. 0.) ;
  213. rv . 'INCO' . 'TNM1' = 'KCHT' $mt 'SCAL' 'SOMMET' tnal ;
  214. 'FINSI' ;
  215. *
  216. * Résolution du problème
  217. *
  218. EXEC rv ;
  219. *
  220. * Post-traitement
  221. *
  222. * Tracés
  223. 'SI' graph ;
  224. vit = rv . 'INCO' . 'UN' ;
  225. ncovit = 'MOTS' 'UX' 'UY' ;
  226. nvit = '**' ('PSCAL' vit vit ncovit ncovit) 0.5 ;
  227. mvit = 'MAXIMUM' nvit ;
  228. vvit = 'VECT' vit 'DEPL' 'JAUN' ;
  229. cmt = 'CONTOUR' mtf ;
  230. 'TRACER' vvit mt cmt 'TITR' ('CHAINE' 'Vitesse max.=' mvit) ;
  231. 'OPTI' 'ISOV' 'SULI' ;
  232. pre = rv . 'INCO' . 'PN' ;
  233. prep = 'ELNO' $mtf pre disp ;
  234. 'TRACER' prep mtf cmt 'TITR' 'Pression' ;
  235. tem = rv . 'INCO' . 'TN' ;
  236. 'TRACER' tem mt cmt 'TITR' 'Temperature' ;
  237. 'FINSI' ;
  238. * Calcul du Nusselt
  239. tem = rv . 'INCO' . 'TN' ;
  240. gtem = 'KOPS' tem 'GRADS' $mt ;
  241. nusgau = 'DBIT' $gau gtem ;
  242. nusdro = 'DBIT' $dro gtem ;
  243. ecar = 'ABS' ('/' ('+' nusgau nusdro) ('MAXIMUM' ('PROG' nusgau
  244. nusdro))) ;
  245. 'MESSAGE' ('CHAINE' 'nusgau=' nusgau) ;
  246. 'MESSAGE' ('CHAINE' 'nusdro=' nusdro) ;
  247. 'MESSAGE' ('CHAINE' 'ecar= ' ecar) ;
  248. 'SI' (ecar '>' 1.d-4) ;
  249. 'ERREUR' 'Stationnaire non atteint ou calcul du nusselt imprecis' ;
  250. 'FINSI' ;
  251. * Test de bon fonctionnement
  252. 'SI' ('ET' ('EGA' Ra 1.D5 1.) ('EGA' alph 5.)) ;
  253. * Nusselt de référence issu de House et Lee
  254. nusref = 4.324 ;
  255. 'MESSAGE' 'On effectue le test du Nusselt' ;
  256. 'MESSAGE' ('CHAINE' 'nusref=' nusref) ;
  257. ecref = 'ABS' ('/' ('-' nusdro nusref) nusref) ;
  258. 'MESSAGE' ('CHAINE' 'ecref=' ecref) ;
  259. 'SI' complet ;
  260. ecmax = 1.D-3 ;
  261. 'SINON' ;
  262. ecmax = 4.D-2 ;
  263. 'FINSI' ;
  264. 'MESSAGE' ('CHAINE' 'ecmax=' ecmax) ;
  265. 'SI' (ecref '>' ecmax) ;
  266. 'MESSAGE' ('CHAINE' 'Resultat imprecis') ;
  267. 'ERREUR' 5 ;
  268. 'SINON' ;
  269. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  270. 'FINSI' ;
  271. 'FINSI' ;
  272. 'SI' interact ;
  273. 'OPTION' 'ECHO' 1 ;
  274. 'OPTION' 'DONN' 5 ;
  275. 'FINSI' ;
  276. *
  277. * End of dgibi file CCAR_COND
  278. *
  279. 'FIN' ;
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  

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