Download cfpflu.dgibi
Back to the list
* fichier : cfpflu.dgibi
OPTI ECHO 0 ;
**** @ACBLM
DEBPROC @ACBLM VXL*CHPOINT VYL*CHPOINT VZL*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Procedure de changement de base. On passe de la base cartesienne *
* locale de l'objet modelise a la base cartesienne du maillage. L' *
* axe Y de la base locale est dirige du point de tangence vers le *
* centre du plasma. Alain MOAL (juillet-aout 1995) *
********************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.'CENTRE_PLASMA' ;
PTG = TAB1.'PT_TGPLASMA' ;
SI ((VALEUR DIME) EGA 2) ;
SI (EXISTE TAB1 >>> TAB1.>>> TAB1.>>> @CBMLV' ; LIST VXL ; LIST VYL ; LIST VZL ;
FINPROC VXL VYL VZL ;
**** @ACRLM
DEBPROC @ACRLM XL*CHPOINT YL*CHPOINT ZL*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Procedure de changement de repere. On passe du repere cartesien *
* local de l'objet modelise au repere cartesien du maillage. Le *
* point de tangence au plasma est l'origine du repere local et *
* l'axe Y est dirige vers le centre du plasma. *
* Alain MOAL (juillet-aout 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.'CENTRE_PLASMA' ;
PTG = TAB1.'PT_TGPLASMA' ;
SI ((VALEUR DIME) EGA 2) ;
SI (EXISTE TAB1 >>> TAB1.>>> @CRMLC : TAB1.>>> @CRMLC : XL' ; LIST XL ; LIST YL ; LIST ZL ;
FINPROC XL YL ZL ;
**** @AMPLI
DEBPROC @AMPLI XV*CHPOINT YV*CHPOINT ZV*CHPOINT VALDIM*ENTIER
MAIL0*MAILLAGE ;
*
*************************************************************
* Procedure d'adaptation du facteur d'amplification utilise *
* pour visualiser un champ de vecteur sur une geometrie. *
* Alain MOAL (juillet 1995) *
*************************************************************
*
XM = COOR 1 MAIL0 ;
YM = COOR 2 MAIL0 ;
SI (VALDIM EGA 2) ;
ZM = XM * 0. ;
SINON ;
ZM = COOR 3 MAIL0 ;
FINSI ;
*
*---- norme du vecteur
VECNORM = ((XV * XV) + (YV * YV) + (ZV * ZV))**0.5 ;
*
*---- calcul d'une longueur caracteristique du maillage
LONGCAR1 = ABS ((MAXI XM) - (MINI XM)) ;
LONGCAR2 = ABS ((MAXI YM) - (MINI YM)) ;
LONGCAR3 = ABS ((MAXI ZM) - (MINI ZM)) ;
*
SI (VALDIM EGA 2) ;
LONGCAR = MINI (PROG LONGCAR1 LONGCAR2) ;
SINON ;
LONGCAR = MINI (PROG LONGCAR1 LONGCAR2 LONGCAR3) ;
FINSI ;
*
AMPLI0 = LONGCAR / (MAXI VECNORM) / 10.;
*
FINPROC AMPLI0 ;
**** @ANADES
DEBPROC @ANADES TAB1*TABLE ;
*
*************************************************
* Procedure (inspiree de @ANALY) permettant de *
* descendre les lignes de champ et de calculer *
* avec une methode analytique exacte les points *
* d'intersection sur le plan de reference pour *
* recuperer les valeurs du flux normalise. *
* Alain MOAL (Fevrier 2001) *
*************************************************
*
MESS '---------------------------------> calling @ANADES';
*
*--------------- VARIABLES D'ENTREE :
S_OMBRE = TAB1.LFLUX_EXTE ;
S_OMBRAN = TAB1. 0) ;
* ---- si il reste des noeuds non encore intersectes
LCOURAN1 = LCOURAN1 + PASB0 ;
MESS ' ';
MESS 'ITERATION : ' I1 'distance covered' LCOURAN1 ;
* ---- Appel de la procedure de descente des lignes de champ
XG_NEW YG_NEW ZG_NEW DEP0 = @DESCEND XG_OLD YG_OLD ZG_OLD
PASB0 CHSIGN1 TAB1 ;
* ---- test sur les eventuels noeuds interceptes
* ---- Les CHPO sont reduits sur les points de s_ombre
* ---- qui n'ont pas encore ete intersectes : s_ombre2
XG_OLD_R = REDU XG_OLD S_OMBRE2 ;
YG_OLD_R = REDU YG_OLD S_OMBRE2 ;
ZG_OLD_R = REDU ZG_OLD S_OMBRE2 ;
XG_NEW_R = REDU XG_NEW S_OMBRE2 ;
YG_NEW_R = REDU YG_NEW S_OMBRE2 ;
ZG_NEW_R = REDU ZG_NEW S_OMBRE2 ;
XG_OLD_R = NOMC X XG_OLD_R 'NATU' 'DIFFUS' ;
YG_OLD_R = NOMC Y YG_OLD_R 'NATU' 'DIFFUS' ;
ZG_OLD_R = NOMC Z ZG_OLD_R 'NATU' 'DIFFUS' ;
CH_OLD = XG_OLD_R ET YG_OLD_R ET ZG_OLD_R ;
XG_NEW_R = NOMC X XG_NEW_R 'NATU' 'DIFFUS' ;
YG_NEW_R = NOMC Y YG_NEW_R 'NATU' 'DIFFUS' ;
ZG_NEW_R = NOMC Z ZG_NEW_R 'NATU' 'DIFFUS' ;
CH_NEW = XG_NEW_R ET YG_NEW_R ET ZG_NEW_R ;
*
* ---- Test d'interception
* CHDIST9 MINTER CHFN9 DEPMP1 = @INTSEC CH_OLD CH_NEW TOL1 TAB1 ;
CHDIST9 MINTER CHFN9 DEPMP1 = IJET CH_OLD CH_NEW TOL1 TAB1 ;
* CHDIST9 = CHPO CONTENANT PAS POUR LES NOEUDS INTERSECTES
* ET D(M,PT_REMONTE) SINON
* S_OMBRE2 contient les noeuds de s_ombre qui n'ont
* pas ete intesectes
* s_ombre0 contient les noeuds qui ont deja ete intersectes
* minter contient les noeuds qui viennent d'etre intersectes
s_ombre0 = diff s_ombreP s_ombre2 ;
s_ombre2 = diff s_ombre2 MINTER ;
TITRE 'TEST : POINTS INTERCEPTES (BLANC ET JAUNE)' ;
TRAC ((s_ombre2 coul roug) et MINTER et
(s_ombre0 COUL JAUNE) et TAB1. 0) ;
DEP0 = DEP01 ET DEP02 ET DEPMP1 ;
SINON ;
DEP0 = DEP01 ET DEP02 ;
FINSI ;
FORM DEP0 ;
* ---- Test
* i9 = 0 ;
* repeter bouc01 (nbno (EXTR DEP0 'MAIL')) ;
* i9 = i9 + 1 ;
* list ((EXTR DEP0 'MAIL') poin i9) ;
* list (redu CHFN9 ((EXTR DEP0 'MAIL') poin i9)) ;
* fin bouc01 ;
* TITRE 'TEST : NOEUDS SUPPORTS DU DEPLACEMENT';
* TRAC (EXTR DEP0 'MAIL') ;
* ---- Fin test
TAB1. 0) ;
mess (NBNO MINTER) 'intercepted points';
LMAX1 = LCOURAN1 - pasb0 + (mini CHDIST9) ;
FINSI ;
* ---- Distances parcourues avant interception
chdist = chdist + CHDIST9 ;
chfnorm = chfnorm + chfn9 ;
mess 'mini maxi connection distance (m)'
(mini (prog lmax1 (mini chdist))) lmax1 ;
* list chfnorm ;
* --- construction des lignes de champ remontees
* --- Extraction des coordonnees des points a remonter
* xmailpt2 = redu XG_NEW mailpts ;
* ymailpt2 = redu YG_NEW mailpts ;
* zmailpt2 = redu ZG_NEW mailpts ;
*
* --- Construction des lignes de descentes
* repeter boupts3 npts ;
* xprem2 = extr xmailpt2 SCAL (tabpts1 . &boupts3) ;
* yprem2 = extr ymailpt2 SCAL (tabpts1 . &boupts3) ;
* zprem2 = extr zmailpt2 SCAL (tabpts1 . &boupts3) ;
* prem2 = xprem2 yprem2 zprem2 ;
* tablig1 . &boupts3 = (tablig1 . &boupts3) d 1 prem2 ;
* fin boupts3 ;
* --- actualisation des champs de coordonnees pour iteration suivante
XG_OLD = redu XG_NEW mailcou;
YG_OLD = redu YG_NEW mailcou;
ZG_OLD = redu ZG_NEW mailcou;
MENA ;
sinon ;
SI (I2 EGA 0) ;
MESS ' ';
MESS 'ALL POINTS ARE INTERCEPTED' ;
MESS ' ';
I2 = I1 ;
FINSI ;
finsi ;
FIN BOUCLE2 ;
*--- Sorties dans TAB1
TAB1. exiting @ANADES';
FINPROC chfnorm ;
**** @ANAJET
DEBPROC @ANAJET TAB1*TABLE ;
MESS '---------------------------------> calling @ANAJET';
MESS 'METHODE ANALYTIQUE' ;
*
*--------------- VARIABLES D'ENTREE :
*
S_OMBRE = TAB1.@ANAJET> procedure OMBJET, Rappel des parametres
de calcul ';
MESS ' ';
si (tab1. 0.) ;
* --- Les CHPO sont reduits sur les points de s_ombre
* --- qui n'ont pas encore ete intersectes : s_ombre2
XG_OLD_R = REDU XG_OLD S_OMBRE2 ;
YG_OLD_R = REDU YG_OLD S_OMBRE2 ;
ZG_OLD_R = REDU ZG_OLD S_OMBRE2 ;
XG_NEW_R = REDU XG_NEW S_OMBRE2 ;
YG_NEW_R = REDU YG_NEW S_OMBRE2 ;
ZG_NEW_R = REDU ZG_NEW S_OMBRE2 ;
XG_OLD_R = NOMC X XG_OLD_R 'NATU' 'DIFFUS' ;
YG_OLD_R = NOMC Y YG_OLD_R 'NATU' 'DIFFUS' ;
ZG_OLD_R = NOMC Z ZG_OLD_R 'NATU' 'DIFFUS' ;
CH_OLD = XG_OLD_R ET YG_OLD_R ET ZG_OLD_R ;
XG_NEW_R = NOMC X XG_NEW_R 'NATU' 'DIFFUS' ;
YG_NEW_R = NOMC Y YG_NEW_R 'NATU' 'DIFFUS' ;
ZG_NEW_R = NOMC Z ZG_NEW_R 'NATU' 'DIFFUS' ;
CH_NEW = XG_NEW_R ET YG_NEW_R ET ZG_NEW_R ;
*
* --- APPEL DE LA PROCEDURE DE CALCUL DES NOEUDS INTERSECTES
*
* CHDIST9 MINTER = @INTERC CH_OLD CH_NEW TOL1 TAB1 ;
CHDIST9 MINTER = ITRC CH_OLD CH_NEW TOL1 TAB1 ;
* CHDIST9 = CHPO CONTENANT PAS POUR LES NOEUDS INTERSECTES
* ET D(M,PT_REMONTE) SINON
* S_OMBRE2 contient les noeuds de s_ombre qui n'ont
* pas ete intesectes.
s_ombre2 = diff s_ombre2 MINTER ;
* actualisation du maillage de remontee
mailcou = s_ombre2 et mailpts ;
CHSIGN1 = REDU CHSIGN1 mailcou ;
SI ((NBNO MINTER) > 0) ;
mess 'nombre de noeuds intersectes ' (NBNO MINTER) ;
LMAX1 = LCOURAN1 - pasb0 + (mini CHDIST9) ;
FINSI ;
* --- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
mess 'mini maxi dist connection en m'
(mini (prog lmax1 (mini chdist))) lmax1 ;
finsi ;
* ------------------ fin du test d'interception ------------------
*-----------------------------------------------------------------
*--- construction des lignes de champ remontees
*--- Extraction des coordonnees des points a remonter
xmailpt1 = redu XG_NEW mailpts ;
ymailpt1 = redu YG_NEW mailpts ;
zmailpt1 = redu ZG_NEW mailpts ;
*--- Calcul des coordonnees des points a remonter dans le repere du maillage
xmailpt2 = xmailpt1 ;
ymailpt2 = ymailpt1 ;
zmailpt2 = zmailpt1 ;
*--- Construction des lignes de remontee
repeter boupts3 npts ;
xprem2 = extr xmailpt2 SCAL (tabpts1 . &boupts3) ;
yprem2 = extr ymailpt2 SCAL (tabpts1 . &boupts3) ;
zprem2 = extr zmailpt2 SCAL (tabpts1 . &boupts3) ;
prem2 = xprem2 yprem2 zprem2 ;
tablig1 . &boupts3 = (tablig1 . &boupts3) d 1 prem2 ;
fin boupts3 ;
*-----------------------------------------------------------------
* --- actualisation des champs de coordonnees pour iteration suivante
XG_OLD = redu XG_NEW mailcou;
YG_OLD = redu YG_NEW mailcou;
ZG_OLD = redu ZG_NEW mailcou;
MENA ;
FORM DEP0 ;
TAB1. exiting @ANAJET';
FINPROC ;
**** @ANALY
DEBPROC @ANALY TAB1*TABLE ;
MESS '---------------------------------> calling @ANALY';
MESS 'METHODE ANALYTIQUE' ;
*
*--------------- VARIABLES D'ENTREE :
*
S_OMBRE = TAB1.>>> @CLIGB : check the value of TAB1.@ANALY> procedure OMBRAGE, Rappel des parametres
de calcul ';
MESS ' ';
si (tab1. 0.) ;
* --- Les CHPO sont reduits sur les points de s_ombre
* --- qui n'ont pas encore ete intersectes : s_ombre2
XG_OLD_R = REDU XG_OLD S_OMBRE2 ;
YG_OLD_R = REDU YG_OLD S_OMBRE2 ;
ZG_OLD_R = REDU ZG_OLD S_OMBRE2 ;
XG_NEW_R = REDU XG_NEW S_OMBRE2 ;
YG_NEW_R = REDU YG_NEW S_OMBRE2 ;
ZG_NEW_R = REDU ZG_NEW S_OMBRE2 ;
XG_OLD_R = NOMC X XG_OLD_R 'NATU' 'DIFFUS' ;
YG_OLD_R = NOMC Y YG_OLD_R 'NATU' 'DIFFUS' ;
ZG_OLD_R = NOMC Z ZG_OLD_R 'NATU' 'DIFFUS' ;
CH_OLD = XG_OLD_R ET YG_OLD_R ET ZG_OLD_R ;
XG_NEW_R = NOMC X XG_NEW_R 'NATU' 'DIFFUS' ;
YG_NEW_R = NOMC Y YG_NEW_R 'NATU' 'DIFFUS' ;
ZG_NEW_R = NOMC Z ZG_NEW_R 'NATU' 'DIFFUS' ;
CH_NEW = XG_NEW_R ET YG_NEW_R ET ZG_NEW_R ;
*
* --- APPEL DE LA PROCEDURE DE CALCUL DES NOEUDS INTERSECTES
*
* CHDIST9 MINTER = @INTERC CH_OLD CH_NEW TOL1 TAB1 ;
CHDIST9 MINTER = ITRC CH_OLD CH_NEW TOL1 TAB1 ;
* CHDIST9 = CHPO CONTENANT PAS POUR LES NOEUDS INTERSECTES
* ET D(M,PT_REMONTE) SINON
* S_OMBRE2 contient les noeuds de s_ombre qui n'ont
* pas ete intesectes.
s_ombre2 = diff s_ombre2 MINTER ;
* actualisation du maillage de remontee
mailcou = s_ombre2 et mailpts ;
CHSIGN1 = REDU CHSIGN1 mailcou ;
SI ((NBNO MINTER) > 0) ;
mess 'nombre de noeuds intersectes ' (NBNO MINTER) ;
LMAX1 = LCOURAN1 - pasb0 + (mini CHDIST9) ;
FINSI ;
* --- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
mess 'mini maxi dist connection en m'
(mini (prog lmax1 (mini chdist))) lmax1 ;
finsi ;
* ------------------ fin du test d'interception ------------------
*-----------------------------------------------------------------
*--- construction des lignes de champ remontees
*--- Extraction des coordonnees des points a remonter
xmailpt1 = redu XG_NEW mailpts ;
ymailpt1 = redu YG_NEW mailpts ;
zmailpt1 = redu ZG_NEW mailpts ;
*--- Calcul des coordonnees des points a remonter dans le repere du maillage
xmailpt2 ymailpt2 zmailpt2 = @crgmc xmailpt1 ymailpt1 zmailpt1 tab1 ;
*--- Construction des lignes de remontee
repeter boupts3 npts ;
xprem2 = extr xmailpt2 SCAL (tabpts1 . &boupts3) ;
yprem2 = extr ymailpt2 SCAL (tabpts1 . &boupts3) ;
zprem2 = extr zmailpt2 SCAL (tabpts1 . &boupts3) ;
prem2 = xprem2 yprem2 zprem2 ;
tablig1 . &boupts3 = (tablig1 . &boupts3) d 1 prem2 ;
fin boupts3 ;
*-----------------------------------------------------------------
* --- actualisation des champs de coordonnees pour iteration suivante
XG_OLD = redu XG_NEW mailcou;
YG_OLD = redu YG_NEW mailcou;
ZG_OLD = redu ZG_NEW mailcou;
MENA ;
FIN BOUCLE2 ;
* --------------------- Fin de la boucle 2 ----------------------
*--- Sorties dans TAB1
TAB1. exiting @ANALY';
FINPROC ;
**** @ARANGU
DEBPROC @ARANGU T1*FLOTTANT V1*FLOTTANT E1*FLOTTANT ;
*-------------------------------------------------------------------*
* R. Mitteau
* Fatigue du cuivre OFHC
*
* D'apres la publi
*
*
* High Temperature Torsional Low Cycle Fatigue of OFHC Copper
* Ahmet Aran and Dogan Erdun Gucer, Material Research Division,
* Marmara Research Institute...
*
* in Z. Metallkunde
* T1 temperature en degres K
* V1 vitesse de deformation en s-1
* E1 Deformation en .
*
*
*23456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
*-------------------------------------------------------------------*
MESS '-----------------------------------------------> calling @ARANGU';
*
* --- donnees
*
* Temperature de la matiere en Kelvin
TLIEU1 = T1 ;
* Variation equivalente de la deformation au lieu considere
EPSETOI1 = E1 ;
* Vitesse de deformation
VDEF1 = V1 ;
*
* --- Calcul du alpha de la loi de Mansson-Coffin
*
EVALPH1 = EVOL MANU 'T' (PROG 293 438 588 668 )
'ALPH' (PROG .67 .71 .63 .50 );
EVALPH2 = EVOL MANU 'T' (PROG 293 438 588 668 )
'ALPH' (PROG .64 .79 .69 .50 );
VALALPH1 = IPOE EVALPH1 TLIEU1 FIXE;
VALALPH2 = IPOE EVALPH2 TLIEU1 FIXE;
EVALPH3 = EVOL MANU 'VDEF' (PROG 1.81E-3 9.05E-3 )
'ALPH' (PROG VALALPH1 VALALPH2);
ALPHA1 = IPOE VDEF1 EVALPH3 LINE;
*
* --- Calcul du C de la loi de Mansson-Coffin
*
EVC1 = EVOL MANU 'T' (PROG 293 438 588 668 )
'C' (PROG 5.77 6.3 3.56 0.72 );
EVC2 = EVOL MANU 'T' (PROG 293 438 588 668 )
'C' (PROG 5.03 12.25 7.01 1.09 );
VALC1 = IPOE EVC1 TLIEU1 FIXE;
VALC2 = IPOE EVC2 TLIEU1 FIXE;
EVC3 = EVOL MANU 'VDEF' (PROG 1.81E-3 9.05E-3 )
'C' (PROG VALC1 VALC2);
CA1 = IPOE VDEF1 EVC3 LINE;
*
* --- Calcul du nombre de cycles
*
NCYCLES1 = (CA1/EPSETOI1) ** (1. / ALPHA1) ;
NCYCLES2 = ENTI (NCYCLES1 + 1);
MESS '>@ARANGU> Temperature [K] : ' T1 ;
MESS '>@ARANGU> Deformation speed [S-1] : ' V1 ;
MESS '>@ARANGU> Rupture according to Aran-Gucer [cycles]: ' NCYCLES2 ;
MESS '-----------------------------------------------> exiting @ARANGU';
FINPROC NCYCLES1;
**** @BOWRI72
DEBPROC @BOWRI72 TAB_1*TABLE ;
*
*
* CALCUL DU FLUX CRITIQUE SUIVANT LA CORRELATION DE BOWRING
*23456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
*
* --- entrees
*
INIVEAU1 = TAB_1.'NIVEAU' ;
D_DIAM1 = TAB_1.'D_DIAM' ;
L_LONG1 = TAB_1.'L_HEATED' ;
P_PRES1 = TAB_1.'P_IN' ;
V_VITE1 = TAB_1.'V_IN' ;
T_TEMP1 = TAB_1.'T_IN' ;
TEST1 = FAUX ;
SI (EXISTE TAB1 ANNULE_D_DEF);
SI TAB1.ANNULE_D_DEF ;
TEST1 = VRAI;
FINSI ;
FINSI ;
*
* --- racine
*
SI (INIVEAU1 >EG 2 ) ;
MESS '---------------------------------> calling @BOWRI72';
FINSI ;
PI = 3.14159;
LOGI_1 = EXISTE TAB_1 EPTSAT;
LOGI_2 = EXISTE TAB_1 ETHFG;
LOGI_3 = EXISTE TAB_1 ETRHOF;
LOGI_4 = EXISTE TAB_1 ETCPF;
SI (NON (LOGI_1 ET LOGI_2 ET LOGI_3 ET LOGI_4));
@TABEAU TAB_1 ;
FINSI ;
*
* --- Test du domaine de definition des entrees
*
G_VITE1 = V_VITE1 * (@IPOE TAB_1.ETRHOF T_TEMP1);
SI TEST1 ;
* - test sur la vitesse de l'eau
SI ((G_VITE1 < 136.) OU ( G_VITE1 > 18600.)) ;
MESS 'Vitesse massique : ' G_VITE1;
ERRE '@BOWRING -> Vitesse massique hors [136. , 18600.] (Kg/M2/S)';
FINSI ;
* - test sur le diametre
SI ((D_DIAM1 < 2.E-3) OU (D_DIAM1 > 450.E-3)) ;
MESS 'Diametre : ' D_DIAM1;
ERRE '@BOWRING -> Diametre hors [0.002 0.45] (M)' ;
FINSI ;
* - test sur la Pression
SI ((P_PRES1 < 1.E5) OU (P_PRES1 > 200.E5)) ;
MESS 'Pression : ' P_PRES1;
ERRE '@BOWRING -> Pression hors de [1.E5, 200.E5] (Pa) ' ;
FINSI ;
* - test sur la longueur chauffee
SI ((L_LONG1 < 0.15) OU (L_LONG1 > 3.7)) ;
MESS 'Longueur : ' L_LONG1;
ERRE '@BOWRING --> Longueur hors de [0.15,3.7](M) ' ;
FINSI ;
* Fin des tests sur les entrees de @BOWRI72
FINSI ;
T_SAT = @IPOE TAB_1.EPTSAT P_PRES1 ;
P1 = P_PRES1 / 6900000. ;
SI (INIVEAU1 >EG 2) ;
MESS 'P_PRIME : ' P1 ;
FINSI ;
SI (P1 <EG 1.) ;
F1 = (((P1 ** 18.942) * (EXP (20.8 * (1. - P1)))) + 0.917) / 1.917;
F2 = (F1 * 1.309)/(((P1 ** 1.316)*(EXP(2.444*(1. - P1)))) + 0.309);
F3 = (((P1 ** 17.023)*(EXP(16.658*(1. - P1)))) + 0.667)/1.667;
F4 = F3 * (P1 ** 1.649) ;
SINON ;
F1 = (P1 ** (-0.368))*(EXP(0.648*(1. - P1)));
F2 = (P1 ** (-0.448))*(EXP(0.245*(1. - P1)));
F3 = P1 ** 0.219;
F4 = F3 * (P1 ** 1.649) ;
FINSI ;
SI (INIVEAU1 >EG 2) ;
MESS 'F1 : ' F1 ;
MESS 'F2 : ' F2 ;
MESS 'F3 : ' F3 ;
MESS 'F4 : ' F4 ;
FINSI ;
L_VAP = @IPOE TAB_1.ETHFG T_TEMP1 ;
CP__1 = @IPOE TAB_1.ETCPF T_TEMP1 ;
S_SAT = CP__1 * (T_SAT - T_TEMP1) ;
SI (INIVEAU1 >EG 2) ;
MESS 'L_VAP : ' L_VAP ;
MESS 'CP__1 : ' CP__1 ;
MESS 'S_SAT : ' S_SAT ;
FINSI ;
A__1 = 0.5793 * L_VAP * D_DIAM1 * G_VITE1 * F1 /
(1. + (0.0143 * F2 * (D_DIAM1 ** .5) * G_VITE1 )) ;
B__1 = .25 * D_DIAM1 * G_VITE1 ;
C__1 = 0.077 * D_DIAM1 * G_VITE1 * F3 /
(1. + (0.347 * F4 * ((G_VITE1/1356.) ** (2. - (.5 * P1))))) ;
SI (INIVEAU1 >EG 5) ;
MESS 'A : ' A__1 ;
MESS 'B : ' B__1 ;
MESS 'C : ' C__1 ;
FINSI ;
QCHFW = (A__1 + (B__1 * S_SAT)) / (C__1 + L_LONG1) ;
G1 = G_VITE1 * PI * D_DIAM1 * D_DIAM1 / 4. ;
*
* --- sortie de la procedure
*
SI ( INIVEAU1 >EG 1 ) ;
MESS '>>@BOWRI72>> TUBE DIAMETER (M) : ' D_DIAM1 ;
MESS '>>@BOWRI72>> TUBE LENGHT (M) : ' L_LONG1 ;
MESS '>>@BOWRI72>> MASS FLOW VELOCITY (KG/S/M2) : ' G_VITE1;
MESS '>>@BOWRI72>> INLET MASS FLOW RATE (KG/S) : ' G1 ;
MESS '>>@BOWRI72>> VELOCITY (M/S) : ' V_VITE1 ;
MESS '>>@BOWRI72>> FLUID INLET TEMPERATURE (C) : ' T_TEMP1 ;
MESS '>>@BOWRI72>> FLUID INLET PRESSURE (PA) : ' P_PRES1 ;
MESS '>>@BOWRI72>> WATER SATURATION TEMPERATURE(C) : ' T_SAT ;
MESS '>>@BOWRI72>> WALL CRITICAL HEAT FLUX (W/m2) : ' QCHFW ;
FINSI ;
SI (INIVEAU1 >EG 2 ) ;
MESS '---------------------------------> Sortie de @BOWRI72';
FINSI ;
*
* --- sorties
*
TAB1.CHF = QCHFW ;
FINPROC ;
debproc @calcflu mod1*mmodel cht1*chpoint mat1*chpoint ;
gradt1 = grad cht1 mod1 ;
flux1 = mat1 * gradt1 ;
finproc flux1 ;
**** @CALHCON
DEBPROC @CALHCON TAB_1*TABLE ;
*
* !!! R. MITTEAU !!! attention, procedure standard
*
* un pointeur dans /CASTEM9X/procedures pointe sur cette procedure
* pour les mises a jour
*
*-------------------------------------------------------------------*
* *
* COEFFICIENT D ECHANGE TENANT COMPTE *
* DE L EBULLITION SOUS SATUREE *
* *
*-------------------------------------------------------------------*
*
DIAM = TAB_1 . D_MAQUETTE ;
TTAPE = TAB_1 . T_TAPE ;
YTW1 = TAB_1 . TWIST_RATIO ;
V1 = TAB_1 . V_LOCAL ;
*js 20/4/95 je change T_MOY en t_local ????
T_LOC1 = TAB_1 . 'T_LOCAL' ;
NIVEAU = TAB_1.'NIVEAU' ;
P_LOCAL1 = TAB_1.'P_LOCAL' ;
L1TRAC = TAB_1.'TRAC_GRAPHE' ;
*
SI (NIVEAU >EG 4) ;
MESS '-----------------------------------> calling @CALHCON ' ;
FINSI ;
*
*
PI = 3.14159 ;
*S1 = PI * DIAM * DIAM / 4. ;
SI ( NON ( EXISTE TAB_1 HYPERVAP ) ) ;
TAB_1.HYPERVAP = FAUX ;
FINSI ;
SI ( ( YTW1 EGA 0. 1.E-6 ) ET ( EGA TAB_1.HYPERVAP FAUX ) ) ;
S1 = PI * DIAM * DIAM / 4. ;
TAB_1.DH = DIAM ;
FACV = 1. ;
FACF = 1. ;
FINSI ;
SI ( NON ( EXISTE TAB_1 HELI_WIRE ) ) ;
TAB_1.HELI_WIRE = FAUX ;
FINSI ;
SI ( ( YTW1 EGA 0. 1.E-6 ) ET ( EGA TAB_1.HELI_WIRE VRAI )
ET ( EGA TAB_1.HYPERVAP FAUX ) ) ;
S1 = PI * DIAM * DIAM / 4. ;
SM = PI * TAB_1.WIRE_D * TAB_1.WIRE_D / 4. ;
P1 = PI * DIAM ;
PM = PI * TAB_1.WIRE_D ;
TAB_1.DH = 4. * ( S1 - SM ) / ( P1 + PM ) ;
PIS2Y = PI / ( 2 * TAB_1.PITCH_WIRE ) ;
FACV = ( 1. + ( PIS2Y ** 2 ) ) ** 0.5 ;
* FACV = 1. ;
FACF = 1. ;
FINSI ;
*
SI ( ( YTW1 EGA 0. 1.E-6 ) ET ( EGA TAB_1.HYPERVAP VRAI ) ) ;
SM = ( TAB_1 . LARG_CANAL * TAB_1 . HMIN_CANAL ) +
( 2. * ( TAB_1 . LARG_ESP * TAB_1 . HFIN ) ) ;
PM = TAB_1 . LARG_CANAL + ( 2.* TAB_1 . HMAX_CANAL ) +
( 2. * TAB_1 . LARG_ESP ) + ( 2. * TAB_1 . HFIN ) +
TAB_1 . LFIN ;
TAB_1.DH = 4. * SM / PM ;
FACV = 1. ;
* FACF = 2.25 ;
* modif 261099 calcul du rapport Strue/Sapparent
* N CURT
SI (TAB_1.HFIN > 0. ) ;
S_E1 = ((4.*TAB_1.HFIN)+(2.*TAB_1.LARG_ESP)+(TAB_1.LFIN))*
(TAB_1.FF + TAB_1.f0) ;
S_E2 = ((4.*TAB_1.HFIN)+(2.*TAB_1.LARG_ESP)+(TAB_1.LFIN))*
(TAB_1.FF) ;
S_E3 = 2.* (TAB_1.LFIN * (TAB_1.HFIN - TAB_1.RFIN)) ;
S_E4 = PI * ( TAB_1.RFIN * TAB_1.LFIN) ;
S_E5 = 2. * (( TAB_1.HFIN + TAB_1.LARG_ESP) * TAB_1.f0) ;
S_E6 = TAB_1.RFIN * ((2.*TAB_1.f0)-(PI* TAB_1.RFIN)) ;
FACF = (S_E2+S_E3+S_E4+S_E5+S_E6)/ S_E1 ;
SINON ;
FACF = 1. ;
FINSI ;
*fin modif
TAB_1.FACCF = FACF ;
TAB_1.HYP_SM = SM ;
FINSI ;
SI ( YTW1 > 0. ) ;
QUAS = 4. * ( ( PI * DIAM * DIAM / 8.) - ( TTAPE * DIAM / 2. ) ) ;
PERI = ( ( PI * DIAM / 2.) - TTAPE + DIAM ) ;
TAB_1.DH = QUAS / PERI ;
PIS2Y = PI / ( 2. * YTW1 ) ;
FACV = ( 1. + ( PIS2Y ** 2 ) ) ** 0.5 ;
FACF = 1.15 ;
FINSI ;
SI ( EXISTE TAB_1 RIP_FLOWS ) ;
S1 = ( TAB_1 . RIP_FLOWS ) ;
FINSI ;
SI ( EXISTE TAB_1 RIP_WETP ) ;
PERI = ( TAB_1 . RIP_WETP ) ;
TAB_1.DH = 4. * S1 / PERI ;
FINSI ;
SI ( EXISTE TAB_1 RIP_TWIST ) ;
PIS2Y = PI / ( 2. *( TAB_1 . RIP_TWIST ) ) ;
FACV2 = ( 1. + ( PIS2Y ** 2 ) ) ** 0.5 ;
FACV = MAXI ( PROG FACV FACV2 ) ;
FINSI ;
SI ( EGA TAB_1.HYPERVAP FAUX ) ;
FACD = ( DIAM / TAB_1.DH ) ** 0.2 ;
FACT = ( FACV ** 0.8 ) * FACD * FACF ;
SINON ;
FACD = 1. ;
FACT = ( FACV ** 0.8 ) * FACD * FACF ;
FINSI ;
* modif pour calcul W7x provisoire
* adaptation du coef correctif W7X du au swirl
* N CURT 18012000
* SI ( EGA TAB_1.HYPERVAP FAUX ) ;
* SI (YTW1 > 0. ) ;
* FACF = 2.18 * ((YTW1)**(-1 * 0.09)) ;
* FACF = 2.26 * ((YTW1)**(-1 * 0.248)) ;
* FACD = 1. ;
* FACV = 1. ;
* FACT = ( FACV ** 0.8 ) * FACD * FACF ;
* SINON ;
*FACD = ( DIAM / TAB_1.DH ) ** 0.2 ;
* FACT = ( FACV ** 0.8 ) * FACD * FACF ;
* FINSI ;
* SINON ;
* FACD = 1. ;
* FINSI ;
* fin modif
*
* attention modification par R. MITTEAU le 7 fevrier 1994
* j'ai rajoute les " FIXE " pour pouvoir passer un calcul
* dans lequel l'eau est quasi immobile. Car dans ce cas les valeurs
* sont en dehors des tables
* avant modif
*TSAT = @IPOE P_LOCAL1 TAB_1.EPTSAT ;
*NNU = @IPOE T_LOC1 TAB_1.ETNNU ;
*RHO = @IPOE T_LOC1 TAB_1.ETRHOF ;
*PR = @IPOE T_LOC1 TAB_1.ETPRAF ;
*LLAM = @IPOE T_LOC1 TAB_1.ETLLA ;
*NNUB = @IPOE T_LOC1 TAB_1.ETNNU ;
* apres modif raph
*MESS '>>PRESS T_MOY S1' P_LOCAL T_LOC1 ;
TSAT = @IPOE P_LOCAL1 TAB_1.EPTSAT FIXE ;
NNU = @IPOE T_LOC1 TAB_1.ETNNU FIXE ;
RHO = @IPOE T_LOC1 TAB_1.ETRHOF FIXE ;
PR = @IPOE T_LOC1 TAB_1.ETPRAF FIXE ;
LLAM = @IPOE T_LOC1 TAB_1.ETLLA FIXE ;
NNUB = @IPOE T_LOC1 TAB_1.ETNNU FIXE ;
*
RE = RHO * ( NNU ** -1 ) * V1 * TAB_1.DH * FACV ;
*
SI ( T_LOC1 < TSAT ) ;
LTWALL1 = PROG -52. pas 25. (T_LOC1 + 0.01) pas 25.
TSAT pas 25. 350. 400. 450. 500. 1500. 2550.
3000. 3500. 20000. ;
SINON ;
LTWALL1 = PROG -52. pas 25. TSAT
pas 25. 350. 400. 450. 500. 1500. 2550. 3000. 3500.
20000. ;
FINSI ;
*
LNNUW = @IPOE LTWALL1 TAB_1.ETNNU 'FIXE' ;
*modif NCURT 10012000
*calcul nb de Prandtl sur le mur
LPRW = @IPOE LTWALL1 TAB_1.ETPRAF 'FIXE' ;
*fin modif
LTETA = PROG ( DIME LTWALL1 ) * T_LOC1 ;
*
LM_ITETA = LTWALL1 MASQUE 'INFERIEUR' T_LOC1 ;
LM_STETA = LTWALL1 MASQUE 'EGSUP' T_LOC1 ;
*
*SI ( EGA TAB_1.L_CONVECT 'DITTUS_BOELTER' ) ;
NUS_2 = FACF * 0.023 * ( RE ** 0.8 ) * ( PR ** 0.4 ) ;
NUS_1 = FACF * 0.023 * ( RE ** 0.8 ) * ( PR ** 0.3 ) ;
LNUS_2 = PROG ( DIME LTWALL1 ) * NUS_2 ;
LNUS_1 = PROG ( DIME LTWALL1 ) * NUS_1 ;
LNUS = ( LNUS_1 * LM_ITETA ) + ( LNUS_2 * LM_STETA ) ;
LH_DB = LNUS * LLAM / TAB_1.DH ;
LFC_DB = ( LTWALL1 - LTETA ) * LH_DB;
TITRE 'DITTUS_BOELTER' ;
EVOFC_DB = EVOL MANU 'TEMPERATURE' LTWALL1 'FLUX' LFC_DB ;
*FINSI ;
*
*SI ( EGA TAB_1.L_CONVECT 'SIEDER_TATE' ) ;
NUS1 = FACF * 0.027 * ( RE ** 0.8 ) * ( PR ** ( 1. / 3. )) ;
LNUS = ( ( LNNUW / NNUB ) ** -0.14 ) * NUS1 ;
LH_ST = LNUS * ( LLAM / TAB_1.DH ) ;
LFC_ST = ( LTWALL1 - LTETA ) * LH_ST ;
TITRE 'SIEDER_TATE' ;
EVOFC_ST = EVOL MANU 'TEMPERATURE' LTWALL1 'FLUX' LFC_ST ;
*FINSI ;
*
*SI ( EGA TAB_1.L_CONVECT 'PETHUKOV' ) ;
F_P = (1. / ( 1.82 * ( ( LOG RE ) / ( LOG 10.) ) - 1.64 )) ** 2 ;
X_P = 1.07 +
(12.7 * (PR ** (2. / 3.) - 1.) * ( (F_P / 8.) ** 0.5 ));
NUS1 = ( RE * PR * F_P ) / ( X_P * 8. ) ;
LNUS_2 = ( ( LNNUW / NNUB ) ** -0.11 ) * FACF * NUS1 ;
LNUS_1 = ( ( LNNUW / NNUB ) ** -0.25 ) * FACF * NUS1 ;
LNUS = (LNUS_1 * LM_ITETA) + (LNUS_2 * LM_STETA) ;
LH_P = LNUS * ( LLAM /TAB_1.DH ) ;
LFC_P = ( LTWALL1 - LTETA ) * LH_P ;
TITRE 'PETHUKOV' ;
EVOFC_P = EVOL MANU 'TEMPERATURE' LTWALL1 'FLUX' LFC_P ;
*FINSI ;
*modif NCURT 10012000
*adaptation de la correlation non courte de Gnielinski
*cf Greuner 260499
*SI ( EGA TAB_1.L_CONVECT 'GNIELINSKI' ) ;
F_G = (1. / (1.82 * ( ( LOG RE ) / ( LOG 10.)) - 1.64 )) ** 2 ;
R_G = ( (PR ** (2. / 3.)) - 1.)
* ( (F_G / 8.) ** 0.5) ;
X_G = 1. + (12.7 * R_G);
NUS3 = FACF * (((RE - 1000.)* PR) * F_G) / ( X_G * 8.) ;
* correlation courte
* NUS3 = FACF * 0.012 * ((RE ** 0.87) - 280. ) * (PR ** 0.4) ;
LNUS = ( ( LPRW / PR ) ** -0.11 ) * NUS3 ;
LH_GN = LNUS * ( LLAM/TAB_1.DH) ;
LFC_GN = ( LTWALL1 - LTETA ) * LH_GN ;
TITRE 'GNIELINSKI' ;
EVOFC_GN = EVOL MANU 'TEMPERATURE' LTWALL1 'FLUX' LFC_GN ;
*fin modif
*SI ( EGA TAB_1.L_CONVECT 'JB_CONVEC' ) ;
SI (NON ( YTW1 EGA 0. 1.E-6 ) ) ;
FACFJB = 1. + ( 0.7 / YTW1 ) ;
SINON ;
FACFJB = 1. ;
FINSI ;
NUS_3 = FACFJB * 0.023 * ( RE ** 0.8 ) * ( PR ** 0.4 ) ;
LNUS = ( ( LNNUW / NNUB ) ** -0.25 ) * NUS_3 ;
LH_JB = LNUS * ( LLAM / TAB_1.DH ) ;
LFC_JB = ( LTWALL1 - LTETA ) * LH_JB ;
TITRE 'JB_CONVEC' ;
EVOFC_JB = EVOL MANU 'TEMPERATURE' LTWALL1 'FLUX' LFC_JB ;
*FINSI ;
*
SI ( NON ( EXISTE TAB_1 L_CONVECT ) ) ;
*js TAB_1.L_CONVECT = 'DITTUS_BOELTER' ;
TAB_1.L_CONVECT = 'SIEDER_TATE' ;
FINSI ;
*
SI ( EGA TAB_1.L_CONVECT 'DITTUS_BOELTER' ) ;
LHCONV = LH_DB ;
FINSI ;
*
SI ( EGA TAB_1.L_CONVECT 'SIEDER_TATE' ) ;
LHCONV = LH_ST ;
FINSI ;
*
SI ( EGA TAB_1.L_CONVECT 'PETHUKOV' ) ;
LHCONV = LH_P ;
FINSI ;
*
SI ( EGA TAB_1.L_CONVECT 'JB_CONVEC') ;
LHCONV = LH_JB ;
FINSI ;
*modif 10012000
SI ( EGA TAB_1.L_CONVECT 'GNIELINSKI') ;
LHCONV = LH_GN ;
FINSI ;
*fin modif
*
* Calculation of TONB FONB Bergles & Rohsenow correlation
*
IONB = 0 ;
TB1 = TSAT + 15. ;
REPETER BOUCONB ;
IONB = IONB + 1 ;
SI ( IONB > 7 ) ;
QUITTER BOUCONB ;
FINSI ;
PRATIO = P_LOCAL1 * 1.E-5 ;
EXPO1 = 1. / ( 0.463 * ( PRATIO ** 0.0234 ) ) ;
DUM = ( 1. / 0.556 ) * ( TB1 - TSAT ) ;
FTBA = 1082. *( PRATIO ** 1.156 )* ( DUM ** EXPO1 ) ;
HCONV = IPOL TB1 LTWALL1 LHCONV ;
FTB = ( HCONV * ( TB1 - T_LOC1 ) ) - FTBA ;
;
* **** CALCUL DE LA DERIVEE PAR RAPPORT A TB1-TETA **********
FTB1 = HCONV - ( ( EXPO1 * FTBA ) / ( TB1 - TSAT ) ) ;
* **** CALCUL DU NOUVEAU TB **********
TONB = TB1 - ( FTB / FTB1 ) ;
SI ( ( ABS ( TONB -TB1 ) ) <EG 0.1 ) ;
QUITTER BOUCONB ;
FINSI ;
TB1 = TONB ;
FIN BOUCONB ;
MESS '>@CALHCON> TONB VALUE BY BERG.& ROHS. CORREL.: ' TONB ;
MESS '>@CALHCON> TONB PRECISION : '
((TONB - TB1) / TONB);
*
*
SI ( T_LOC1 < TSAT ) ;
LTWALL2 = PROG -52. pas 25. (T_LOC1 + 0.01) pas 25. TSAT
pas 5. (TONB + 0.01) pas 5.
(TONB + 50.) pas 25.
450. 500. 1500. 3000. 2.1E4 ;
SINON ;
LTWALL2 = PROG -52. pas 25. TSAT
pas 5. (TONB + 0.01) pas 5.
(TONB + 50.) pas 25.
450. 500. 1500. 3000. 2.1E4 ;
FINSI ;
LTWALL = LTWALL2 ;
*
LHCONV = @ITPLT LTWALL1 LHCONV 'FIXE' LTWALL2 ;
LTETA = PROG ( DIME LTWALL ) * T_LOC1 ;
LTSAT = PROG ( DIME LTWALL ) * TSAT ;
LTONB = PROG ( DIME LTWALL ) * TONB ;
*
LM_ITSAT = LTWALL MASQUE 'INFERIEUR' TSAT ;
LM_STSAT = LTWALL MASQUE 'EGSUPE' TSAT ;
LM_ITONB = LTWALL MASQUE 'INFERIEUR' TONB ;
LM_STONB = LTWALL MASQUE 'EGSUPE' TONB ;
LM_ITON1 = LTWALL MASQUE 'EGINFE' TONB ;
LM_STON1 = LTWALL MASQUE 'SUPERIEUR' TONB ;
*
*SI ( EGA TAB_1.L_SUBNB 'THOM' ) ;
VEXPTM = EXP ( 1.E-5 * P_LOCAL1 / 87. ) ;
LFB_TM = ( LTWALL - LTSAT ) * ( VEXPTM / 22.65 ) ;
LFB_TM = ( LFB_TM ** 2 ) * 1.E6 ;
LFB_TM = LFB_TM * LM_STSAT ;
TITRE 'THOM' ;
EVOFB_TM = EVOL MANU 'TEMPERATURE' LTWALL 'FLUX' LFB_TM ;
EVOFB_T1 = EVOFB_TM ;
*FINSI ;
*
SI ( NON ( EXISTE TAB_1 L_SUBNB ) ) ;
TAB_1.L_SUBNB = 'THOM_CEA' ;
SI ( NON ( EXISTE TAB_1 V_EXPTHOM ) ) ;
TAB_1 . V_EXPTHOM = 2.8 ;
FINSI ;
FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'THOM_CEA' ) ;
VEXPTM = EXP ( 1.E-5 * P_LOCAL1 / 87. ) ;
LFB_TM = ( LTWALL - LTSAT ) * ( VEXPTM / 22.65 ) ;
E_TMP = TAB_1.V_EXPTHOM / 2. ;
LFB_TMP = (( LFB_TM ** 2 ) ** E_TMP) * 1.E6 ;
LFB_TMP = LFB_TMP * LM_STSAT ;
TITRE 'THOM_CEA' ;
EVFB_TMP = EVOL MANU 'TEMPERATURE' LTWALL 'FLUX' LFB_TMP ;
EVOFB_T1 = EVOFB_T1 ET EVFB_TMP ;
FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'T_JAERI' ) ;
VEXPTM = EXP ( 1.E-5 * P_LOCAL1 / 87. ) ;
LFB_TM = ( LTWALL - LTSAT ) * ( VEXPTM / 25.72 ) ;
E_TMJ = 3 / 2. ;
LFB_TMJ = (( LFB_TM ** 2 ) ** E_TMJ) * 1.E6 ;
LFB_TMJ = LFB_TMJ * LM_STSAT ;
TITRE 'T_JAERI' ;
EVFB_TMJ = EVOL MANU 'TEMPERATURE' LTWALL 'FLUX' LFB_TMJ ;
EVOFB_T1 = EVOFB_T1 ET EVFB_TMJ ;
FINSI ;
*
*SI ( EGA TAB_1.L_SUBNB 'JENS_LOTTES' ) ;
VEXPJL = EXP ( 1.E-5 * P_LOCAL1 / 62. ) ;
LFB_JL = ( LTWALL - LTSAT ) * ( VEXPJL / 25. ) ;
LFB_JL = ( LFB_JL ** 4 ) * 1.E6 ;
LFB_JL = LFB_JL * LM_STSAT ;
TITRE 'JENS_LOTTES' ;
EVOFB_JL = EVOL MANU 'TEMPERATURE' LTWALL 'FLUX' LFB_JL ;
*FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'YIN' ) ;
D_YIN1 = 7.195 * ( TAB_1.GAM_YIN ** 1.82 ) ;
D_YIN2 = ( 1.E-5 * P_LOCAL1 ) ** 0.072 ;
LFB_YIN = ( 1.E6 * ( LTWALL - LTSAT ) ) / ( D_YIN1 * D_YIN2 ) ;
LFB_YIN = LFB_YIN * LM_STSAT ;
TITRE 'YIN' ;
EVFB_YIN = EVOL MANU 'TEMPERATURE' LTWALL 'FLUX' LFB_YIN ;
FINSI ;
*
TAC1 = TABLE ;
TAC1.1 = 'MARQ CROI REGU' ;
TAC1.2 = 'MARQ PLUS REGU' ;
TAC1.3 = 'MARQ ETOI REGU' ;
TAC1.4 = 'MARQ LOSA REGU' ;
TAC1.5 = 'MARQ CARR REGU' ;
TAC1.6 = 'MARQ TRIB REGU' ;
*
TAC2 = TABLE ;
TAC2.1 = 'MARQ CARR REGU' ;
TAC2.2 = 'MARQ LOSA REGU' ;
TAC2.3 = 'MARQ TRIA REGU' ;
TAC2.4 = 'MARQ TRIB REGU' ;
*
MESS '>@CALHCON> VELOCITY (M/S) : ' V1 ;
* MESS '>@CALHCON> MASS FLOW RATE ( KG/S ) : '
* (V1 * S1 * RHO) ;
MESS '>@CALHCON> FLUID TEMPERATURE (C) : '
T_LOC1 ;
MESS '>@CALHCON> FLUID PRESSURE ( PA ) : '
P_LOCAL1 ;
MESS '>@CALHCON> WATER SATURATION TEMPERATURE(C) : ' TSAT ;
*MESS '>@CALHCON> TUBE DIAMETER (M) : ' DIAM ;
MESS '>@CALHCON> TUBE HYDRAULIC DIAMETER (M) : ' TAB_1.DH ;
MESS '>@CALHCON> SWIRL TAPE THICKNESS (M) : ' TTAPE ;
MESS '>@CALHCON> TWIST RATIO : ' YTW1 ;
MESS '>@CALHCON> FLUID DENSITY ( KG/M**3) : ' RHO ;
MESS '>@CALHCON> FLUID CONDUCTIVITY ( W/M.K) : ' LLAM ;
MESS '>@CALHCON> REYNOLDS NUMBER : ' RE ;
MESS '>@CALHCON> FLUID VISCOSITY (KG/M.S) : ' NNU ;
MESS '>@CALHCON> PRANDTL NUMBER : ' PR ;
MESS '>@CALHCON> FACTOR DUE TO FIN EFFECT : ' FACF ;
MESS '>@CALHCON> FACTOR DUE TO CHANGE ON HYD.DIAM: ' FACD ;
*MESS '>@CALHCON> FACTOR DUE TO TWISTED VELOCITY : ' FACV ;
MESS '>@CALHCON> VELOCITY CORRECTION FACTOR : 'FACV ;
MESS '>@CALHCON> TOTAL FACT. DUE TO TWIST or RIP.: ' FACT ;
MESS '>@CALHCON> NUSS. HEATING NUMBER : '
( IPOL 400. LTWALL1 LNUS ) ;
*MESS ' EXPERIMENTAL CRITICAL FLUX : ' FCR1 ;
MESS '>@CALHCON> CONV. COEF. (CONVECTION) : '
( IPOL 400. LTWALL1 LH_DB ) ;
MESS '>@CALHCON> FC_DB (TWALL = 400 C ) :'
( IPOL 400. LTWALL1 LFC_DB ) ;
*
*
*
SI ( EGA TAB_1.L_SUBNB 'THOM' ) ;
LFB = LFB_TM ;
FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'THOM_CEA' ) ;
LFB = LFB_TMP ;
FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'T_JAERI' ) ;
LFB = LFB_TMJ ;
FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'JENS_LOTTES' ) ;
LFB = LFB_JL ;
FINSI ;
*
SI ( EGA TAB_1.L_SUBNB 'YIN' ) ;
LFB = LFB_YIN ;
TAB_1.CONNECT_METHOD = 'ADDITION' ;
FINSI ;
*
SI ( EXISTE TAB_1 AMPL_H ) ;
LHCONV = LHCONV * ( TAB_1 . AMPL_H ) ;
FINSI ;
*
LFCONV = ( LTWALL - LTETA ) * LHCONV ;
TITRE TAB_1.L_CONVECT 'CONVECTION FLUX' ;
EVOFC = EVOL MANU 'TEMPERATURE' LTWALL 'CONVECTION' LFCONV ;
TITRE TAB_1.L_SUBNB 'BOILING FLUX' ;
EVOFE = EVOL MANU 'TEMPERATURE' LTWALL 'CONVECTION' LFB ;
*
SI ( NON ( EXISTE TAB_1 CONNECT_METHOD ) ) ;
TAB_1.CONNECT_METHOD = 'BERG_ROH' ;
FINSI ;
*
SI ( EGA TAB_1.CONNECT_METHOD 'ADDITION' ) ;
TAB_1.L_SUBNB = 'YIN' ;
MESS '>@CALHCON> ADDITION DE FSPL ET FSCB CHOISIE ' ;
LFT = LFCONV + LFB ;
FINSI ;
*
SI ( EGA TAB_1.CONNECT_METHOD 'DIRECT' ) ;
PA_TEMPE = 10. ;
TEMPE_PA = TSAT ;
FLUX_DIC = @IPOE TEMPE_PA EVOFC ;
FLUX_DIE = @IPOE TEMPE_PA EVOFE ;
* Recherche du point d'intersection
REPETER BOUC_DIR ;
SI ( ( ABS ( FLUX_DIE - FLUX_DIC ) ) <EG 1.E2 ) ;
QUITTER BOUC_DIR ;
FINSI ;
SI ( FLUX_DIE > FLUX_DIC ) ;
TEMPE_PA = TEMPE_PA - PA_TEMPE ;
PA_TEMPE = PA_TEMPE / 2. ;
FINSI ;
TEMPE_PA = TEMPE_PA + PA_TEMPE ;
FLUX_DIC = @IPOE TEMPE_PA EVOFC ;
FLUX_DIE = @IPOE TEMPE_PA EVOFE ;
FIN BOUC_DIR ;
RANGE_D = (LTWALL MASQUE 'INFE' 'SOMME' TEMPE_PA) + 1 ;
LTWALL_D = INSERER LTWALL RANGE_D TEMPE_PA ;
LFCONV_D = INSERER LFCONV RANGE_D FLUX_DIC ;
LFB_D = INSERER LFB RANGE_D FLUX_DIE ;
LM_IFLUX = LFCONV_D MASQUE 'INFERIEUR' FLUX_DIC ;
LM_SFLUX = LFB_D MASQUE 'EGSUPE' FLUX_DIE ;
LFCONVI = LFCONV_D * LM_IFLUX ;
LFBS = LFB_D * LM_SFLUX ;
LFT = LFCONVI + LFBS ;
LTWALL = LTWALL_D ;
LFCONV = LFCONV_D ;
LFB = LFB_D ;
LTETA = PROG ( DIME LTWALL_D ) * T_LOC1 ;
FINSI ;
*
SI ( EGA TAB_1.CONNECT_METHOD 'BERG_ROH' ) ;
LFCONV1 = LFCONV * LM_ITONB ;
LFCONV2 = LFCONV * LM_STONB ;
FB_ONB = IPOL TONB LTWALL LFB ;
LFB_ONB = PROG (DIME LTWALL) * FB_ONB ;
LDFB = ( LFB - LFB_ONB ) * LM_STONB ;
LF = ( LFCONV2 ** 2 ) + ( LDFB ** 2 ) ;
LF = LF ** 0.5 ;
LF = LF * LM_STONB ;
LFT = LFCONV1 + LF ;
FINSI ;
*
SI ( EGA TAB_1.CONNECT_METHOD 'JB_METHOD' ) ;
*
*liaison par flux = a Tparoi**10 + b
* LA_1 = ( LFB_ONB1 - LFB_ONB ) / (( LTONB1 ** 10 ) -
* ( LTONB ** 10 ) ) ;
* LB_1 = LFB_ONB - ( LA_1 * ( LTONB ** 10 ) ) ;
* LFPB = ( LA_1 * ( LTWALL_6 ** 10 ) ) + LB_1 ;
*
FB_ONB4 = IPOL TONB LTWALL LFB ;
FB_ONB5 = IPOL TONB LTWALL LFCONV ;
FB_ONB6 = 2.8 * FB_ONB5 ;
* EVFB_TMP = EVOL MANU 'TEMPERATURE' LTWALL 'FLUX' LFB_TMP ;
EVFB_TM1 = EVOL MANU 'FLUX' LFB_TMP 'TEMPERATURE' LTWALL ;
T_ONB6 = @IPOE FB_ONB6 EVFB_TM1 FIXE ;
RANGE_6 = ( LTWALL MASQUE 'INFE' 'SOMME' T_ONB6 ) + 1 ;
LTWALL_6 = INSERER LTWALL RANGE_6 T_ONB6 ;
*
LM_ITON2 = LTWALL_6 MASQUE 'INFERIEUR' T_ONB6 ;
LM_STON2 = LTWALL_6 MASQUE 'EGSUPE' T_ONB6 ;
LM_ITON3 = LTWALL_6 MASQUE 'INFERIEUR' TONB ;
LM_STON3 = LTWALL_6 MASQUE 'EGSUPE' TONB ;
LFB_ONB4 = PROG ( DIME LTWALL_6 ) * FB_ONB4 ;
LFB_ONB6 = PROG ( DIME LTWALL_6 ) * FB_ONB6 ;
LTETA1 = PROG ( DIME LTWALL_6 ) * T_LOC1 ;
*
LHCONV1 = @ITPLT LTWALL LHCONV 'FIXE' LTWALL_6 ;
LFCONV1 = ( LTWALL_6 - LTETA1 ) * LHCONV1 ;
LFB1 = @ITPLT LTWALL LFB 'FIXE' LTWALL_6 ;
LFCONV2 = LFCONV1 * LM_ITON3 ;
LFCONV3 = LFCONV1 * LM_STON3 ;
LFCONV3 = LFCONV3 * LM_ITON2 ;
LB_1 = ( ( LFB_ONB6 ** 2 ) - ( LFCONV3 ** 2 ) ) /
( ( LFB_ONB6 - LFB_ONB4 ) ** 2 ) ;
* LB_1 = 1. ;
LDFB1 = ( LFB1 - LFB_ONB4 ) * LM_STON3 ;
LFT0 = ( LFCONV3 ** 2 ) + ( LB_1 * ( LDFB1 ** 2 ) ) ;
LFT0 = LFT0 ** 0.5 ;
LFT0 = LFT0 * LM_STON3 ;
LFT1 = LFCONV2 + LFT0 ;
FINSI ;
*
SI ( NON ( EXISTE TAB_1 PFIXTONB ) ) ;
TAB_1 . PFIXTONB = FAUX ;
FINSI ;
*
SI ( TAB_1 . PFIXTONB ) ;
F_ONB1 = IPOL TONB LTWALL LFT ;
LF_ONB1 = PROG (DIME LTWALL) * F_ONB1 ;
LHT = (LFT - LF_ONB1) / (LTWALL - LTONB) ;
LTETA_1 = LTONB - ( LF_ONB1 / LHT ) ;
MESS '>@CALHCON> LTETA_1 :' ;
TAB_1 . EV_TETA = EVOL MANU 'TEMPERATURE' LTWALL
'TEMPEAU' LTETA_1 ;
SINON ;
SI ( EGA TAB_1.CONNECT_METHOD 'JB_METHOD' ) ;
LFT = LFT1 ;
LHT = LFT1 / (LTWALL_6 - LTETA1 ) ;
LTWALL = LTWALL_6 ;
SINON ;
LHT = LFT / ( LTWALL - LTETA ) ;
FINSI ;
FINSI ;
TITRE ' HEAT TRANSFER COEFFICIENT ' ;
EVOCON = EVOL MANU 'TEMPERATURE' LTWALL 'CONVECTION' LHT ;
*TITRE TAB_1.L_CONVECT 'CONVECTION FLUX' ;
*EVOFC = EVOL MANU 'TEMPERATURE' LTWALL 'CONVECTION' LFCONV ;
*TITRE TAB_1.L_SUBNB 'BOILING FLUX' ;
*EVOFE = EVOL MANU 'TEMPERATURE' LTWALL 'CONVECTION' LFB ;
TITRE ' COMBINED FLUX ' ;
EVOFT = EVOL MANU 'TEMPERATURE' LTWALL 'CONVECTION' LFT ;
*
TITRE ' COEF. D ECHANGE EN EBULLITION SOUS SATUREE, TONB :' TONB ;
*TITRE ' HEAT TRANSFER COEFFICIENT , TONB ' TONB ;
TITRE ' CHOSEN CORRELATIONS , TONB ' TONB ;
* modif raph/schlo pour couper l'echange au dessus du flux critique
* en regime transitoire, effectuee par R. MITTEAU le 16 fevrier 94
SI (EXISTE TAB_1 TRANSITOIRE) ;
SI TAB_1.TRANSITOIRE ;
SI (EXISTE TAB_1 FLUCRIT1 ) ;
EVBIDON1 = EVOL MANU LFT LTWALL ;
T_CRISE = @IPOE TAB_1.FLUCRIT1 EVBIDON1 ;
H_CRISE = @IPOE T_CRISE EVOCON ;
RANGENTI = ( LTWALL MASQUE 'INFE' 'SOMME' T_CRISE ) + 1 ;
LTWALL3 = INSERER LTWALL RANGENTI T_CRISE ;
LHT2 = INSERER LHT RANGENTI H_CRISE ;
LFT2 = INSERER LFT RANGENTI TAB_1.FLUCRIT1 ;
MASQ1 = LFT2 MASQUE EGINFE TAB_1.FLUCRIT1 ;
MASQ2 = LFT2 MASQUE SUPERIEUR TAB_1.FLUCRIT1 ;
LHT3 = (LHT2 * MASQ1 ) + MASQ2 ;
LFT3 = (LFT2 * MASQ1 ) + MASQ2 ;
TITRE ' HEAT TRANSFER COEFFICIENT ' ;
EVOCON = EVOL MANU 'TEMPERATURE' LTWALL3 'CONVECTION' LHT3 ;
TITRE ' COMBINED FLUX ' ;
EVOFT = EVOL MANU 'TEMPERATURE' LTWALL3 'CONVECTION' LFT3 ;
FINSI ;
FINSI ;
FINSI ;
*
TAB_1.T_SAT = TSAT ;
TAB_1.V_TONB = TONB ;
TAB_1.ECONVEC1 = EVOCON ;
TAB_1.EVOFE1 = EVOFE ;
*
TAC1 = TABLE ;
TAC1.1 = 'MARQ CROI REGU' ;
TAC1.2 = 'MARQ PLUS REGU' ;
TAC1.3 = 'MARQ ETOI REGU' ;
TAC1.4 = 'MARQ LOSA REGU' ;
TAC1.5 = 'MARQ CARR REGU' ;
TAC1.6 = 'MARQ TRIB REGU' ;
*
TAC2 = TABLE ;
TAC2.1 = 'MARQ CARR REGU' ;
TAC2.2 = 'MARQ LOSA REGU' ;
TAC2.3 = 'MARQ TRIA REGU' ;
TAC2.4 = 'MARQ TRIB REGU' ;
*
SI ( NON ( EXISTE TAB_1 C_TRACE ) ) ;
TAB_1.C_TRACE = FAUX ;
FINSI ;
*
SI L1TRAC ;
SI TAB_1.C_TRACE ;
SI ( EGA TAB_1.L_SUBNB 'YIN' ) ;
TITRE 'CONVECTIVE AND SUBCOOLED BOILING CORRELATIONS' ;
DESSIN ( EVOFC_DB ET EVOFC_ST ET EVOFC_P
ET EVOFB_T1 ET EVOFB_JL ET EVFB_YIN)
XBOR 0. 400. YBOR 0. 7.E7 LEGE TAC1 ;
SINON ;
TITRE 'CONVECTIVE AND SUBCOOLED BOILING CORRELATIONS' ;
DESSIN ( EVOFC_DB ET EVOFC_ST ET EVOFC_P
ET EVOFB_T1 ET EVOFB_JL)
XBOR 0. 400. YBOR 0. 7.E7 LEGE TAC1 ;
TAB_1.EVOFC_D1 = EVOFC_DB ;
TAB_1.EVOFC_S1 = EVOFC_ST ;
TAB_1.EVOFC_P1 = EVOFC_P ;
TAB_1.EVOFC_M1 = EVOFC_JB ;
TAB_1.EVOFB_T2 = EVOFB_T1 ;
TAB_1.EVOFB_J1 = EVOFB_JL ;
FINSI ;
FINSI ;
SI ( TAB_1 . PFIXTONB ) ;
DESSIN TAB_1.EV_TETA
XBOR T_LOC1 400. YBOR 0. 150000. MIMA ;
FINSI ;
DESSIN ( EVOFC ET TAB_1.EVOFE1 ET EVOFT )
XBOR 0. 400. YBOR 0. 7.E7 MIMA LEGE TAC2 ;
DESSIN TAB_1.ECONVEC1
XBOR 0. 400. YBOR 0. 700000. MIMA ;
FINSI ;
TAB_1.EVOFC1 = EVOFC ;
TAB_1.EVOFT1 = EVOFT ;
*
SI (NIVEAU >EG 4) ;
MESS '-----------------------------------> exit from @CALHCON ';
FINSI ;
FINPROC ;
**** @CALHRAY
DEBPROC @CALHRAY TAB1*TABLE ;
MESS ' ';
*
* !!! R. MITTEAU !!! attention, procedure standard
*
* un pointeur dans /CASTEM9X/procedures pointe sur cette procedure
* pour les mises a jour
*
*-------------------------------------------------------------------*
* *
* COEFFICIENT D ECHANGE TENANT COMPTE *
* DU RAYONNEMENT *
* *
*-------------------------------------------------------------------*
*23456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
*
* --- entrees
*
TZERO = TAB1.'TEMP_RAYO' ;
EPS1 = TAB1.'EMISSIVITE' ;
AB_2 = TAB1.'ABSORPTION' ;
NIVEAU1 = TAB1.'NIVEAU' ;
LTRAC = TAB1.'TRAC_GRAPHE' ;
SI (NIVEAU1 >EG 4 ) ;
MESS '-----------------------------------> calling @CALHRAY ';
FINSI ;
LTEMR = PROG -5000. 0. 50.
100. 200. 300. 400. 500. 600. 700. 800. 900.
1000. 1100. 1200. 1300. 1400. 1500. 1600. 1700. 1800. 1900.
2000. 2100. 2200. 2300. 2400. 2500. 2600. 2700. 2800. 2900.
3000. 3100. 3200. 3300. 3400. 3500. 3600. 3700. 3800. 3900.
2.E4 ;
SIGMA =5.67E-8 ;
TZK = 273.3 ;
MESS '>@CALHRAY> STEFAN CONSTANT : ' SIGMA ;
MESS '>@CALHRAY> TZERO DEG. C : ' TZERO ;
MESS '>@CALHRAY> EMISSIVITY : ' EPS1 ;
MESS '>@CALHRAY> ABSORPTION : ' AB_2 ;
TZERK = TZERO + TZK ;
* MESS ' TEMP H FR ' ;
LISTH = PROG ;
LISFE = PROG ;
IH1 = 0 ;
REPETER CAH1 ( DIME LTEMR ) ;
IH1 = IH1 + 1 ;
TEMP = EXTR LTEMR IH1 ;
TEMK = TEMP + TZK ;
EPSEQ = (( 1./EPS1 ) + (1./AB_2) - 1.) ** -1 ;
* FE = SIGMA * ((EPS1 * ( TEMK ** 4 )) - (AB_2 * ( TZERK ** 4 )));
FE = SIGMA * EPSEQ *( ( TEMK ** 4 ) - ( TZERK ** 4 ) ) ;
* H1 = TEMK ** 3 ;
* H2 = ( TEMK ** 2 ) * ( TZERK ) ;
* H3 = ( TEMK ) * ( TZERK ** 2 ) ;
* H4 = TZERK ** 3 ;
* H = SIGMA * EPS1 * ( H1 + H2 + H3 + H4 ) ;
SI ( EGA TEMK TZERK 1. ) ;
H = FE / 1. ;
SINON ;
H = FE / ( TEMK - TZERK ) ;
FINSI ;
LISTH = LISTH ET ( PROG H ) ;
LISFE = LISFE ET ( PROG FE ) ;
* MESS TEMP H FE ;
FIN CAH1 ;
TITRE '>@CALHRAY> COEFFICIENT ECHANGE DE RAYONNEMENT ' ;
ERAYON = EVOL MANU 'TEMPERATURE' LTEMR
'COEFFICIENT ECHANGE' LISTH ;
TITRE '>@CALHRAY> FLUX DE CHALEUR RAYONNEE ' ;
EVOFE = EVOL MANU 'TEMPERATURE' LTEMR 'RAYONNEMENT' LISFE ;
TAB1.EVORAYT1 = EVOFE ;
TAB1.EHRAYON1 = ERAYON ;
*
SI LTRAC ;
DESSIN EVOFE XBOR 0. 3900. YBOR 0. 4.E6 ;
DESSIN ERAYON XBOR 0. 3900. YBOR 0. 1500. ;
FINSI;
*
SI (NIVEAU1 >EG 4 ) ;
MESS '-----------------------------------> exiting @CALHRAY ';
FINSI ;
FINPROC ERAYON ;
**** @CALOR
'DEBPROC' @CALOR TAB1*'TABLE ' PUI1*FLOTTANT ;
MESS ' ' ;
* pour le calcul de la puissance voir CFLUX
*
VIN = TAB1 . V_IN ;
TIN = TAB1 . T_IN ;
CPF = @IPOE TIN TAB1.ETCPF ;
SI ( NON ( EXISTE TAB1 V_EMDOTI)) ;
RHOIN = @IPOE TIN TAB1.ETRHOF ;
NNUIN = @IPOE TIN TAB1.ETNNU ;
GIN = RHOIN * VIN ;
SI ( EXISTE TAB1 RIP_FLOWS ) ;
EMDOTI = GIN * ( TAB1 . RIP_FLOWS ) ;
SINON ;
SI ( EGA TAB1.HYPERVAP VRAI ) ;
TAB1.HYP_SM = ( TAB1.LARG_CANAL * TAB1.HMIN_CANAL ) +
( 2. * ( TAB1.LARG_ESP * TAB1.HFIN ) ) ;
EMDOTI = GIN * TAB1.HYP_SM ;
SINON ;
PI = 3.14159 ;
DIAM1 = TAB1 . D_MAQUETTE ;
TTAPE = TAB1 . T_TAPE ;
EMDOTI = GIN * ( ( PI * DIAM1 * DIAM1 / 4. ) - ( DIAM1 * TTAPE) ) ;
FINSI ;
FINSI ;
TAB1.V_EMDOTI = EMDOTI ;
SINON ;
EMDOTI = TAB1.V_EMDOTI ;
FINSI ;
*
* Modif jb 01/04/95
* Possibilite de creer une procedure calculant
* la section de passage
*SI ( NON ( EXISTE TAB1 SP ) ) ;
* SI ( EXISTE TAB1 RIP_FLOWS ) ;
* TAB1.SP = TAB1.RIP_FLOWS ;
* FINSI ;
* SI ( EGA TAB1.HYPERVAP VRAI ) ;
* TAB1.HYP_SM = ( TAB1.LARG_CANAL * TAB1.HMIN_CANAL ) +
* ( 2. * ( TAB1.LARG_ESP * TAB1.HFIN ) ) ;
* TAB1.SP = TAB1.HYP_SM ;
* SINON ;
* PI = 3.14159 ;
* DIAM1 = TAB1 . D_MAQUETTE ;
* TTAPE = TAB1 . T_TAPE ;
* TAB1.SP = ( PI * DIAM1 * DIAM1 / 4. ) - ( DIAM1 * TTAPE) ;
* FINSI ;
*EMDOTI = GIN * TAB1.SP ;
*
DELT = PUI1 / (EMDOTI * CPF) ;
TOUT = TIN + DELT ;
TAB1.TEMPE_OUT = TOUT ;
SI ( EGA TAB1.HYPERVAP VRAI ) ;
TAB1.'T_LOCAL' = TIN ;
TAB1.'T_MOY' = TIN ;
SINON ;
TAB1.'T_LOCAL' = TIN + ((TOUT - TIN) * TAB1.X_LOCAL) ;
TAB1.'T_MOY' = (TIN + TOUT) / 2. ;
FINSI ;
MESS '>@CALOR> TIN :' TIN ;
MESS '>@CALOR> TOUT DT :' TOUT DELT ;
MESS '>@CALOR> TMOY :' TAB1.'T_MOY' ;
MESS '>@CALOR> T_LOCAL :' TAB1.'T_LOCAL' ;
FINPROC ;
**** @CAPKPC
DEBPROC @CAPKPC EV_1*EVOLUTION
PC_1*FLOTTANT
D_1*FLOTTANT
FL_INC*FLOTTANT
NIV1/ENTIER;
*
* !!! R. MITTEAU !!! attention, procedure standard
*
* un pointeur dans /CASTEM9X/procedures pointe sur cette procedure
* pour les mises a jour
*
* calcul du peaking factor correspondant au pourcentage PC_1
* FL_INC flux incident moyen
* EV_1 evolution donnant le flux en paroi d eau
SI (NON (EXISTE NIV1));
MESS '---------------------------------> calling @CAPKPC';
SINON;
SI (NIV1 >EG 4);
MESS '---------------------------------> calling @CAPKPC';
FINSI;
FINSI;
P_X_1 = EXTR EV_1 'ABSC' 1 ;
P_Y_1 = EXTR EV_1 'ORDO' 1 ;
N1 = DIME P_X_1 ;
VINT0 = MAXI (SOMME ( EVOL MANU P_X_1 P_Y_1 )) ;
SI ( PC_1 >EG 1. ) ;
MESS ' >>>>> CAPKPC POURCENTAGE SUPERIEUR A 1 ' ;
ERRE ' >>>>> CAPKPC POURCENTAGE SUPERIEUR A 1 ' ;
FINSI ;
VA_1 = PC_1 * VINT0 ;
VINT1 = VINT0 ;
REPETER B__1 N1 ;
I_1 = DIME P_X_1 ;
P_X_2 = ENLE P_X_1 I_1 ;
P_Y_2 = ENLE P_Y_1 I_1 ;
VINT2 = MAXI (SOMME ( EVOL MANU P_X_2 P_Y_2 )) ;
SI( VINT2 <EG VA_1 ) ;
X_1 = EXTR P_X_1 I_1 ;
X_2 = EXTR P_X_1 (I_1 - 1) ;
Y_1 = EXTR P_Y_1 I_1 ;
Y_2 = EXTR P_Y_1 (I_1 - 1) ;
PENTE = (Y_1 - Y_2) / (X_1 - X_2) ;
DELTA = Y_2 ** 2 + ( 2. * PENTE *( VA_1 - VINT2 )) ;
SI ( DELTA < 0. ) ;
MESS ' >>>>> CAPKPC y a un truc DELTA < 0. ' ;
MESS ' >>>>> CAPKPC VINT2 VINT1 VA_1 ' VINT2 VINT1 VA_1 ;
MESS ' >>>>> CAPKPC Y_2 X_2 Y_1 X_1 ' Y_2 X_2 Y_1 X_1 ;
FINSI ;
* X_11 = X_2 + ((X_1 - X_2) / ( VINT1 - VINT2 )
* * ( VA_1 - VINT2 )) ;
RDELT = DELTA ** 0.5 ;
DX_11 = ( (-1. * Y_2) + RDELT ) / PENTE ;
X_11 = X_2 + DX_11 ;
SI ( (DX_11 * ( X_11 - X_1)) > 0. ) ;
MESS ' >>>>> CAPKPC y a un truc X_11 X_1 X_2 ' X_11 X_1 X_2;
MESS ' >>>>> CAPKPC VINT2 VINT1 VA_1 ' VINT2 VINT1 VA_1 ;
MESS ' >>>>> CAPKPC Y_2 X_2 Y_1 X_1 ' Y_2 X_2 Y_1 X_1 ;
MESS ' >>>>> CAPKPC PENTE DELTA RDELT' PENTE DELTA RDELT ;
FINSI ;
QUITTER B__1 ;
FINSI ;
P_X_1 = P_X_2 ;
P_Y_1 = P_Y_2 ;
VINT1 = VINT2 ;
FIN B__1 ;
FL_PC = VINT0 / X_11 ;
AL_1 = 2.* X_11 / D_1 ;
PKF_1 = FL_PC / FL_INC ;
SI (NON (EXISTE NIV1));
MESS '---------------------------------> exiting @CAPKPC';
SINON;
SI (NIV1 >EG 4);
MESS '---------------------------------> exiting @CAPKPC';
FINSI;
FINSI;
FINPROC AL_1 PKF_1 ;
**** @CBGMV
DEBPROC @CBGMV BXG*CHPOINT BYG*CHPOINT BZG*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Procedure de changement de base. On passe de la base cartesienne *
* globale de la machine definie par l'axe du tore dirige suivant *
* Z et l'axe X situe dans le plan median entre deux bobines a la *
* base cartesienne du maillage. *
* Trois cas sont etudies : 3D, 2D en coupe Phi constant et 2D en *
* coupe Theta constant. Alain MOAL (Decembre 1995-Janvier 1996) *
********************************************************************
*
*--------------- VARIABLES D'ENTREE :
SI ((VALEUR DIME) EGA 2) ;
IPLAN = TAB1.>>> TAB1.>>> TAB1.>>> TAB1.>>> TAB1. 0. ) ;
QUAS = 4. * (( PI * D * D / 8. ) - ( TTAPE * D / 2. )) ;
PERI = (( PI * D / 2. ) - TTAPE + D ) ;
DH = QUAS / PERI ;
TAB_1 . DDH = DH ;
PIS2Y = PI / ( 2. * YTWIST ) ;
FACV = ( 1. + ( PIS2Y ** 2 ) ) ** ( 1. / 2. ) ;
FINSI ;
*-----------------------------------------------------
* Prise en compte du fil helicoidal
*-----------------------------------------------------
*
SI ( NON ( EXISTE TAB_1 HELI_WIRE ) ) ;
TAB_1.HELI_WIRE = FAUX ;
FINSI ;
SI ( ( YTWIST EGA 0. ) ET ( EGA TAB_1.HELI_WIRE VRAI ) ) ;
S1 = PI * D1 * D1 / 4. ;
SM = PI * TAB_1.WIRE_D * TAB_1.WIRE_D / 4. ;
P1 = PI * D ;
PM = PI * TAB_1.WIRE_D ;
DH = 4. * ( S1 - SM ) / ( P1 + PM ) ;
PIS2Y = PI / ( 2 * TAB_1.PITCH_WIRE ) ;
FACV = ( 1. + ( PIS2Y ** 2 ) ) ** 0.5 ;
* FACV = 1. ;
FINSI ;
*
*-----------------------------------------------------
* Calcul de la vitesse
*-----------------------------------------------------
*
SI (NON (EXISTE TAB_1 FF_SANDIA)) ;
TAB_1 . FF_SANDIA = FAUX ;
FINSI ;
F_SANDIA = TAB_1 . FF_SANDIA ;
SI ( F_SANDIA EGA VRAI ) ;
FACV = 1. ;
FINSI ;
VP = VIN * FACV ;
TAB_1 . VITPAROI = VP ;
*
*-----------------------------------------------------
* Prise en compte du chauffage non asymetrique
*-----------------------------------------------------
*
LH = TAB_1 . L_HEATED ;
SI ( NON ( EXISTE TAB_1 CCHAU_SYM ) ) ;
TAB_1 . CCHAU_SYM = VRAI ;
FINSI ;
SI ( TAB_1 . CCHAU_SYM EGA VRAI ) ;
TAB_1.HHAR = PI * D * LH ;
AR = PI * D * D / 4. ;
SINON ;
QUAS = 4. * (( PI * D * D / 8. ) - ( TTAPE * D / 2. )) ;
AR = QUAS / 4. ;
** PERI = (( PI * D / 2. ) - TTAPE ) ;
** DHC = QUAS / PERI ;
** TAB_1.HHAR = PI * ( D / 2. ) * LH ;
TAB_1.HHAR = D * LH ;
FINSI ;
*
MUL = TAB_1.MMUL ;
RHOLIN = TAB_1.RRHOLIN ;
G = RHOLIN * VP ;
TAB_1.GGAM = RHOLIN * VP * AR ;
TAB_1.GG = G ;
REYL = G * TAB_1 . DDH / MUL ;
*
*-----------------------------------------------------
* Calcul du coefficient de frottement
*-----------------------------------------------------
*
* Facteur de Sandia
* multiplier le coefficient de frottement par
* 2.75 * ( YTWIST ** ( - 0.406 ) )
* 2.2 * ( YTWIST ** ( - 0.406 ) )
FA = 4. * 1.375E-3 *
(( 1. + ( 21.544 * ( 0.00375 /( TAB_1 . DDH * 1000. / 2. )))
+ ( 100. / REYL )) ** ( 1. / 3. )) ;
SI ( ( F_SANDIA EGA VRAI ) ET ( YTWIST NEG 0. ) ) ;
* FA = FA * (2.75 / ( YTWIST ** ( 0.406 ) )) ;
FA = FA * (2.2 / ( YTWIST ** ( 0.406 ) )) ;
FINSI ;
SIGM = TAB_1.SSIGM ;
RHOL = TAB_1.RRHOL ;
REPETER BOUCFA 100 ;
RADEFF = 1.14 - ( 2. * (
LOG ((( 0.72 * SIGM * RHOL ) / ( FA * TAB_1 . DDH * ( G**2 )))
+ ( 9.35 / ( REYL *( FA **( 1. / 2. ))))))/( LOG 10 )) ;
DIF1 = ( RADEFF ** (-2))- FA ;
DELTAF = ABS (DIF1) ;
FA = RADEFF**(-2) ;
SI ( ( F_SANDIA EGA VRAI ) ET ( YTWIST NEG 0. ) ) ;
* FA = FA * (2.75 * ( YTWIST ** ( -0.406 ) )) ;
FA = FA * (2.2 * ( YTWIST ** ( -0.406 ) )) ;
TAB_1.FFA = FA ;
SINON ;
TAB_1.FFA = FA ;
FINSI ;
SI (DELTAF <EG 1.E-6) ;
QUITTER BOUCFA ;
FINSI ;
FIN BOUCFA ;
FINPROC ;
*
*_____________________________________________________________________________
*
**** QCALCO
DEBPROC QCALCO TAB_1*TABLE Q*FLOTTANT ;
*
TIN = TAB_1.T_IN ;
TSAT = TAB_1.TTSAT ;
GAM = TAB_1.GGAM ;
G = TAB_1.GG ;
HAR = TAB_1.HHAR ;
*
*-----------------------------------------------------
* Calcul de la temperature moyenne du fluide
*-----------------------------------------------------
*
CPLIN = TAB_1.CCPLIN ;
CPLOUT = TAB_1.CCPLOUT ;
CPLMED = ( CPLIN + CPLOUT )/ 2. ;
*MESS ' CPLIN = ' CPLIN ;
*MESS ' CPLOUT = ' CPLOUT ;
*MESS ' CPLMED = ' CPLMED ;
*MESS ' HAR = ' HAR ;
*MESS ' GAM = ' GAM ;
*MESS ' Q = ' Q ;
*TMED = TIN + (( Q * HAR )/( GAM * CPLMED )) ;
TMED = TIN + (( Q * HAR )/( GAM * CPLIN )) ;
* MESS 'MEAN FLUID TEMPERATURE (C) :' TMED ;
*
*-----------------------------------------------------
* Calcul de la temperature de la paroi
*-----------------------------------------------------
*
FA = TAB_1.FFA ;
RHOL = TAB_1.RRHOL ;
PRAL = TAB_1.PPRAL ;
MUL = TAB_1.MMUL ;
D = TAB_1.D_MAQUETTE ;
*MESS ' FA =' FA ;
*MESS ' RHOL = ' RHOL ;
*MESS ' PRAL = ' PRAL ;
*MESS ' MUL = ' MUL ;
*MESS ' D = ' D ;
UTAU = ( FA * ( G **2 ))/(8.*( RHOL**2 ))**(1./2.) ;
*MESS ' UTAU =' UTAU ;
QU = Q /(RHOL * CPLOUT * UTAU) ;
*MESS ' QU = ' QU ;
R = D / 2. ;
TT = 1. + (5.* PRAL ) ;
*MESS ' TT = ' TT ;
XX = ( R * UTAU * RHOL )/ MUL ;
*MESS ' XX = ' XX ;
ZZ = XX - 30. ;
TW = TMED + ( ( 5. * QU / XX ) *
( (( PRAL / 2. ) * (( 2. * XX ) - 5. )) +
(( 5. / PRAL ) * (( TT * ( LOG TT )) + ( 1. - TT )))
+ ( ZZ * ( LOG TT ))
+ (( 1. / 2. ) *
((( LOG ( XX / 30. )) * XX ) + ( 30. - XX ))) ));
MESS '>QCALCO> WALL TEMPERATURE (C) : ' TW ;
* MESS ' SATURATION TEMPERATURE (C) : ' TSAT ;
SI ( TW <EG TSAT ) ;
IFLAG = 1 ;
QUITTER QCALCO ;
MESS '----->>>>>>>>' ;
FINSI ;
*
*-----------------------------------------------------
* Calcul de l epaisseur de la couche liquide surchauffee
*-----------------------------------------------------
*
*MESS '-----------------------------------> TW>TSAT ' ;
DT1 = QU * PRAL * 5. ;
DT2 = 5.* QU * ( PRAL + ( LOG ( 1. + ( 5. * PRAL )))) ;
SI (( TW - TSAT ) < DT1 ) ;
YPIU = ( TW - TSAT )/( QU * PRAL ) ;
SINON ;
SI (( TW - TSAT ) < DT2 ) ;
YPIU = 5. + ( ( 5. / PRAL )*
( EXP (( TW - TSAT )/( 5. * QU )- PRAL )- 1. )) ;
SINON ;
AA1 = ( TW - TSAT )/( 5. * QU ) ;
AA2 = 1. + ( 5. * PRAL ) ;
AA = ( AA1 - PRAL - ( LOG AA2 )) * 2. ;
YPIU = 30.* (EXP AA) ;
FINSI ;
FINSI ;
YSTAR = ( YPIU * MUL )/( UTAU * RHOL ) ;
* MESS ' SUPERHEATED LAYER THICKNESS (m) : ' YSTAR ;
*
*-----------------------------------------------------
* Calcul de l epaisseur de l amas de vapeur et de
* sa distance de la paroi chauffee
*-----------------------------------------------------
*
SIGM = TAB_1.SSIGM ;
DB = ( 32. / FA ) * ( SIGM * 0.03 * RHOL /( G**2 )) ;
DELTA = YSTAR - DB ;
* MESS ' INITIAL LIQUID SUBLAYER THICKNESS (m) : ' DELTA ;
SI (DELTA <EG 0.) ;
IFLAG = 1 ;
QUITTER QCALCO ;
FINSI ;
*
*-----------------------------------------------------
* Calcul des parametres de l amas de vapeur
*-----------------------------------------------------
*
YPIU = ( DELTA + ( DB / 2. ))* UTAU * RHOL / MUL ;
SI ( YPIU <EG 5.) ;
UBL = YPIU * UTAU ;
* MESS ' YPIU <EG 5. ' ;
* MESS ' UBL = ' UBL ;
SINON ;
SI ( YPIU <EG 30.) ;
UBL = (( 5. * ( LOG YPIU ) - 3.05 )) * UTAU ;
* MESS ' YPIU <EG 30. ' ;
* MESS ' UBL = ' UBL ;
SINON ;
UBL = (( 2.5 *( LOG YPIU )) + 5.5 )* UTAU ;
* MESS ' YPIU > 30. ' ;
* MESS ' UBL = ' UBL ;
FINSI ;
FINSI ;
RHOV = TAB_1.RRHOV ;
SI ( NON ( EXISTE TAB_1 FFLOW_HO ) ) ;
TAB_1 . FFLOW_HO = VRAI ;
FINSI ;
SI ( NON ( EXISTE TAB_1 FFLOW_VE ) ) ;
TAB_1 . FFLOW_VE = FAUX ;
FINSI ;
SI ( TAB_1 . FFLOW_HO EGA VRAI ) ;
UB = UBL ;
FINSI ;
SI ( TAB_1 . FFLOW_VE EGA VRAI ) ;
CD = (2./3.) *
DB /(( SIGM /( 9.81 *( RHOL - RHOV )))**(1./2.)) ;
PI = 3.1415926 ;
C1 = (( 4.* PI * 9.81 *( RHOL + RHOV ) * ( RHOL - RHOV ))
/(( RHOL **2 )* RHOV * CD)) ** (1./2.) ;
UB1 = ( UBL + ((( UBL **2 ) + ( 4. * C1))**(1./2.)))/2. ;
UB2 = ( UBL - ((( UBL **2 ) + ( 4. * C1))**(1./2.)))/2. ;
*UB2<0 toujours
UB = UB1 ;
*MESS ' CD = ' CD ;
*MESS ' C1 = ' C1 ;
FINSI ;
*MESS ' UB = ' UB ;
BLB = (2.*PI*SIGM*(RHOL+RHOV))/(RHOL*RHOV*(UB**2)) ;
SI (UB <EG 0.) ;
MESS 'UB<=0 *** ' ;
IFLAG = 1 ;
QUITTER QCALCO ;
FINSI ;
TAU = BLB/UB ;
*MESS ' TAU = ' TAU ;
*MESS ' IFLAG = ' IFLAG ;
* MESS ' VAPOR BLANKET VELOCITY (m/s) : ' UB ;
* MESS ' VAPOR BLANKET LENGTH (m) : ' BLB ;
FINPROC DELTA UB UBL BLB TAU IFLAG ;
*
*_____________________________________________________________________________
*
**** QUQU
DEBPROC QUQU TAB_1*TABLE Q*FLOTTANT ;
*
DELTA = 0. ;
UB = 0. ;
UBL = 0. ;
BLB = 0. ;
TAU = 0. ;
DELTA UB UBL BLB TAU IFLAG = QCALCO TAB_1 Q ;
SI (IFLAG NEG 0) ;
* MESS ' On quitte la procedure QUQU sans definir FQ ';
QUITTER QUQU ;
FINSI ;
LLV = TAB_1.LLLV ;
RHOL = TAB_1.RRHOL ;
*MESS 'DELTA =' DELTA ;
*MESS 'RHOL =' RHOL ;
*MESS 'LLV =' LLV ;
*MESS 'TAU =' TAU ;
*MESS 'UB =' UB ;
*MESS 'UBL =' UBL ;
*MESS 'Q ='Q ;
FQ = Q - ( DELTA * RHOL * LLV / TAU) ;
FINPROC FQ IFLAG ;
*
*_____________________________________________________________________________
*
**** SECANTI
DEBPROC SECANTI TAB_1*TABLE
X1*FLOTTANT X2*FLOTTANT X1MIN*FLOTTANT
ERRMAX*FLOTTANT NMAX*ENTIER ;
*
SI (OU (X1 >EG 10.E10) (X2 >EG 10.E10)) ;
IFLAG = 1 ;
FINSI ;
SI (IFLAG NEG 0) ;
QUITTER SECANTI ;
FINSI ;
I = 0 ;
F1 IFLAG1 = QUQU TAB_1 X1 ;
F2 IFLAG2 = QUQU TAB_1 X2 ;
*MESS ' F1 = ' F1 ;
*MESS ' F2 = ' F2 ;
XPREC = 0. ;
REPETER BOUC4(NMAX) ;
SI (OU (X1 >EG 10.E10) (X2 >EG 10.E10)) ;
IFLAG = 1 ;
FINSI ;
SI (X1 <EG X1MIN) ;
X1 = X1MIN ;
FINSI ;
SI (IFLAG NEG 0) ;
QUITTER SECANTI ;
FINSI ;
X3 = X2-(F2*(X1-X2)/(F1-F2)) ;
ERR = (ABS ((XPREC-X3)/X3))*100 ;
F3 IFLAG3 = QUQU TAB_1 X3 ;
* MESS ' F3 = ' F3 ;
SI ((ERR <EG ERRMAX) ET (F3 <EG 1.E-3)) ;
QUITTER SECANTI ;
FINSI ;
XPREC = X3 ;
I = I + 1 ;
SI ((F1*F3) < 0.) ;
SI ((F2*F3) < 0.) ;
A1 = ABS (F3-F1) ;
A2 = ABS (F3-F2) ;
SI (A1 > A2) ;
X1 = X3 ;
F1 = F3 ;
SINON ;
X2 = X3 ;
F2 = F3 ;
FINSI ;
SINON ;
X2 = X3 ;
F2 = F3 ;
FINSI ;
SINON ;
SI ((F2*F3) > 0.) ;
A1 = ABS (F3-F1) ;
A2 = ABS (F3-F2) ;
SI (A1 > A2) ;
X1 = X3 ;
F1 = F3 ;
SINON ;
X2 = X3 ;
F2 = F3 ;
FINSI ;
SINON ;
X1 = X3 ;
F1 = F3 ;
FINSI ;
FINSI ;
FIN BOUC4 ;
*MESS ' X3 = ' X3 ;
FINPROC X3 ERR IFLAG ;
*_____________________________________________________________________________
*
**** @CELAT94
DEBPROC @CELAT94 TAB_1*TABLE ;
*
* --- entrees
*
NIVEAU = TAB_1.'NIVEAU';
SI (NIVEAU >EG 4);
MESS '---------------> calling @CELAT94';
FINSI ;
PROP_PHY TAB_1 ;
*
NORADICI = 0 ;
*DQ = 2.E3 ;
DQ = 2.E6 ;
Q1 = 0. ;
*Q1 = 20.E6 ;
REPETER BOUC2 ;
* MESS '---> BOUC2 ' ;
QQ = Q1 ;
IFLAG = 0 ;
QQ = QQ + DQ ;
FQ IFLAG = QUQU TAB_1 QQ ;
* MESS 'FQ =' FQ ;
* MESS '--------------------------IFLAG =' IFLAG ;
REPETER BOUC1 ;
* MESS '--> BOUC1 ' ;
SI (IFLAG <EG 0) ;
QUITTER BOUC1 ;
FINSI ;
IFLAG = 0 ;
QQ = QQ + DQ ;
FQ IFLAG = QUQU TAB_1 QQ ;
FIN BOUC1 ;
SI (FQ >EG 0.) ;
QUITTER BOUC2 ;
SINON ;
SI (DQ < 1.E-2) ;
MESS '---> QUQU HAS NO ZERO ' ;
NORADICI = 1 ;
QUITTER BOUC2 ;
FINSI ;
Q1 = QQ - DQ ;
DQ = DQ / 2. ;
* MESS ' --------QQ = ' QQ ;
* MESS ' --------Q1 = ' Q1 ;
* MESS ' FQ = ' FQ ;
FINSI ;
FIN BOUC2 ;
*
*MESS '--->BOUC3' ;
*MESS ' **************************** ' ;
*MESS ' **************************** ' ;
*MESS ' **************************** ' ;
*MESS ' **************************** ' ;
*MESS ' **************************** ' ;
Q1 = QQ ;
Q1MIN = Q1 ;
Q2 = QQ + DQ ;
*MESS 'Q1 ='Q1 ;
*MESS 'Q1MIN =' Q1MIN ;
*MESS 'Q2 =' Q2 ;
*MESS 'DQ =' DQ ;
*MESS 'NORADICI =' NORADICI ;
REPETER BOUC3 ;
SI (NORADICI EGA 1) ;
QUITTER BOUC3 ;
FINSI ;
IFLAG = 0 ;
ERRMAX = 0.00001 ;
SI (OU (Q1 >EG 10.E10) (Q2 >EG 10.E10)) ;
MESS ' WARNING Q1 OR Q2 EXCEEDED MAXIMUM VALUE ' ;
QUITTER BOUC3 ;
FINSI ;
QCAL ERR IFLAG = SECANTI TAB_1
Q1 Q2 Q1MIN
ERRMAX 500 ;
SI (IFLAG NEG 0) ;
MESS ' PARAMETER PROBLEM IN TEST ' ;
IFLAG = 0 ;
FINSI ;
SI (QCAL EGA 0.) ;
QUITTER BOUC3 ;
FINSI ;
QUITTER BOUC3 ;
FIN BOUC3 ;
*
MESS 'CELATA94 CRITICAL HEAT FLUX (W/m2) : 'QCAL ;
*
QCHFW = QCAL ;
DELTA = 0. ;
UB = 0. ;
UBL = 0. ;
BLB = 0. ;
Q1 = 0. ;
Q2 = 0. ;
QCAL = 0. ;
*
TAB_1.CHF = QCHFW ;
SI (NIVEAU >EG 4);
MESS '---------------> exiting @CELAT94';
FINSI ;
*FINPROC QCHFW ;
FINPROC ;
**** @CERI
DEBPROC @CERI P_1*POINT P_2*POINT P_3*POINT R_1*FLOTTANT ;
X_1 = COOR 1 P_1 ;
Y_1 = COOR 2 P_1 ;
X_2 = COOR 1 P_2 ;
Y_2 = COOR 2 P_2 ;
X_3 = COOR 1 P_3 ;
Y_3 = COOR 2 P_3 ;
X_I = (X_1 + X_2 ) / 2. ;
Y_I = (Y_1 + Y_2 ) / 2. ;
A_1 = (( X_1 - X_2 ) ** 2 ) + (( Y_1 - Y_2 ) ** 2 ) / 4. ;
R_12 = R_1 ** 2 ;
REPETER BLO1 1 ;
SI ( A_1 EGA R_12 1.E-6 ) ;
PS_1 = X_I Y_I ;
P_4 = PS_1 PLUS (( Y_1 - Y_I) ( X_I - X_1)) ;
X_4 = COOR 1 P_4 ;
Y_4 = COOR 2 P_4 ;
PSCAL_1 = ((X_I - X_4) * (X_I - X_3)) +
((Y_I - Y_4) * (Y_I - Y_3)) ;
SI (PSCAL_1 > 0. ) ;
P_4 = PS_1 MOIN (( Y_1 - Y_I) ( X_I - X_1)) ;
FINSI ;
C_ERC1 = (CERC P_1 PS_1 P_4) ET (CERC P_4 PS_1 P_2);
QUITTER BLO1 ;
FINSI ;
SI ( ( X_1 - X_2 ) NEG 0. 1.E-6) ;
B_1 = (( Y_1 - Y_2 ) ** 2 ) / (( X_1 - X_2 ) ** 2 ) + 1. ;
SI ( A_1 < R_12) ;
YS_1 = Y_I + (((R_12 - A_1) / B_1) ** 0.5 ) ;
XS_1 = X_I - ((YS_1 - Y_I)*(Y_1 - Y_2 )/(X_1 - X_2 )) ;
PS_1 = XS_1 YS_1 ;
PSCAL_1 = ((X_I - XS_1) * (X_I - X_3)) +
((Y_I - YS_1) * (Y_I - Y_3)) ;
SI (PSCAL_1 < 0. ) ;
YS_2 = Y_I - (((R_12 - A_1) / B_1) ** 0.5 ) ;
XS_2 = X_I - ((YS_2 - Y_I)*(Y_1 - Y_2 )/(X_1 - X_2 )) ;
PS_1 = XS_2 YS_2 ;
FINSI ;
C_ERC1 = CERC P_1 PS_1 P_2 ;
SINON ;
ERRE '>>@CERI>> DISTANCE ENTRE LES 2 POINTS SUPERIEUR AU DIAMETRE ' ;
FINSI ;
SINON ;
B_1 = (( Y_1 - Y_2 ) ** 2 ) + 1. ;
R_12 = R_1 ** 2 ;
YS_1 = Y_I + (((R_12 ) / B_1) ** 0.5 ) ;
XS_1 = X_I - ((YS_1 - Y_I)*(Y_2 - Y_1 )) ;
PS_1 = XS_1 YS_1 ;
PSCAL_1 = ((X_I - XS_1) * (X_I - X_3)) +
((Y_I - YS_1) * (Y_I - Y_3)) ;
SI (PSCAL_1 < 0. ) ;
YS_2 = Y_I - (((R_12 ) / B_1) ** 0.5) ;
XS_2 = X_I - ((YS_2 - Y_I)*(Y_2 - Y_1 )) ;
PS_1 = XS_2 YS_2 ;
FINSI ;
C_ERC1 = CERC P_1 PS_1 P_2 ;
FINSI ;
FIN BLO1 ;
FINPROC C_ERC1 PS_1 ;
*-----------------------------------------------------------------------
* Procedure CFLUXTOT
*-----------------------------------------------------------------------
DEBPROC CFLUXTOT TAB1*TABLE;
*
***********************************************************************
* CFLUXTOT developpee par Nicolas URAGO (avr-sept 1994) *
* largement revisitee par Jacques SCHLOSSER et Alain MOAL (aout 1995) *
***********************************************************************
******* ATTENTION --> Cette procedure ne tourne qu'en 3D et ne peut
* traiter que des cas de limiteurs plancher car
* Z (point tangent) = Z (centre du plasma)
*
MESS '---------------------------------> calling CFLUXTOT';
*
*-------------------- VARIABLES D'ENTREE
LPAT1 = TAB1.LFLUX_EXTE ;
GRP1 = TAB1.GRAND_RAYON ;
IMESS = TAB1.'NIVEAU' ;
PTG = TAB1.'PT_TGPLASMA';
MODEL0 = TAB1.'MODELF' ;
LAMBQ = TAB1.LAMDAQ ;
LISFLU = TAB1.LIS_FLUX ;
OEIL0 = TAB1.VIEW_P ;
*
SI (EXISTE TAB1 ANGLE_DEC) ;
PSI = TAB1.ANGLE_DEC ;
SINON;
PSI = 0.0 ;
FINSI;
*---------------------------------------
*
*---- On calcule pour chaque point de LPAT1, les coordonnees
*---- de son'centre plasma'.
XP1 = COOR 1 LPAT1 ;
YP1 = COOR 2 LPAT1 ;
ZP1 = COOR 3 LPAT1 ;
GRAYP1 = (XP1**2 + (YP1**2))**0.5 ;
XCP1 = XP1 * GRP1 / GRAYP1 ;
YCP1 = YP1 * GRP1 / GRAYP1 ;
*
AUX1 = ((XCP1 - XP1)**2 + ((YCP1 - YP1)**2))**0.5;
BETA1 = ATG (AUX1/ZP1) ;
ALPHA2 = ATG YCP1 XCP1 ;
*
*---- le vecteur tangent aux lignes de champ B est orthogonal
*---- a V = P1CP1
VX1 = XCP1 - XP1 ;
VY1 = YCP1 - YP1 ;
VZ1 = ZP1 * -1. ;
*
*---- B appartient au plan defini par les vecteurs K (0, 0, 1) et U
*UX1 = SIN (PSI + ALPHA2) ;
*UY1 = (COS (PSI + ALPHA2)) * -1. ;
*UZ1 = UX1 * 0. ;
*
UX1 = SIN (PSI - ALPHA2) ;
UY1 = COS (PSI - ALPHA2) ;
UZ1 = UX1 * 0. ;
*
*---- calcul de B
BZ = ((VZ1*UX1)**2 + ((VZ1*UY1)**2)) /
((VX1*UX1 + (VY1*UY1))**2) + 1. ;
BZ = BZ**(-0.5) * -1.;
BY = BZ * (VZ1*UY1) /(VX1*UX1 + (VY1*UY1)) * -1. ;
BX = BY * UX1 / UY1 ;
*
*---- Calcul du produit scalaire : VECTEUR TANGENT . NORMALE
NX NY NZ = @VNORM3D (EXTR MODEL0 'MAIL') LPAT1 IMESS ;
COS_BN = ABS ((BX*NX) + (BY*NY) + (BZ*NZ)) ;
*
*---- Coordonnees du point de tangence
XREF1 = COOR 1 PTG ;
YREF1 = COOR 2 PTG ;
ZREF1 = COOR 3 PTG ;
*
*---- Centre du plasma au dessus du point de tangence
XCREF1 = XREF1 * GRP1 / ((XREF1**2 + (YREF1**2))**0.5);
YCREF1 = YREF1 * GRP1 / ((XREF1**2 + (YREF1**2))**0.5);
*
*---- DREF1 est le petit rayon du plasma
DREF1 = (((XREF1-XCREF1)**2) + ((YREF1-YCREF1)**2) + (ZREF1**2))**.5;
DIST1 = (((XP1 - XCP1)**2) + ((YP1 - YCP1)**2) + (ZP1**2))**.5;
*
*---- Distance a la DSMF
LDEC1 = DIST1 - DREF1 ;
*
*---- Calcul du profil de flux
VPAT1 = COS_BN * (EXP (LDEC1/(-1.*LAMBQ))) ;
VFP1 = FLUX MODEL0 VPAT1 ;
*
*---- Visualisations
ARET0 = ARETE LPAT1 ;
TITRE 'CFLUXTOT : B.N = COSINUS OF THE INCIDENCE ANGLE';
TRAC OEIL0 COS_BN LPAT1 ARET0;
TITRE 'CFLUXTOT : TANGENT VECTOR TO THE MAGNETIC LINE';
VB = @CVECT BX BY BZ LPAT1 VERT;
TRAC OEIL0 VB LPAT1 ;
TITRE 'CFLUXTOT : DISTANCE TO THE LCFS' ;
TRAC OEIL0 LDEC1 LPAT1 ARET0;
TITRE 'CFLUXTOT : PROFILE OF THE INCIDENT FLUX' ;
TRAC OEIL0 VPAT1 LPAT1 ARET0;
*
*-------------------- VARIABLES EN SORTIE
*---- flux moyen et puissance
TAB1.V_SOM1 = (EXTR LISFLU (DIME LISFLU)) * (MAXI (RESU VFP1));
TAB1.V_FACFM2 = (MAXI (RESU VFP1)) / (MESU LPAT1) ;
*-----------------------------------------
*
MESS '---------------------------------> exiting CFLUXTOT';
FINPROC VPAT1 ;
**** @CFPFLU
DEBPROC @CFPFLU TAB1*TABLE ;
*
**************************************************************
* Procedure de calcul du profil du depot de puissance sur un *
* objet avec la configuration magnetique de JET. *
* Alain MOAL (Janvier - Avril 2001) *
**************************************************************
* Modif : *
* 08/11/01 (A.MOAL) : nouveau nom (JETFLU devient CFPFLU) *
* 08/11/01 (A.MOAL) : calcul de la puissance reelle deposee *
* 23/11/01 (A.MOAL) : trace de dpsi sur le maillage *
* 06/12/01 (A.MOAL) : indicateur du passage dans cfpflu *
* 27/01/04 (A.MOAL) : suppression de l'indicateur calling @CFPFLU';
*
*---- Valeurs par defaut, verification des indices de la table
@VDEFJET TAB1 ;
*
*--------------- VARIABLES D'ENTREE :
MAIL0 = TAB1.EG 2) ;
MESS '>>>> @CFPFLU : BXM '; MESS (MAXI BXM) (MINI BXM) ;
MESS '>>>> @CFPFLU : BYM '; MESS (MAXI BYM) (MINI BYM) ;
MESS '>>>> @CFPFLU : BZM '; MESS (MAXI BZM) (MINI BZM) ;
MESS '>>>> @CFPFLU : PROFIL0 ';
MESS (MAXI PROFIL0) (MINI PROFIL0) ;
MESS '>>>> @CFPFLU : PROFIL1 ';
MESS (MAXI PROFIL1) (MINI PROFIL1) ;
MESS '>>>> @CFPFLU : VAR1 '; MESS (MAXI VAR1) (MINI VAR1) ;
MESS '>>>> @CFPFLU : ANGINCI ';
MESS (MAXI ANGINCI) (MINI ANGINCI) ;
FINSI ;
SI (IMESS >EG 3) ;
MESS '>>>> @CFPFLU : BXM '; LIST BXM ;
MESS '>>>> @CFPFLU : BYM '; LIST BYM ;
MESS '>>>> @CFPFLU : BZM '; LIST BZM ;
MESS '>>>> @CFPFLU : VBVN '; LIST VBVN ;
MESS '>>>> @CFPFLU : BETA2DXY '; LIST BETA2DXY ;
MESS '>>>> @CFPFLU : BETA2DXZ '; LIST BETA2DXZ ;
MESS '>>>> @CFPFLU : ANGINCI '; LIST ANGINCI ;
MESS '>>>> @CFPFLU : PROFIL0 '; LIST PROFIL0 ;
MESS '>>>> @CFPFLU : PROFIL1 '; LIST PROFIL1 ;
FINSI ;
*
*--------------- VARIABLES DE SORTIE :
TAB1.V_FACFM2 = PROMOY ;
TAB1. exiting @CFPFLU';
FINPROC PROFIL1 ;
**** @CHAMB
DEBPROC @CHAMB TAB1*TABLE XG1*CHPOINT YG1*CHPOINT ZG1*CHPOINT
ISHIFT*LOGIQUE IRIPPLE*LOGIQUE ;
*
***********************************************************
* Procedure de calcul du champ magnetique en chaque point *
* en utilisant le modele Seigneur-Hertout de ripple avec *
* prise en compte du shift de Shafranov. *
* Alain MOAL (juin 1995) *
***********************************************************
*123456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
***********************************************************
*
*MESS '---------------------------------> calling @CHAMB';
*
*--------------- VARIABLES D'ENTREE :
RP = TAB1.