Télécharger couplage_TH1D_Th3D_1.dgibi
* fichier : couplage_TH1D_Th3D_1.dgibi ************************************************************************ ************************************************************************ ************************************************************************ * NOM : couplage_TH1D_Th3D_1.dgibi * DESCRIPTION : * * Voir rapport DM2S/SFME/LTMF/RT/03-012/B * Modélisation couplée thermique 3D-thermohydraulique 1D d'un coeur de * réacteur à caloporteur gaz. * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 22/10/2003, version initiale * HISTORIQUE : v1, 22/10/2003, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * Prière de PRENDRE LE TEMPS de compléter les commentaires * en cas de modification de ce sous-programme afin de faciliter * la maintenance ! ************************************************************************ * * interact = VRAI : pour une utilisation interactive * graph = VRAI : pour tracer des choses * irrad = VRAI : si le combustible est irradié * pvar = VRAI : si la puissance dégagée dans le combustible à un * profil sinusoïdale (en fonction de z) * discr = LINE ou QUAF : discrétisation linéaire (suffisante) * ou quadratique interact= FAUX ; graph = FAUX ; irrad = VRAI ; pvar = VRAI ; discr = 'LINE' ; *discr = 'QUAF' ; ************************************************************************ * * Début des procédures * 'OPTION' 'ECHO' 0 ; * NOM : ERRREL * DESCRIPTION : Calcul d'une erreur relative 'DEBPROC' ERRREL ; 'ARGUMENT' val*'FLOTTANT' ; 'ARGUMENT' valref*'FLOTTANT' ; * 'SI' ('<' ('ABS' valref) 1.D-10) ; echref = 1.D0 ; 'SINON' ; echref = valref ; 'FINSI' ; * errabs = 'ABS' ('/' ('-' val valref) echref); * 'RESPRO' errabs ; 'FINPROC' ; * NOM : TRACCHPO * DESCRIPTION : Tracé d'un chpoint avec titre optionnel. 'DEBPROC' TRACCHPO ; 'ARGUMENT' pn*'CHPOINT ' ; 'ARGUMENT' mt*'MAILLAGE' ; 'ARGUMENT' mt2/'MAILLAGE' ; 'ARGUMENT' oeil/'POINT ' ; 'SI' ('EXISTE' tit) ; titpn = 'CHAINE' 'FORMAT' formflot tit titglob ; 'SINON' ; titpn = 'CHAINE' 'FORMAT' formflot titglob ; 'FINSI' ; rescal = pn ; 'SI' ('EXISTE' oeil) ; 'SI' ('EXISTE' mt2) ; 'TRACER' 'CACH' oeil rescal mt mt2 'TITR' titpn nbisov ; 'SINON' ; 'TRACER' 'CACH' oeil rescal mt mt 'TITR' titpn nbisov ; 'FINSI' ; 'SINON' ; 'SI' ('EXISTE' mt2) ; 'TRACER' 'CACH' rescal mt mt2 'TITR' titpn nbisov ; 'SINON' ; 'TRACER' 'CACH' rescal mt mt 'TITR' titpn nbisov ; 'FINSI' ; 'FINSI' ; 'FINPROC' ; * NOM : TRACCHML * DESCRIPTION : Trace un CHPOINT défini sur les centres des éléments * (valeur constante par élément) avec titre optionnel 'DEBPROC' TRACCHML ; 'ARGUMENT' chml*'CHPOINT ' ; 'ARGUMENT' $mt*'MMODEL ' ; 'ARGUMENT' mt2/'MAILLAGE' ; 'ARGUMENT' oeil/'POINT ' ; 'SI' ('EXISTE' tit) ; titpn = 'CHAINE' 'FORMAT' formflot tit titglob ; 'SINON' ; titpn = 'CHAINE' 'FORMAT' formflot titglob ; 'FINSI' ; 'SI' ('EXISTE' oeil) ; 'SI' ('EXISTE' mt2) ; 'TRACER' 'CACH' oeil rescal modbid mt2 'TITR' titpn nbisov ; 'SINON' ; 'TRACER' 'CACH' oeil rescal modbid mt 'TITR' titpn nbisov ; 'FINSI' ; 'SINON' ; 'SI' ('EXISTE' mt2) ; 'TRACER' 'CACH' rescal modbid mt2 'TITR' titpn nbisov ; 'SINON' ; 'TRACER' 'CACH' rescal modbid mt 'TITR' titpn nbisov ; 'FINSI' ; 'FINSI' ; 'FINPROC' ; * NOM : PRPHE * Proprietes thermiques de l Helium 4 * Input : PTOT : pression en Pa ou en bars * T ou TS : temperature sous forme de CHPOINT ou FLOTTANT * * Output : RHOHE : densite de l helium (USI) de meme type que T ou TS * MUHE : viscosite * LHE : conductivite thermique * CPHE : capacité calorifique a pression constante 'DEBPROC' PRPHE PTOT*'FLOTTANT' T/'CHPOINT' TS/'FLOTTANT' ; PREF = 101325. ; 'SI' ('<EG' PTOT PREF) ; P = PTOT '*' PREF ; 'FINSI' ; RHE = 2077.22 ; CPHE = 5193. ; C1 = 9.489433E-04 ; C2 = 9.528079E-04 ; C3 = 3.420680E-02 ; C4 = 2.739470E-03 ; C5 = 9.409120E-04 ; 'SI' ('EXIST' T ) ; B = B '+' C1 ; MUHE = ( T '**' 0.687) '*' 3.953E-07 ; LHE = ( T '**' 0.701 ) '*' 2.774E-03 ; 'RESPROC' RHOHE MUHE LHE CPHE ; 'FINSI' ; 'SI' ('EXIST' TS ) ; B = 1.0 '/' (TS '*' C5 '+' 1.0) ; B = B '*' C4 '-' (C2 '/' (TS '*' C3 '-' 1.0)) ; B = B '+' C1 ; RHOHE = (P '/' (TS '*' RHE '+' (B '*' P))); MUHE = ( TS '**' 0.687) '*' 3.953E-07 ; LHE = ( TS '**' 0.701 ) '*' 2.774E-03 ; 'RESPROC' RHOHE MUHE LHE CPHE ; 'FINSI' ; 'FINPROC' ; * NOM : PRPCB * Conductivité thermique d'un combustible CerCer * Input : T ou TS : temperature sous forme de CHPOINT ou FLOTTANT * (en K) * Domaine de validité : 500 a 1300 degres C * PORO : Porosité de taille contrôlée * BETA : Coefficient pour la prise en compte de la porosité * dans la loi de Maxwell-Eucken * IRRAD : Combustible irradié ou pas ? * Si irradié, on choisit un taux de combustion de 10 at% * pour le (U,PU)C et une température d'irradiation * égale à 1125°C pour le SiC . * FVOL : Fraction volumique d'inclusions (U,Pu)C * Le reste est de la matrice (SiC) * Output : LUPU : conductivité thermique du (U,Pu) de meme type que T * LSIC : conductivité thermique du Sic de meme type que T * LCB : conductivité thermique du combustible CerCer 'DEBPROC' PRPCB PORO*'FLOTTANT' BETA*'FLOTTANT' IRRAD*'LOGIQUE' FVOL*'FLOTTANT' T/'CHPOINT' TS/'FLOTTANT' ; * (U,Pu)C C1 = 12.76D0 ; C2 = 8.71D-3 ; C3 = -1.88D-6 ; * SiC A = 42.58D0 ; B = -1.5564D4 ; C = 1.2977D7 ; D = -1.8458D9 ; * SiC irradié E = 3.91112D-2 ; F = 2.24732D-3 ; TIRRADC = 1125.D0 ; 'SI' ('EXISTE' T) ; TC = '-' T 273.15D0 ; TC2 = '**' TC 2 ; * (U,Pu)C non irradie et 100% dense LUPU1 = '+' ('+' ('*' TC C2) ('*' TC2 C3)) C1 ; * (U,Pu)C non irradie poreux CPOR = '/' ('-' 1.D0 PORO) ('+' 1.D0 ('*' BETA PORO)) ; LUPU2 = '*' LUPU1 CPOR ; * (U,Pu)C irradie poreux 'SI' IRRAD ; CIRRAD = ('-' 1.D0 ('*' 0.02D0 10.D0)) ; LUPU = '*' LUPU2 CIRRAD ; 'SINON' ; LUPU = LUPU2 ; 'FINSI' ; * SiC non irradie et 100% dense IT = 'INVERSE' T ; IT2 = '**' IT 2 ; IT3 = '*' IT2 IT ; LSIC1 = '+' ('+' ('*' IT B) ('+' ('*' IT2 C) ('*' IT3 D))) A ; * SiC irradie 'SI' IRRAD ; CIRRAD = '*' ('EXP' ('*' TIRRADC F)) E ; LSIC = '*' LSIC1 CIRRAD ; 'SINON' ; LSIC = LSIC1 ; 'FINSI' ; * CerCer LMAT = LSIC ; LINCL = LUPU ; LMAT2 = '*' LMAT 2.D0 ; LMI = '-' LMAT LINCL ; NUMER = '+' LINCL ('+' LMAT2 ('*' LMI ('*' -2.D0 FVOL))) ; DENOM = '+' LINCL ('+' LMAT2 ('*' LMI FVOL)) ; LCB = '*' LMAT ('*' NUMER ('INVERSE' DENOM)) ; 'RESPROC' LUPU LSIC LCB ; 'FINSI' ; 'SI' ('EXISTE' TS) ; TSC = '-' TS 273.15D0 ; TSC2 = '**' TSC 2 ; * (U,Pu)C non irradie et 100% dense LUPU1 = '+' ('+' ('*' TSC C2) ('*' TSC2 C3)) C1 ; * (U,Pu)C non irradie poreux CPOR = '/' ('-' 1.D0 PORO) ('+' 1.D0 ('*' BETA PORO)) ; LUPU2 = '*' LUPU1 CPOR ; * (U,Pu)C irradie poreux 'SI' IRRAD ; CIRRAD = ('-' 1.D0 ('*' 0.02D0 10.D0)) ; LUPU = '*' LUPU2 CIRRAD ; 'SINON' ; LUPU = LUPU2 ; 'FINSI' ; * SiC non irradie et 100% dense ITS = '/' 1.D0 TS ; ITS2 = '**' ITS 2 ; ITS3 = '*' ITS2 ITS ; LSIC1 = '+' ('+' ('*' ITS B) ('+' ('*' ITS2 C) ('*' ITS3 D))) A ; * SiC irradie 'SI' IRRAD ; CIRRAD = '*' ('EXP' ('*' TIRRADC F)) E ; LSIC = '*' LSIC1 CIRRAD ; 'SINON' ; LSIC = LSIC1 ; 'FINSI' ; * CerCer LMAT = LSIC ; LINCL = LUPU ; LMAT2 = '*' LMAT 2.D0 ; LMI = '-' LMAT LINCL ; NUMER = '+' LINCL ('+' LMAT2 ('*' LMI ('*' -2.D0 FVOL))) ; DENOM = '+' LINCL ('+' LMAT2 ('*' LMI FVOL)) ; LCB = '*' LMAT ('*' NUMER ('/' 1.D0 DENOM)) ; 'RESPROC' LUPU LSIC LCB ; 'FINSI' ; 'FINPROC' ; * NOM : CALCUL * DESCRIPTION : Boucle de calcul 'DEBPROC' CALCUL ; * * Puissance volumique dans le combustible * voltot = haut '*' ('/' 1.D0 8.D0) '*' pas '*' pas '*' t30 ; pmoy = '*' pvol ('/' voltot volcb) ; 'SI' ('NON' pvar) ; pcb = pmoy ; 'SINON' ; gamma = 1.5D0 ; raddeg = '/' 180.D0 PI ; zmoy = '/' haut 2.D0 ; zcb = '+' zcb ('*' zmoy -1.D0) ; pmax = '*' pmoy ('/' gamma ('SIN' ('*' raddeg gamma))) ; fccos = '/' (2.D0 '*' gamma '*' raddeg) haut ; pcb1 = '*' ('COS' ('*' zcb fccos)) pmax ; puis1 = 'MAXIMUM' ('RESULT' ('*' chvol pmoy)) ; puis2 = 'MAXIMUM' ('RESULT' ('*' chvol pcb1)) ; 'SI' ('NON' ('EGA' puis1 puis2 ('*' 0.01 ('ABS' puis2)))) ; 'MESSAGE' ('CHAINE' 'puis1 = ' puis1 ) ; 'MESSAGE' ('CHAINE' 'puis2 = ' puis2 ) ; 'ERREUR' 'Les deux puissances devraient etre a peu pres egales' ; 'FINSI' ; * Correction facor = '/' puis1 puis2 ; pcb2 = '*' pcb1 facor ; 'FINSI' ; * * Débit d'hélium * qhe = qhenom ; 'MESSAGE' ('CHAINE' 'Débit=' qhe ' kg.m-2.s-1') ; * * Initialisation des tables pour les calculs thermiques * dans le combustible et dans l'hélium * rvcb = 'EQEX' rvcb 'OPTI' 'EF' 'IMPL' 'ZONE' $mtcb 'OPER' 'LAPN' 'LCB' 'INCO' 'TCB' ; rvcb = 'EQEX' rvcb 'OPTI' 'EF' 'IMPL' 'ZONE' $mtcb 'OPER' 'FIMP' 'PCB' 'INCO' 'TCB' ; rvcb = 'EQEX' rvcb 'OPTI' 'EF' 'IMPL' 'ZONE' $mtif 'OPER' 'ECHI' 'H' 'T0' 'INCO' 'TCB' 'TCB' ; rvhe = 'EQEX' rvhe 'OPTI' 'EF' 'IMPL' 'CENTREE' 'NOCONS' 'ZONE' $mthe 'OPER' 'KONV' 'RCPHE' 'UHE' 'LHE' 'INCO' 'THE' ; rvhe = 'EQEX' rvhe 'OPTI' 'EF' 'IMPL' 'ZONE' $mthe 'OPER' 'LAPN' 'LHE' 'INCO' 'THE' ; rvhe = 'EQEX' rvhe 'OPTI' 'EF' 'IMPL' 'ZONE' $mthe 'OPER' 'FIMP' 'PHE' 'INCO' 'THE' ; rvhe = 'EQEX' rvhe rvi = 'TABLE' 'INCO' ; rvcb . 'INCO' = rvi ; rvhe . 'INCO' = rvi ; lupu lsic lcb = PRPCB por bet irrad fvo theek ; rvi . 'PCB' = pcb ; * * Initialisation des propriétés physiques de l'hélium * rhe muhe lhe cphe = PRPHE prhe theek ; uhe = '/' qhe rhe ; rvi . 'QHE' = qhe ; *'OPTION' 'DONN' 5 ; *************************************** * * BOUCLE DE CALCUL * *************************************** 'REPETER' bouc 10 ; * 1) Calcul de la température moyenne dans l'hélium ('-' ('MAXIMUM' tmoyhe) 273.15D0) ; * 2) Transfert sur l'interface tmtif = '*' mcf tmoyhe ; * 3) Calcul du coefficient d'échange à l'interface * et des propriétés physiques du combustible * à partir des températures à l'instant précédent. * Température de mélange tm = rvi . 'T0' ; * Température à la paroi t0 = '*' ('+' tm tp) 0.5D0 ; * t0 = rvi . 'T0' ; rho0 mu0 l0 cp0 = PRPHE prhe t0 ; pran0 = '*' ('*' mu0 cp0) ('INVERSE' l0) ; reyn0 = '*' ('*' qhe diam) ('INVERSE' mu0) ; * Corrélation de Colburn nuss0 = 0.023 '*' ('**' reyn0 0.8D0) '*' ('**' pran0 ('/' 1.D0 3.D0)) ; h0 = '/' ('*' nuss0 l0) diam ; * Propriétés physiques du combustible lupu lsic lcb = PRPCB por bet irrad fvo tcbck ; * 4) Résolution de la thermique dans le combustible EXEC rvcb ; * 5) Calcul du flux de chaleur à la surface du combustible 'ZONE' $mtif 'OPER' 'MDIA' 'H' 'INCO' 'TCB' 'F0' ; rvmdia1 . 'INCO' = rvi ; 'ZONE' $mtif 'OPER' 'MDIA' 'H' 'INCO' 'T0' 'F0' ; rvmdia2 . 'INCO' = rvi ; ; ('MAXIMUM' ('RESULT' f0)) ; * 6) Transfert en une puissance volumique dans l'hélium rvi . 'F0' = f0 ; phe = '*' mfc f0 ; * * 7) Calcul des propriétés de physiques de l'hélium * a partir des propriétés à l'instant précédent. * thesk = rvi . 'THE' ; rhec muhec lhec cphec = PRPHE prhe theck ; rhes muhes lhes cphes = PRPHE prhe thesk ; * 8) Calcul de la température dans l'hélium EXEC rvhe ; 'FIN' bouc ; 'RESPRO' rvi ; 'FINPROC' ; * * Fin des procédures * ************************************************************************ 'OPTION' 'ECHO' 1 ; 'TEMPS' 'ZERO' ; 'OPTION' 'ISOV' 'SULI' ; nbisov = 25 ; 'SI' ('NON' interact) ; 'OPTION' 'TRAC' 'PSC' ; 'OPTION' 'ECHO' 0 ; 'SINON' ; 'OPTION' 'TRAC' 'X' ; 'FINSI' ; formflot ='(1PE9.2)' ; *************************************** * * MAILLAGE * *************************************** * géométrie pas = 21.1D-3 ; diam = 16.5D-3 ; haut = 2.D0 ; *nbase = 10 ; *nhaut = 20 ; *nbase = 7 ; nbase = 5 ; nhaut = 15 ; * * Physique * * gaz prhe = 90.D0 ; * débit d'hélium (kg.m-2.s-1) qhenom = 210.D0 ; ** en K ! theec = 480.D0 ; theek = '+' theec 273.15D0 ; * * Combustible * * * Porosité (15%) et coefficient beta (2) * por = 0.15D0 ; bet = 2.D0 ; * * Fraction volumique d'inclusions (U,Pu)C (70% pour * le combustible performant) * fvo = 0.7D0 ; * * Attention a la définition de la puissance volumique. * Ici, c'est la puissance totale dégagée par le combustible * divisée par le volume total (combustible+refroidissement) * Donc, il y a une correction pour avoir la puissance générée par unité * de volume de combustible (cf. variable pvol) * pvol = 1.D+8 ; titglob = 'CHAINE' ' Nominal' ; 'SI' irrad ; titglob = 'CHAINE' titglob ' Cb irradie' ; 'SINON' ; titglob = 'CHAINE' titglob ' Cb neuf' ; 'FINSI' ; q = '/' pas 2.D0 ; R = '/' diam 2.D0 ; s30 = 'SIN' 30.D0 ; c30 = 'COS' 30.D0 ; t30 = '/' s30 c30 ; * longueurs de chaque ligne lcer = ('*' ('/' PI 6.D0) R) ; lpdia = '-' q R ; lgdia = '-' ('/' q c30) R ; lhex = ('*' q t30) ; * On choisit comme échelle la plus petite des longueurs * On calcule les facteurs qui permettent d'avoir un maillage * a peu près régulier en longueurs fcer = '/' lcer lbase ; fpdia = '/' lpdia lbase ; fgdia = '/' lgdia lbase ; fhex = '/' lhex lbase ; * maillage rbase = 'FLOTTANT' nbase ; ncer = '*' rbase fcer ; nhex = '*' rbase fhex ; npdia = '*' rbase fpdia ; ngdia = '*' rbase fgdia ; * ncer = 'ENTIER' ('+' ncer 0.99D0) ; nhex = 'ENTIER' ('+' nhex 0.99D0) ; npdia = 'ENTIER' ('+' npdia 0.99D0) ; ngdia = 'ENTIER' ('+' ngdia 0.99D0) ; 'SI' ('EGA' discr 'LINE') ; 'SINON' ; 'FINSI' ; * définition des points pour le combustible p0 = 0.D0 0.D0 ; p1 = R 0.D0 ; p2 = q 0.D0 ; p3 = q ('*' q t30) ; p4 = ('*' R c30) ('*' R s30) ; * définition des lignes pour le combustible l1 = 'DROIT' npdia p1 p2 ; l2 = 'DROIT' nhex p2 p3 ; l3 = 'DROIT' ngdia p3 p4 ; l4 = 'CERCLE' ncer p4 p0 p1 ; * définition des surfaces pour le combustible ctn = l1 'ET' l2 'ET' l3 'ET' l4 ; stcb = 'SURFACE' ctn 'PLANE' ; * définition des points pour l'hélium (un triangle isocèle de surface * égale au secteur circulaire) Rp = '*' R ('**' ('/' PI 3.D0) 0.5D0) ; p5 = Rp 0.D0 ; p6 = ('*' Rp c30) ('*' Rp s30) ; sthe = 'MANUEL' 'TRI3' p0 p5 p6 ; 'SI' ('NON' ('EGA' discr 'LINE')) ; sthe = 'CHANGER' 'QUADRATIQUE' sthe ; 'FINSI' ; *'TRACER' (stcb 'ET' sthe) ; * 'SI' ('EGA' discr 'LINE') ; 'SINON' ; 'FINSI' ; hnh = '/' haut ('FLOTTANT' nhaut) ; vechau = 0.D0 0.D0 hnh ; * définition des éléments dans une hauteur élémentaire bahe = sthe ; mtif1 = 'TRANSLATION' l4 1 vechau ; mthe = mthe1 ; mtif = mtif1 ; mtcb = mtcb1 ; tabfac = 'TABLE' ; tabele = 'TABLE' ; icpt = 1 ; 'REPETER' imtif1 nmtif1 ; tabfac . icpt = lmtif1 ; tabele . icpt = mthe1 ; icpt = '+' icpt 1 ; 'FIN' imtif1 ; * Génération par translation de la hauteur 'REPETER' ihaut ('-' nhaut 1) ; vectran = 0.D0 0.D0 ('*' hnh ('FLOTTANT' &ihaut)) ; 'REPETER' imtif2 nmtif2 ; tabfac . icpt = lmtif2 ; tabele . icpt = mthe2 ; icpt = '+' icpt 1 ; 'FIN' imtif2 ; mthe = 'ET' mthe2 mthe ; mtif = 'ET' mtif2 mtif ; mtcb = 'ET' mtcb2 mtcb ; 'FIN' ihaut ; * Génération des lignes dans l'hélium vechaut = 0.D0 0.D0 haut ; mt = ('ET' mthe mtcb) ; 1.D-3 ; 'ELIMINATION' (mtif 'ET' mtcb) pelim ; 'ELIMINATION' (mthe 'ET' bahe 'ET' lighe1 'ET' lighe2 'ET' lighe3) pelim ; * * Génération des QUAFs * _bahe = 'CHANGER' bahe 'QUAF' ; _mthe = 'CHANGER' mthe 'QUAF' ; _mtif = 'CHANGER' mtif 'QUAF' ; _mtcb = 'CHANGER' mtcb 'QUAF' ; *************************************** * * CREATION DE LA MATRICE DE COUPLAGE * *************************************** * * Génération de connectivites face-centre cfc * et des matrices de passage centre-face pour projeter T0 * et face-centre pour ramener une intégrale de flux * a une puissance volumique * 'REPETER' iitab nitab ; ifac = tabfac . &iitab ; iqfac = 'CHANGER' ifac 'QUAF' ; miqfac = 'MODELISER' iqfac 'NAVIER_STOKES' 'QUAF'; iele = tabele . &iitab ; iqele = 'CHANGER' iele 'QUAF' ; miqele = 'MODELISER' iqele 'NAVIER_STOKES' 'QUAF'; * Attention ('MESU' iele) ne fonctionne pas en axisymetrique clfc = 'MANUEL' 'SEG2' ciqfac ciqele ; 'SI' ('EGA' &iitab 1) ; cfc = clfc ; mcf = mlcf ; mfc = mlfc ; 'SINON' ; cfc = 'ET' cfc clfc ; mcf = 'ET' mcf mlcf ; mfc = 'ET' mfc mlfc ; 'FINSI' ; 'FIN' iitab ; 'ELIMINATION' (_bahe 'ET' _mthe 'ET' cfc) pelim ; 'ELIMINATION' (_mtcb 'ET' _mtif 'ET' cfc) pelim ; *************************************** * * PREPARATION DU CALCUL * *************************************** * * Modèles Navier-Stokes * $bahe = 'MODELISER' _bahe 'NAVIER_STOKES' discr ; $mthe = 'MODELISER' _mthe 'NAVIER_STOKES' discr ; $mtif = 'MODELISER' _mtif 'NAVIER_STOKES' discr ; $mtcb = 'MODELISER' _mtcb 'NAVIER_STOKES' discr ; rvi = CALCUL ; tcpu = TABTPS.'TEMPS_CPU'.'INITIAL' ; tcpus = '/' ('FLOTTANT' tcpu) 100.D0 ; 'MESSAGE' ('CHAINE' 'tcpus=' tcpus) ; *************************************** * * POST-TRAITEMENT * *************************************** 'SI' graph ; * * Maillage (+ changement d'échelle adéquat) * _mt = 'ET' _mthe _mtcb ; mt = 'ET' mthe mtcb ; zmt = 'COORDONNEE' 3 _mt ; factech = ('-' ('/' 1.D0 75.D0) 1.D0) ; orig = 'FORME' ; 'FORME' dxmt ; xmthe ymthe zmthe = 'COORDONNEE' mthe ; factech = ('-' ('/' 1.D0 4.D0) 1.D0) ; dxmt = 'ET' ; * manipulation maillage et champ de temperature tcbc = ('-' (rvi . 'TCB') 273.15D0) ; tcbc2 mtcb2 = tcbc mtcb 'TOURNER' 150.D0 (0.D0 0.D0 0.D0) (0.D0 0.D0 1.D0) ; thec = ('-' (rvi . 'THE') 273.15D0) ; xmt ymt zmt = 'COORDONNEE' _mt ; mxmt = 'MAXIMUM' xmt ; mymt = 'MAXIMUM' ymt ; mzmt = 'MAXIMUM' zmt ; oeil = (('*' mxmt 3.D0) ('*' mymt -4.D0) ('*' mzmt 2.85D0)) ; oeil2 = (('*' mxmt 3.D0) ('*' mymt 4.D0) ('*' mzmt 1.85D0)) ; mail = 'ET' mtcb mthe2 ; titmail = 'CHAINE' 'Maillage ' 'NBPO=' npomail ' NBELEM=' nelmail titglob ; 'TRACER' oeil 'CACH' mail 'TITR' titmail ; * * Tracé des températures, du coefficient d'échange et de la * composante verticale des vitesses * tracchpo oeil (tcbc 'ET' tcbc2 'ET' thec2) (mtcb 'ET' mtcb2 'ET' mthe2) tit ; *tracchpo oeil tcbc mtcb tit ; *tracchpo oeil tcbc2 mtcb2 tit ; tracchpo oeil (tcbc 'ET' tcbc2) (mtcb 'ET' mtcb2) tit ; * Coefficient d'echange tit = 'CHAINE' 'Coeff. echange (W.m-2.K-1)' ; tracchml oeil $mtif (rvi . 'H') mtif tit ; tracchpo oeil ('-' (rvi . 'THE') 273.15D0) mthe tit ; tit = 'CHAINE' 'Uz He (m.s-1)' ; 'FORME' orig ; * * Evolutions temperature et vitesse * dans les deux tubes d'hélium nominal et bouche * titxthe = 'CHAINE' 's (m)' ; titythe = 'CHAINE' 'T (°C)' ; tthe = 'TABLE' ; tthe . 1 = 'CHAINE' 'MARQ CROI' ; *tthe . 'TITRE' = 'TABLE' ; *tthe . 'TITRE' . 1 = 'CHAINE' 'Theda(T) kg.m-3(°C)' ; 'DESSIN' evthe1 'TITR' titthe 'TITX' titxthe 'TITY' titythe 'MIMA' tthe ; * rviuhe = rvi . 'UHE' ; tituzhe = 'CHAINE' 'Vitesse verticale Helium' ; titxuzhe = 'CHAINE' 's (m)' ; tityuzhe = 'CHAINE' 'uz (m.s-1)' ; tuzhe = 'TABLE' ; tuzhe . 1 = 'CHAINE' 'MARQ CROI' ; *tuzhe . 'TITRE' = 'TABLE' ; *tuzhe . 'TITRE' . 1 = 'CHAINE' 'Uzheda(T) kg.m-3(°C)' ; 'DESSIN' evuzhe1 'TITR' tituzhe 'TITX' titxuzhe 'TITY' tityuzhe 'MIMA' tuzhe ; 'FINSI' ; * * Tableau recapitulatif et vérifications diverses * optecho = 'VALEUR' 'ECHO' ; 'OPTION' 'ECHO' 0 ; 'MESSAGE' '**************' ; 'MESSAGE' ('CHAINE' 'couplage_TH1D_Th3D_1 :' titglob) ; mail = mtcb 'ET' mthe ; 'MESSAGE' ('CHAINE' 'Temps CPU (s)=' tcpus) ; 'MESSAGE' '-----------' ; 'MESSAGE' 'Verifications :' ; thek = rvi . 'THE' ; uhe = rvi . 'UHE' ; * Symétrie température dans lhélium the2m1 = 'MAXIMUM' ('-' the2 the1) 'ABS' ; the3m1 = 'MAXIMUM' ('-' the3 the1) 'ABS' ; testsym1 = > the2m1 1.D-5 ; testsym2 = > the3m1 1.D-5 ; 'MESSAGE' ('CHAINE' 'the2m1=' the2m1) ; 'MESSAGE' ('CHAINE' 'the3m1=' the3m1) ; 'SI' ('OU' testsym1 testsym2) ; 'FINSI' ; * Symétrie Uz dans lhélium uzhe2m1 = 'MAXIMUM' ('-' uzhe2 uzhe1) 'ABS' ; uzhe3m1 = 'MAXIMUM' ('-' uzhe3 uzhe1) 'ABS' ; testsym3 = > uzhe2m1 1.D-5 ; testsym4 = > uzhe3m1 1.D-5 ; 'MESSAGE' ('CHAINE' 'uzhe2m1=' uzhe2m1) ; 'MESSAGE' ('CHAINE' 'uzhe3m1=' uzhe3m1) ; 'SI' ('OU' testsym3 testsym4) ; 'FINSI' ; * Nullité Vitesse horizontale dans lhélium muhex = 'MAXIMUM' uhex 'ABS' ; muhey = 'MAXIMUM' uhey 'ABS' ; testsymx = > muhex 1.D-5 ; testsymy = > muhey 1.D-5 ; 'MESSAGE' 'Nullité Vitesse horizontale dans lhélium :' ; 'MESSAGE' ('CHAINE' 'maxuhex=' muhex) ; 'MESSAGE' ('CHAINE' 'maxuhey=' muhey) ; 'SI' ('OU' testsymx testsymy) ; 'FINSI' ; * Verification des bilans d'énergie * Puissance dégagée dans le combustible pcb = rvi . 'PCB' ; pdegcb = 'MAXIMUM' ('RESULT' ('*' chvolcb pcb)) ; * Flux intégré sur la paroi f0 = rvi . 'F0' ; pdegif = 'MAXIMUM' ('RESULT' f0) ; errpif = '*' (ERRREL pdegif pdegcb) 100.D0 ; * Puissance acquise par l'hélium * Température en sortie the = rvi . 'THE' ; tent = 'EXTRAIRE' the 1 ; * On utilise le fait que le cp de l'hélium * est à peu près constant rhes muhes lhes cphes = PRPHE prhe tent ; qhe = rvi . 'QHE' ; pdeghe = qhe '*' she '*' cphes '*' ('-' tsor tent) ; errphe = '*' (ERRREL pdeghe pdegcb) 100.D0 ; 'MESSAGE' 'Bilan energie :' ; 'MESSAGE' ('CHAINE' 'pdegcb=' pdegcb) ; 'MESSAGE' ('CHAINE' 'pdegif=' pdegif ' ; errpif=' errpif ' %') ; 'MESSAGE' ('CHAINE' 'pdeghe=' pdeghe ' ; errphe=' errphe ' %') ; * Ce sont des erreurs en % (i.e. limite à 0.1%) testene1 = > errpif 1.D-1 ; testene2 = > errphe 1.D-1 ; 'SI' ('OU' testene1 testene2) ; 'MESSAGE' '!! Pb. conservation de lenergie' ; 'FINSI' ; * Verification du péclet de maille dans l'helium alphhe = '/' (rvi. 'LHE') (rvi . 'RCPHE') ; peclhe = '/' ('*' vmoyhe lmoyhe) alphhe ; pemin = 'MINIMUM' peclhe ; pemax = 'MAXIMUM' peclhe ; 'MESSAGE' 'Peclet de maille helium :' ; 'MESSAGE' ('CHAINE' 'pemin=' pemin) ; 'MESSAGE' ('CHAINE' 'pemax=' pemax) ; * Temperature de sortie helium et temp. max combustible 'MESSAGE' '-----------' ; 'MESSAGE' 'Resultats Helium :' ; the = rvi . 'THE' ; thee = 'EXTRAIRE' othe 1 ; uhee = 'EXTRAIRE' ouhe 1 ; 'MESSAGE' ('CHAINE' 'Vit. entree helium =' uhee ' m.s-1') ; 'MESSAGE' ('CHAINE' 'Vit. sortie helium =' uhes ' m.s-1') ; ' degres C') ; ' degres C') ; 'MESSAGE' '-----------' ; 'MESSAGE' 'Resultats Combustible :' ; tcb = rvi . 'TCB' ; tmincbc = '-' ('MINIMUM' tcb) 273.15D0 ; tmaxcbc = '-' ('MAXIMUM' tcb) 273.15D0 ; 'MESSAGE' ('CHAINE' ' altitude =' amincbc ' m') ; 'MESSAGE' ('CHAINE' ' altitude =' amaxcbc ' m') ; * Tests sur Tmax (02/12/03) * On utilise une discrétisation linéaire et une puissance variable 'SI' ('ET' ('EGA' discr 'LINE') pvar) ; 'SI' irrad ; tmref = 1.15458D3 ; altref = 1.2D0 ; 'SINON' ; tmref = 1.10135D3 ; altref = 1.2D0 ; 'FINSI' ; errtm = '*' (ERRREL tmaxcbc tmref) 100.D0 ; erral = '*' (ERRREL amaxcbc altref) 100.D0 ; 'MESSAGE' ('CHAINE' ' alt. ref =' altref ' m') ; testtmax = 'OU' (> errtm 1.D-1) (> erral 1.D-1) ; 'SI' testtmax ; 'MESSAGE' '!! Pb. sur Tmax' ; 'FINSI' ; 'MESSAGE' '**************' ; 'SINON' ; testmax = FAUX ; 'FINSI' ; 'OPTION' 'ECHO' optecho ; *! *! Error checking *! testerr = testsym1 'OU' testsym2 'OU' testsym3 'OU' testsym4 'OU' testsymx 'OU' testsymy 'OU' testene1 'OU' testene2 'OU' testtmax ; 'SI' testerr ; 'MESSAGE' 'Il y a eu des erreurs' ; 'ERREUR' 5 ; 'FINSI' ; 'SI' interact ; 'OPTION' 'DONN' 5 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales