$$$$ CHARTHER * CHARTHER PROCEDUR PASCAL 13/07/24 21:15:02 7799 'DEBP' charther PRECED*'TABLE' tt*'FLOTTANT' IAPPEL*ENTIER; *mess ' entree dans charther tt vaut ' tt ' *****' ; * IAPPEL vaut - 1 si l'appel vient de DUPONT2 * - 2 si premier appel de TRANSNON * - 3 si deuxième appel de TRANSNON * TAA=TABLE; ETAB=PRECED.'WTABLE'; 'SI' ETAB.'RAYO'; * pour le rayonnement le calcul des facteurs de forme et des matrices et du * chpoint est à faire si appel par DUPONT2 * Seul le calul des facteurs de formes en cas du premier appel par TRANSNON * Seuls les matrices et CHPOINT pour deuxieme appel par TRANSNON * * travail pas beau sur le rayonnement pour ne pas tout refaire tout de * suite!!!!! pour cela on recree la table rayo_val * mor= etab.'MOD_RAY'; mar= etab.'MAT_RAY'; tabray= 'EXTR' mor 'ZONE'; NDIM3 = ('DIME' tabray) / 2 ; rayo_val=table; repe iuy ndim3; ia= 2*&iuy - 1; tabr= table; rayo_val . &iuy =tabr; tabr. 'MODELE'= tabray . ia; 'SI' ('EXISTE' tabr.'MODELE' 'MATE' 'CAVITE' ); tabr.'TYPE'= 'CAVITE'; 'SINON'; 'SI' ('EXISTE' tabr.'MODELE' 'MATE' 'INFINI'); tabr.'TYPE'= 'INFINI'; tabr.'EMIS_INFI'=1.; 'SINON'; tabr.'TYPE'= 'FAC_A_FAC'; 'FINSI'; 'FINSI'; fin iuy; NDIM3 = 'DIME' RAYO_VAL; * premiere partie du rayonnement calcul des facteurs de formes. 'SI' ('<' IAPPEL 3 ) ; 'SI'('EXISTE' ETAB 'CTE_STEFAN_BOLTZMANN') ; CTE_SB = ETAB.'CTE_STEFAN_BOLTZMANN' ; 'SINON' ; CTE_SB = 5.673E-8 ; 'MESS' 'ATTENTION ! Constante de Stefan-Boltzmann en unités SI' ; 'MESS' ' soit ' CTE_SB ; 'FINSI' ; etab.'DEJA_CALC_CHARTHER'=TT; ifacfo=0; 'SI'(ETAB.'REA_GEOM' 'OU' ('NON' ('EXISTE' etab 'FAC_FORM'))); ifacfo=1;'FINSI'; 'SI' ( 'NON' ('EXIS' etab 'FAC_FORM')); etab .'FAC_FORM'= 'TABLE'; 'FINSI'; 'REPETER' BOU_RAY NDIM3 ; mora= rayo_val . &BOU_RAY .'MODELE'; mara= 'REDU' mar mora; *! 'SI' ( 'EXIS' mora 'MATE' 'CAVITE'); 'SI' ( ( 'EXIS' mora 'MATE' 'CAVITE') 'ET' ('EGA' ifacfo 1) ); etab . 'FAC_FORM' . &bou_ray = 'FFOR' mora mara; 'FINSI' ; * *---On profite de la boucle pour vérifier s'il y a rayonnement à l'infin * ou face a face 'SI'('EXIS' mora 'MATE' 'INFINI' ); 'SI' ('NON' ('EXISTE' RAYO_VAL.(&BOU_RAY) 'EMIS_INFI' )); RAYO_VAL . (&BOU_RAY) . 'EMIS_INFI' = 1.; 'FINSI' ; 'FINSI' ; 'FIN' BOU_RAY ; 'FINSI'; * deuxieme partie du rayonnement calcul matrices et chpoint 'SI' ( ('EGA' IAPPEL 1 ) 'OU' ( 'EGA' IAPPEL 3)); TREF=ETAB.'TREF'; TEMM=TT; CTE_SB = ETAB.'CTE_STEFAN_BOLTZMANN' ; U0=ETAB.'THER_COURANT' + TREF; MAT_CHPO=(U0 'EXCO' 'T' 'Q' )*0.; MAT_CHPO= CHANG 'ATTRIBUT' MAT_CHPO 'NATURE' 'DISCRET'; NDIM3 = 'DIME' (RAYO_VAL) ; 'REPETER' BOU_RA1 NDIM3 ; CH_EMI = 'REDU' ETAB.'CHMAT' (RAYO_VAL.(&BOU_RA1).'MODELE') ; CH_EMI2 = 'CHAN' 'NOEUD' (RAYO_VAL.(&BOU_RA1).'MODELE') CH_EMI ; MAIL_RAD = 'EXTR' CH_EMI 'MAIL' ; CH_RAD = 'REDU' U0 MAIL_RAD ; RTYPE = RAYO_VAL.(&BOU_RA1).'TYPE' ; *--------------------------------------------------------------------- 'SI' (NEG RTYPE 'CAVITE') ; *--------- Calcul des différents CHPOINT sur le maillage ---------- *------------- Cas du rayonnement à l'infini ------------------------- *------------------ou face a face -------------------------------- 'SI' ('EGA' RTYPE 'FAC_A_FAC' ) ; * on est en face a face * on recupere les obnjets par extraire obje fac1 fac2 geo mcv= 'EXTR' (RAYO_VAL.&BOU_RA1.'MODELE') 'OBJE'; * MCV = RAYO_VAL.(&BOU_RA1).'MO_CONV' ; * fac1 = RAYO_VAL.(&BOU_RA1).'FAC1' ; * fac2 = RAYO_VAL.(&BOU_RA1).'FAC2' ; mo_ray1 = 'REDU' (RAYO_VAL.(&BOU_RA1).'MODELE') FAC1 ; mo_ray2 = 'REDU' (RAYO_VAL.(&BOU_RA1).'MODELE') FAC2 ; ma_ray1 = 'REDU' CH_EMI2 mo_ray1 ; ma_ray2 = 'REDU' CH_EMI2 mo_ray2 ; * * CH_RAD = U0 'REDU' MAIL_RAD ; * * GEO = RAYO_VAL.(&BOU_RA1).'GEO' ; * * correction 06/12/06: on met d'abord la face 1 puis la face 2 * en cohérence avec l'orientation des éléments du maillage GEO MAT_RAD = HRAYO MCV mo_ray1 ma_ray1 ( 'REDU' CH_RAD fac1) mo_ray2 ma_ray2 ( 'REDU' CH_RAD fac2) GEO CTE_SB ; *TC list resu mat_rad; 'SINON' ; * rayonnement à l'infini CH_TER = 'TIRE' (ETAB.'CHARGEMENT') 'TERA' TEMM ; CH_TER = CH_TER + TREF ; mcv = ('EXTR' (RAYO_VAL.(&BOU_RA1).'MODELE') 'MAIL') 'MODE' 'THERMIQUE' CONVECTION ; mo_ray = RAYO_VAL.(&BOU_RA1).'MODELE' ; ma_ray = 'REDU' CH_EMI2 mo_ray ; ma_inf = 'MATE' mo_ray 'EMIS' (RAYO_VAL.(&BOU_RA1).'EMIS_INFI') ; CH_TE1 = 'REDU' CH_TER MAIL_RAD; * CH_RAD = U_BOU1 'REDU' MAIL_RAD ; * MAT_RAD= HRAYO MCV mo_ray ma_ray CH_RAD mo_ray ma_inf CH_TE1 CTE_SB ; * CHAL_TES = 'CONVECTION' MCV MAT_RAD CH_TE1 ; MAT_CHPO = MAT_CHPO + CHAL_TES ; 'FINSI' ; * RIG_RAD = 'CONDUCTIVITE' MCV MAT_RAD ; *TC list resu rig_rad; * 'SINON' ; *------------- Cas du rayonnement dans une cavite-------------------- *--------------------------------------------------------------------- * 'MESS' 'CH_RAD: ' ('MINI' CH_RAD) ('MAXI' CH_RAD); LDEFAUT=VRAI ; 'SI' ('EXIS' (RAYO_VAL.&BOU_RA1. 'MODELE') 'MATE' 'TRAYO' ); LDEFAUT= FAUX; 'FINSI'; * méthode avec calcul de la matrice de rayonnement 'SI' LDEFAUT; * méthode avec le calcul de la température de rayonnement * à l'infini équivalente à l'ensemble de la cavité pour la * face considérée * 'MESS' ' méthode 2'; U_CAK2 = 'CHAN' 'CHAM' (RAYO_VAL.(&BOU_RA1).'MODELE') CH_RAD 'GRAVITE' ; MRT = RAYO_VAL.(&BOU_RA1).'MODELE'; TCAV = 'RAYE' MRT 1.E-7 (ETAB.'FAC_FORM'.&BOU_RA1) CH_EMI U_CAK2; HRAD = HRCAV MRT CH_EMI U_CAK2 TCAV; TCAV_N1= 'CHAN' 'CHPO' MRT TCAV; TCAV_N = 'NOMC' TCAV_N1 'T' 'NATU' 'DIFFUS'; RIG_RAD = 'COND' MRT HRAD; CHAL_TES = 'CONV' MRT HRAD TCAV_N; MAT_CHPO = MAT_CHPO + CHAL_TES ; * list MAT_CHPO; 'SINON'; * (méthode par défaut) MAT_RAYE = 'RAYE' (RAYO_VAL.(&BOU_RA1).'MODELE') (ETAB.'FAC_FORM'.&BOU_RA1) CH_EMI ; U_CAK2 = 'CHAN' 'CHAM' (RAYO_VAL.(&BOU_RA1).'MODELE') CH_RAD 'GRAVITE' ; * ('REDU' U_BOU1 MAIL_RAD) 'GRAVITE' ; RIG_RAD = 'RAYN' (RAYO_VAL.(&BOU_RA1).'MODELE') MAT_RAYE U_CAK2 CTE_SB ; 'FINSI'; * MAT_COND = MAT_COND 'ET' RIG_RAD; 'FINSI'; 'SI' ( &BOU_RA1 'EGA' 1); bb= rig_rad ; 'SINON'; bb= rig_rad 'ET' bb; 'FINSI' ; 'FIN' BOU_RA1 ; TAA.'ADDI_SECOND'= MAT_CHPO; TAA.'ADDI_MATRICE'=bb ; TAA.'RAYO_VALEUR' = RAYO_VAL; 'FINSI'; 'FINSI'; 'FINPROC' TAA;