* fichier : ccar_cond.dgibi ************************************************************************ * Section : Fluides Thermique ************************************************************************ 'OPTION' 'ECHO' 0 ; ************************************************************************ * NOM : CCAR_COND * DESCRIPTION : Cavité chauffée contenant un carré conducteur * centré. * Refs biblio: * @article{Lee20053308, * title = "A numerical study of natural convection in a horizontal enclosure with a conducting body ", * journal = "International Journal of Heat and Mass Transfer ", * volume = "48", * number = "16", * pages = "3308 - 3318", * year = "2005", * doi = "http://dx.doi.org/10.1016/j.ijheatmasstransfer.2005.02.026", * url = "http://www.sciencedirect.com/science/article/pii/S0017931005001948", * author = "Jae Ryong Lee and Man Yeong Ha" * } * @article{doi:10.1080/10407789008944791, * author = {House, John M. and Beckermann, Christoph and Smith, Theodore F.}, * title = {EFFECT OF A CENTERED CONDUCTING BODY ON NATURAL CONVECTION HEAT TRANSFER IN AN ENCLOSURE}, * journal = {Numerical Heat Transfer, Part A: Applications}, * volume = {18}, * number = {2}, * pages = {213-225}, * year = {1990}, * doi = {10.1080/10407789008944791}, * URL = {http://dx.doi.org/10.1080/10407789008944791} * } * En fait, on fait le cas de House (chauffage par le mur gauche), plutôt * que le cas de Lee (chauffage par le bas). Lee utilise House pour valider * son code et donne les valeurs du Nusselt pour Ra=10^5. * On compare le nusselt sur le cas Ra=10^5, alph=5. * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 18/04/2014, version initiale * HISTORIQUE : v1, 18/04/2014, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * interact = FAUX ; graph = FAUX ; complet = FAUX ; * 'OPTION' 'DIME' 2 'ELEM' 'QUA8' ; * * Physique * asp : longueur du carré solide / longueur du carré fluide * Pr : nombre de Prandtl * Ra : nombre de Rayleigh * alph : diffusivité solide / diffusivité fluide * asp = 0.5 ; alph = 5. ; Pr = 0.7 ; Ra = 1.d5 ; * nu = Pr ; gb = (0. ('*' ('*' Ra Pr) -1.)) ; alfl = 1. ; alfs = '*' alfl alph ; * * Maillages + discrétisation : * den : taille de maille * disv : élément fini pour la vitesse * disp : élément fini pour la pression * dec : décentrement des termes convectifs (CENTREE, SUPG ou SUPGDC) * nitma : nombre de pas de temps * pdt : valeur du pas de temps * niter : nombre d'itérations de point fixe * omeg : sous-relaxation * insta = VRAI on fait de l'instationnaire (Ra=10^6) * = FAUX on essaie de calculer directement le stationnaire * (marche pour Ra<=10^5) 'SI' complet ; den = 0.025 ; 'SINON' ; den = 0.075 ; 'FINSI' ; disv = 'QUAF' ; disp = 'CENTREP1' ; insta = Ra '>' 5.d5 ; 'SI' insta ; dec = 'SUPG' ; niter = 5 ; omeg = 0.5 ; pdt = 0.0025 ; npdt = 100 ; 'SINON' ; dec = 'CENTREE' ; niter = 30 ; omeg = 0.5 ; npdt = 1 ; * niter = 2 ; omeg = 1. ; npdt = 1 ; 'FINSI' ; * * Maillage * 'DENS' den ; p0 = 0. 0. ; p1 = 1. 0. ; p2 = 1. 1. ; p3 = 0. 1. ; pcen = 0.5 0.5 ; bas = 'DROIT' p0 p1 ; dro = 'DROIT' p1 p2 ; hau = 'DROIT' p2 p3 ; gau = 'DROIT' p3 p0 ; bass dros haus gaus = 'HOMOTHETIE' bas dro hau gau asp pcen ; cext = bas 'ET' dro 'ET' hau 'ET' gau ; cint = bass 'ET' dros 'ET' haus 'ET' gaus ; mtf = 'REGLER' cint cext ; mts = 'DALLER' bass dros haus gaus ; mtf = 'COULEUR' mtf 'BLEU' ; mts = 'COULEUR' mts 'ROUG' ; mt = mtf 'ET' mts ; *mt = 'SURFACE' (cext 'ET' ('INVERSE' cint) ; 'SI' graph ; tit = 'CHAINE' 'Maillage nb. elem.=' ('NBEL' mt) ; 'TRACER' mt 'TITR' tit ; 'FINSI' ; * * Création des éléments quadratique fluides * et des modèles NAVIER_STOKES * _mt = 'CHANGER' mt 'QUAF' ; _mtf = 'CHANGER' mtf 'QUAF' ; _mts = 'CHANGER' mts 'QUAF' ; _bas = 'CHANGER' bas 'QUAF' ; _dro = 'CHANGER' dro 'QUAF' ; _hau = 'CHANGER' hau 'QUAF' ; _gau = 'CHANGER' gau 'QUAF' ; _cint = 'CHANGER' cint 'QUAF' ; _cext = 'CHANGER' cext 'QUAF' ; 'ELIMINATION' (_mt 'ET' _mtf 'ET' _mts 'ET' _bas 'ET' _dro 'ET' _hau 'ET' _gau 'ET' _cint 'ET' _cext) 1.D-6 ; * $mt = 'MODELISER' _mt 'NAVIER_STOKES' disv ; $mtf = 'MODELISER' _mtf 'NAVIER_STOKES' disv ; $mts = 'MODELISER' _mts 'NAVIER_STOKES' disv ; $bas = 'MODELISER' _bas 'NAVIER_STOKES' disv ; $dro = 'MODELISER' _dro 'NAVIER_STOKES' disv ; $hau = 'MODELISER' _hau 'NAVIER_STOKES' disv ; $gau = 'MODELISER' _gau 'NAVIER_STOKES' disv ; $cint = 'MODELISER' _cint 'NAVIER_STOKES' disv ; $cext = 'MODELISER' _cext 'NAVIER_STOKES' disv ; mt = 'DOMA' $mt 'MAILLAGE' ; mtf = 'DOMA' $mtf 'MAILLAGE' ; mts = 'DOMA' $mts 'MAILLAGE' ; bas = 'DOMA' $bas 'MAILLAGE' ; dro = 'DOMA' $dro 'MAILLAGE' ; hau = 'DOMA' $hau 'MAILLAGE' ; gau = 'DOMA' $gau 'MAILLAGE' ; cint = 'DOMA' $cint 'MAILLAGE' ; cext = 'DOMA' $cext 'MAILLAGE' ; * * Création du point où on impose la référence de pression (cavité * fermée) * ppres = 'POIN' ('DOMA' $mtf disp) 'PROC' (0.5 0.5) ; mp1 = 'MANUEL' ppres 'POI1' ; * * Description du problème (NS incompressible Boussinesq) * rv = 'EQEX' 'ITMA' npdt 'NITER' niter 'OMEGA' omeg 'FIDT' 1 ; * Navier-Stokes rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' dec 'ZONE' $mtf 'OPER' 'NS' 1. 'UN' nu gb 'TN' 0. 'INCO' 'UN' 'OPTI' 'EF' 'IMPL' 'CENTREE' disp 'ZONE' $mtf 'OPER' 'KBBT' 1. 'INCO' 'UN' 'PN' ; 'SI' insta ; rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' 'CENTREE' 'ZONE' $mtf 'OPER' 'DFDT' 1. 'UNM1' pdt 'INCO' 'UN' ; 'FINSI' ; * Energie * liquide rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' dec 'ZONE' $mtf 'OPER' 'KONV' 1. 'UN' alfl 'INCO' 'TN' 'OPTI' 'EF' 'IMPL' 'CENTREE' 'ZONE' $mtf 'OPER' 'LAPN' alfl 'INCO' 'TN' ; * solide rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' 'CENTREE' 'ZONE' $mts 'OPER' 'LAPN' alfs 'INCO' 'TN' ; 'SI' insta ; rv = 'EQEX' rv 'OPTI' 'EF' 'IMPL' 'CENTREE' 'ZONE' $mtf 'OPER' 'DFDT' 1. 'TNM1' pdt 'INCO' 'TN' ; 'FINSI' ; * Conditions aux limites * dynamiques rv = 'EQEX' rv 'CLIM' 'UN' 'UIMP' (cint 'ET' cext) 0. 'UN' 'VIMP' (cint 'ET' cext) 0. 'PN' 'TIMP' mp1 0. ; * thermiques rv = 'EQEX' rv 'CLIM' 'TN' 'TIMP' gau 1. 'TN' 'TIMP' dro 0. ; * * Table des inconnues et conditions initiales * rv . 'INCO' = 'TABLE' 'INCO' ; rv . 'INCO' . 'UN' = 'KCHT' $mtf 'VECT' 'SOMMET' (0. 0.) ; rv . 'INCO' . 'PN' = 'KCHT' $mtf 'SCAL' disp 0. ; * Perturbation du champ de température initial pour déclencher * l'instabilité tnal = 'BRUIT' 'BLAN' 'UNIF' 0.5 0.1 mtf ; rv . 'INCO' . 'TN' = 'KCHT' $mt 'SCAL' 'SOMMET' tnal ; * 'SI' insta ; rv . 'INCO' . 'UNM1' = 'KCHT' $mtf 'VECT' 'SOMMET' (0. 0.) ; rv . 'INCO' . 'TNM1' = 'KCHT' $mt 'SCAL' 'SOMMET' tnal ; 'FINSI' ; * * Résolution du problème * EXEC rv ; * * Post-traitement * * Tracés 'SI' graph ; vit = rv . 'INCO' . 'UN' ; ncovit = 'MOTS' 'UX' 'UY' ; nvit = '**' ('PSCAL' vit vit ncovit ncovit) 0.5 ; mvit = 'MAXIMUM' nvit ; vvit = 'VECT' vit 'DEPL' 'JAUN' ; cmt = 'CONTOUR' mtf ; 'TRACER' vvit mt cmt 'TITR' ('CHAINE' 'Vitesse max.=' mvit) ; 'OPTI' 'ISOV' 'SULI' ; pre = rv . 'INCO' . 'PN' ; prep = 'ELNO' $mtf pre disp ; 'TRACER' prep mtf cmt 'TITR' 'Pression' ; tem = rv . 'INCO' . 'TN' ; 'TRACER' tem mt cmt 'TITR' 'Temperature' ; 'FINSI' ; * Calcul du Nusselt tem = rv . 'INCO' . 'TN' ; gtem = 'KOPS' tem 'GRADS' $mt ; nusgau = 'DBIT' $gau gtem ; nusdro = 'DBIT' $dro gtem ; ecar = 'ABS' ('/' ('+' nusgau nusdro) ('MAXIMUM' ('PROG' nusgau nusdro))) ; 'MESSAGE' ('CHAINE' 'nusgau=' nusgau) ; 'MESSAGE' ('CHAINE' 'nusdro=' nusdro) ; 'MESSAGE' ('CHAINE' 'ecar= ' ecar) ; 'SI' (ecar '>' 1.d-4) ; 'ERREUR' 'Stationnaire non atteint ou calcul du nusselt imprecis' ; 'FINSI' ; * Test de bon fonctionnement 'SI' ('ET' ('EGA' Ra 1.D5 1.) ('EGA' alph 5.)) ; * Nusselt de référence issu de House et Lee nusref = 4.324 ; 'MESSAGE' 'On effectue le test du Nusselt' ; 'MESSAGE' ('CHAINE' 'nusref=' nusref) ; ecref = 'ABS' ('/' ('-' nusdro nusref) nusref) ; 'MESSAGE' ('CHAINE' 'ecref=' ecref) ; 'SI' complet ; ecmax = 1.D-3 ; 'SINON' ; ecmax = 4.D-2 ; 'FINSI' ; 'MESSAGE' ('CHAINE' 'ecmax=' ecmax) ; 'SI' (ecref '>' ecmax) ; 'MESSAGE' ('CHAINE' 'Resultat imprecis') ; 'ERREUR' 5 ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; 'FINSI' ; 'SI' interact ; 'OPTION' 'ECHO' 1 ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file CCAR_COND * 'FIN' ;