optio debu 1;
* fichier : cfpflu.dgibi
************************************************************************
************************************************************************
* repertoire des fichiers "divers"
DIVERS
= VENV 'CASTEM_DIVERS'
;*
**** @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 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
VECT0 = CP MOINS PTG ;
*
*---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
SI ((VALEUR
DIME) EGA 2) ; SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
VXL1 = VZL ;
VYL1 = VYL ;
VZL1 = VXL * (-1.);
* ---- rotation
VXM = VXL1 * (COS ANG1) + (VYL1 * (-1.) * (SIN ANG1));
VYM = VXL1 * (SIN ANG1) + (VYL1 * (COS ANG1)) ;
VZM = VZL1 ;
FINSI ;
SI (EGA IPLAN 'THETACONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
VXM = VXL * (COS ANG1) + (VYL * (-1.) * (SIN ANG1)) ;
VYM = VXL * (SIN ANG1) + (VYL * (COS ANG1)) ;
VZM = VZL ;
FINSI;
SINON ;
*
* ---- calcul de l'angle de rotation dans le plan Y1Z1
VX1 = VX * (COS ANG1) + (VY * (SIN ANG1)) ;
VY1 = VX * (-1.) * (SIN ANG1) + (VY * (COS ANG1)) ;
VZ1 = VZ ;
*
SI ((VY1 EGA 0.) ET (VZ1 EGA 0.)) ;
ANG2 = 0. ;
SINON ;
ANG2 = ATG VZ1 VY1 ;
FINSI ;
*
* ---- rotations
VXL1 = VXL ;
VYL1 = VYL * (COS ANG2) + (VZL * (-1.) * (SIN ANG2));
VZL1 = VYL * (SIN ANG2) + (VZL * (COS ANG2)) ;
*
VXM = VXL1 * (COS ANG1) + (VYL1 * (-1.) * (SIN ANG1)) ;
VYM = VXL1 * (SIN ANG1) + (VYL1 * (COS ANG1)) ;
VZM = VZL1 ;
FINSI ;
FINPROC VXM VYM VZM ;
**** @ACBML
DEBPROC @ACBML VXM*CHPOINT VYM*CHPOINT VZM*CHPOINT TAB1*TABLE ;
*
**********************************************************************
* Procedure de changement de base. On passe de la base cartesienne *
* du maillage a la base cartesienne locale de l'objet modelise. L' *
* axe Y 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 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
VECT0 = CP MOINS PTG ;
*
*---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
SI ((VALEUR
DIME) EGA 2) ; * ---- rotation pour aligner l'axe Y avec VECT0
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
VXL1 = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYL1 = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZL1 = VZM ;
* ---- Coupe 2D a Phi constant
VXL = VZL1 ;
VYL = VYL1 ;
VZL = VXL1 * (-1.);
FINSI ;
SI (EGA IPLAN 'THETACONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
VXL = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYL = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZL = VZM ;
FINSI ;
*
SINON ;
* ---- rotation pour aligner l'axe Y avec VECT0
VXM1 = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYM1 = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZM1 = VZM ;
*
VX1 = VX * (COS ANG1) + (VY * (SIN ANG1)) ;
VY1 = VX * (-1.) * (SIN ANG1) + (VY * (COS ANG1)) ;
VZ1 = VZ ;
*
* ---- calcul de l'angle de rotation dans le plan Y1Z1
SI ((VY1 EGA 0.) ET (VZ1 EGA 0.)) ;
ANG2 = 0. ;
SINON ;
ANG2 = ATG VZ1 VY1 ;
FINSI ;
*
VXL = VXM1 ;
VYL = VYM1 * (COS ANG2) + (VZM1 * (SIN ANG2));
VZL = VYM1 * (-1.) * (SIN ANG2) + (VZM1 * (COS ANG2));
*
FINSI ;
*MESS '>>>> @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 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
VECT0 = CP MOINS PTG ;
*
*---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
*
SI ((VALEUR
DIME) EGA 2) ; SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
XL = ZL ;
ZL = ZL * 0.;
* ---- rotation
XL1 = XL * (COS ANG1) + (YL * (-1.) * (SIN ANG1));
YL1 = XL * (SIN ANG1) + (YL * (COS ANG1));
FINSI;
SI (EGA IPLAN 'THETACONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
XL1 = XL * (COS ANG1) + (YL * (-1.) * (SIN ANG1));
YL1 = XL * (SIN ANG1) + (YL * (COS ANG1));
FINSI;
* ---- changement d'origine du repere
XM = XL1 + XPTG ;
YM = YL1 + YPTG ;
ZM = YL1 * 0. ;
SINON ;
*
* ---- calcul de l'angle de rotation dans le plan Y1Z1
VX1 = VX * (COS ANG1) + (VY * (SIN ANG1)) ;
VY1 = VX * (-1.) * (SIN ANG1) + (VY * (COS ANG1)) ;
VZ1 = VZ ;
*
SI ((VY1 EGA 0.) ET (VZ1 EGA 0.)) ;
ANG2 = 0. ;
SINON ;
ANG2 = ATG VZ1 VY1 ;
FINSI ;
*
* ---- rotations
XL1 = XL ;
YL1 = YL * (COS ANG2) + (ZL * (-1.) * (SIN ANG2)) ;
ZL1 = YL * (SIN ANG2) + (ZL * (COS ANG2)) ;
*
XL2 = XL1 * (COS ANG1) + (YL1 * (-1.) * (SIN ANG1)) ;
YL2 = XL1 * (SIN ANG1) + (YL1 * (COS ANG1)) ;
ZL2 = ZL1 ;
*
* ---- changement d'origine du repere
XM = XL2 + XPTG ;
YM = YL2 + YPTG ;
ZM = ZL2 + ZPTG ;
FINSI ;
FINPROC XM YM ZM ;
**** @ACRML
DEBPROC @ACRML XM*CHPOINT YM*CHPOINT ZM*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Procedure de changement de repere. On passe du repere cartesien *
* du maillage au repere cartesien local de l'objet modelise. Le *
* point de tangence au plasma est l'origine de ce repere et l'axe *
* l'axe Y final est dirige vers le centre du plasma. *
* en 3D l'axe x initial doit etre l'axe toroidal *
* en 2D cas PHICONS l'axe Z initial est l'axe toroidal *
* en 2D cas THETACONS l'axe x initial est l'axe toroidal *
* Alain MOAL (juillet-aout 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.'CENTRE_PLASMA' ;
PTG = TAB1.'PT_TGPLASMA' ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> @CRMLC : TAB1.
<PLAN n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
VECT0 = CP MOINS PTG ;
*
*---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
*
SI ((VALEUR
DIME) EGA 2) ; * ---- changement d'origine du repere
XM1 = XM - XPTG ;
YM1 = YM - YPTG ;
* ---- rotation pour aligner l'axe Y avec VECT0
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
XL = XM1 * (COS ANG1) + (YM1 * (SIN ANG1));
YL = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1));
ZL = XM * 0. ;
*
ZL = XL ;
XL = XL * 0.;
FINSI;
SI (EGA IPLAN 'THETACONS');
* ---- Coupe 2D a Theta constant
XL = XM1 * (COS ANG1) + (YM1 * (SIN ANG1));
YL = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1));
ZL = XM * 0. ;
FINSI ;
*
SINON ;
* ---- changement d'origine du repere
XM1 = XM - XPTG ;
YM1 = YM - YPTG ;
ZM1 = ZM - ZPTG ;
* ---- rotation pour aligner l'axe Y avec VECT0
XM2 = XM1 * (COS ANG1) + (YM1 * (SIN ANG1)) ;
YM2 = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1)) ;
ZM2 = ZM1 ;
*
VX1 = VX * (COS ANG1) + (VY * (SIN ANG1)) ;
VY1 = VX * (-1.) * (SIN ANG1) + (VY * (COS ANG1)) ;
VZ1 = VZ ;
*
* ---- calcul de l'angle de rotation dans le plan Y1Z1
SI ((VY1 EGA 0.) ET (VZ1 EGA 0.)) ;
ANG2 = 0. ;
SINON ;
ANG2 = ATG VZ1 VY1 ;
FINSI ;
*
XL = XM2 ;
YL = YM2 * (COS ANG2) + (ZM2 * (SIN ANG2)) ;
ZL = YM2 * (-1.) * (SIN ANG2) + (ZM2 * (COS ANG2)) ;
*
FINSI ;
*MESS '>>>> @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) *
*************************************************************
*
SI (VALDIM EGA 2) ;
ZM = XM * 0. ;
SINON ;
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.<MAILLAGE_FN ;
CHSIGN1 = TAB1.<CHAMP_SIGNE ;
PASB2 = TAB1.<LONGUEUR_PAS_AVEC_TEST ;
DMAX2 = TAB1.<DISTANCE_AVEC_TEST ;
NBPAS2 = TAB1.<NOMBRE_PAS_AVEC_TEST ;
PASB1 = TAB1.<LONGUEUR_PAS_SANS_TEST ;
DMAX1 = TAB1.<DISTANCE_SANS_TEST ;
NBPAS1 = TAB1.<NOMBRE_PAS_SANS_TEST ;
TOL1 = 1.e-9 ;
*------------------------------------
*
* --- PASSAGE EN TRI3 POUR LA PROCEDURE @INTSEC
stri3
= elem s_ombran tri3
; squa4
= elem s_ombran qua4
; squtri3
= chan squa4 tri3
; s_ombra2 = squtri3 et stri3 ;
sinon ;
s_ombra2
= chan s_ombran tri3
;finsi ;
*
* --- CONSTRUCTION DU MAILLAGE DES POINTS A SUIVRE
TABPTS1 = table ;
TABPTS1 .
1 = (chan s_ombre poi1
) poin init
;npts = 1 ;
tablig1 = table ;
* --- CREATION DES 3 CHMELEM DE COORDONNEES AUX ELEMENTS
TAB1.<MAILLAGE = S_OMBRA2 ;
*AM*27/01/04 @RMXYZ TAB1 ;
@RMCOORO TAB1 ;
* --- CALCUL DES NORMALES AUX ELEMENTS SUR LE MAILLAGE OMBRANT
*AM*27/01/04 @AMNORM TAB1 ;
@RMNORM TAB1 ;
* ---- Flux normalise sur le maillage ombrant
@RMFLUN TAB1 ;
MESS 'Distance covered :' DMAX1
; MESS 'Iterations number :' NBPAS1
; MESS 'Distance covered :' DMAX2
; MESS 'Iterations number :' NBPAS2
;
* --- initialisation du pas
I1 = 0 ;
* ---initialisation de la distance de connexion
CHDIST
= manu chpo S_OMBRE
1 'SCAL'
0.
nature discret
;* --- initialisation du flux normalise
CHFNORM
= manu chpo S_OMBRE
1 'SCAL'
0.
nature discret
;* --- initialisation du maillage ou on va tester les intersections
s_ombre2 = s_ombre ;
* --- initialisation du maillage ou on va remonter les lignes
mailcou = s_ombre2 et mailpts ;
* ---- initialisation des distances
LCOURAN1 = 0. ;
LMAX1 = 0. ;
* ---- coordonnees
XG_OLD
= COOR 1 mailcou
; YG_OLD
= COOR 2 mailcou
; ZG_OLD
= COOR 3 mailcou
;*
* --- initialisation des lignes de champ remontees
REPETER BOUPTS1 NPTS ;
tablig1 . &BOUPTS1 = TABPTS1 . &BOUPTS1 ;
FIN BOUPTS1 ;
*--------------------------------------------------------------
*
* DEBUT DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
*
*--------------------------------------------------------------
*
* ----- sans test d'interception
PASB0 = PASB1 ;
* increment de la distance de connexion (= PAS tant qu'il n'y a pas
* d'intersection)
chdist9
= manu chpo s_ombre2
1 scal pasb0
;*
* initialisation a 0 des deplacements
DEPX0 = XG_OLD * 0. ;
DEPY0 = YG_OLD * 0. ;
DEPZ0 = ZG_OLD * 0. ;
DEPX0
= NOMC UX DEPX0 NATURE DIFFUS
; DEPY0
= NOMC UY DEPY0 NATURE DIFFUS
; DEPZ0
= NOMC UZ DEPZ0 NATURE DIFFUS
; TAB1.<DEPLACEMENT = DEPX0 ET DEPY0 ET DEPZ0 ;
SI (NBPAS1 NEG 0) ;
MESS 'WITHOUT INTERCEPTION TEST'
; REPETER BOUCLE1 NBPAS1 ;
I1 = I1 + 1 ;
LCOURAN1 = LCOURAN1 + PASB0 ;
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;
TAB1.<DEPLACEMENT = TAB1.<DEPLACEMENT + DEP0 ;
* --- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
* --- 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 remontee
* repeter boupts2 npts ;
* xprem2 = extr xmailpt2 SCAL (tabpts1 . &boupts2) ;
* yprem2 = extr ymailpt2 SCAL (tabpts1 . &boupts2) ;
* zprem2 = extr zmailpt2 SCAL (tabpts1 . &boupts2) ;
* prem2 = xprem2 yprem2 zprem2 ;
* tablig1.&boupts2 = (tablig1 . &boupts2) d 1 prem2 ;
* fin boupts2 ;
* --- actualisation des champs de coordonnees pour iteration suivante
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
FIN BOUCLE1 ;
FINSI ;
MESS 'WITH INTERCEPTION TEST'
;
PASB0 = PASB2 ;
s_ombreP
= chan s_ombre poi1
;s_ombre2
= chan s_ombre poi1
;mailcou = s_ombre2 et mailpts ;
I2 = 0 ;
I3 = 0 ;
REPETER BOUCLE2 NBPAS2 ;
I1 = I1 + 1 ;
I3 = I3 + 1 ;
* ---- si il reste des noeuds non encore intersectes
LCOURAN1 = LCOURAN1 + PASB0 ;
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.
<GRILLE_B
et TAB1.
<MAILLAGE_FN
) ; *
DEP01
= REDU DEP0 s_ombre2
; DEP02
= MANU CHPO s_ombre0
3 UX
0.
UY 0.
UZ 0.
NATURE DIFFUS
; DEP0 = DEP01 ET DEP02 ET DEPMP1 ;
SINON ;
DEP0 = DEP01 ET DEP02 ;
FINSI ;
* ---- 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.<DEPLACEMENT = TAB1.<DEPLACEMENT + DEP0 ;
* ---- actualisation du maillage de descente
mailcou = s_ombre2 et mailpts ;
CHSIGN1
= REDU CHSIGN1 mailcou
;
mess (NBNO MINTER
) 'intercepted points'
; LMAX1
= LCOURAN1
- pasb0
+ (mini CHDIST9
) ; FINSI ;
* ---- Distances parcourues avant interception
chdist = chdist + CHDIST9 ;
chfnorm = chfnorm + chfn9 ;
* 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
; sinon ;
SI (I2 EGA 0) ;
MESS 'ALL POINTS ARE INTERCEPTED'
; I2 = I1 ;
FINSI ;
finsi ;
FIN BOUCLE2 ;
*--- Sorties dans TAB1
TAB1.<CHAMP_DISTANCE = CHDIST ;
TAB1.<LONGUEUR_CONNEXION_MAX = LMAX1 ;
TAB1.<LONGUEUR_PARCOURUE = LCOURAN1 ;
*si (exis tab1 <remontee) ;
* tab1 . <remontee . <ligne = tablig1 ;
*finsi ;
MESS '
---------------------------------> exiting @ANADES'
; FINPROC chfnorm ;
**** @ANAJET
DEBPROC @ANAJET TAB1*TABLE ;
MESS '
---------------------------------> calling @ANAJET'
; MESS 'METHODE ANALYTIQUE'
; *
*--------------- VARIABLES D'ENTREE :
*
S_OMBRE = TAB1.<S_OMBRE ;
S_OMBRAN = TAB1.<S_OMBRANT ;
IMETHOD = TAB1.<METHODE_REMONTEE ;
CHSIGN1 = TAB1.<CHSIGN ;
si (exis tab1
<remontee
) ; TABPTS1 = TAB1.<REMONTEE.<POINT ;
tablig1 = table ;
finsi ;
PASB2 = TAB1.<PAS_AVEC_TEST ;
DMAX2 = TAB1.<DIST_AVEC_TEST ;
NBPAS2 = TAB1.<NBPAS2 ;
SI (EXIS TAB1
<PAS_SANS_TEST
) ; PASB1 = TAB1.<PAS_SANS_TEST ;
DMAX1 = TAB1.<DIST_SANS_TEST ;
NBPAS1 = TAB1.<NBPAS1 ;
FINSI ;
SI (EXIS TAB1
<TOLERANCE
) ; TOL1 = TAB1.<TOLERANCE ;
SINON ;
TOL1 = 1.e-9 ;
FINSI ;
*
* --- PASSAGE EN TRI3 POUR LA PROC @INTERC
*
si (ntyp ega 2) ;
stri3
= elem s_ombran tri3
; squa4
= elem s_ombran qua4
; squtri3
= chan squa4 tri3
; s_ombra2 = squtri3 et stri3 ;
sinon ;
s_ombra2
= chan s_ombran tri3
;finsi ;
* --- CONSTRUCTION DU MAILLAGE DES POINTS A REMONTER
si (exis tab1
<remontee
) ; MAILPTS
= MANU POI1 TABPTS1 .
1 ; REPETER BOUPTS1 (NPTS - 1) ;
MAILPTS = MAILPTS ET TABPTS1 . (&BOUPTS1 + 1) ;
FIN BOUPTS1 ;
sinon ;
* RM 15/06/2000 MAILPTS = MANU POI1 (s_ombre poin init) ;
TABPTS1 = table ;
TABPTS1 .
1 = (chan s_ombre poi1
) poin init
; npts = 1 ;
tablig1 = table ;
finsi ;
si (non (tab1.<reprise)) ;
* --- CREATION DES 3 CHMELEM DE COORDONNEES AUX ELEMENTS
* --- Remarque : ces coordonnees seront exprimees dans le repere globale
TAB1.<MAILLAGE = S_OMBRA2 ;
*AM*27/01/04 si (non (exis tab1 <chamx1)) ;
*AM*27/01/04 @AMCOORO TAB1 ;
@RMCOORO TAB1 ;
*AM*27/01/04 finsi ;
* --- CALCUL DES NORMALES AUX ELEMENTS SUR LE MAILLAGE OMBRANT
*AM*27/01/04 si (non (exis tab1 <cosx)) ;
@RMNORM TAB1 ;
*AM*27/01/04 finsi ;
finsi ;
*
* --- Rappel des parametres de la procedure
*
MESS '##################################################'
; MESS '
>@ANAJET
> procedure OMBJET, Rappel des parametres de calcul '
;
si (tab1.<reprise) ;
mess 'Reprise d un calcul'
; mess '
-------------------'
; finsi ;
SI (IMETHOD EGA 1) ;
METH = 'methode explicite des tangentes'
; FINSI ;
SI (IMETHOD EGA 2) ;
METH = 'methode moyenne des tangentes aux extremitee'
; FINSI ;
SI (IMETHOD EGA 3) ;
METH = 'methode du point milieu'
; FINSI ;
SI (IMETHOD EGA 4) ;
METH = 'methode de reprojection'
; FINSI ;
SI (EXIS tab1
<PAS_SANS_TEST
) ; MESS 'Calcul en deux parties :'
; MESS 'Distance remontee :' DMAX1
; MESS 'Pas pour la remontee :' PASB1
; MESS 'Nombre d iterations :' NBPAS1
; MESS 'Distance remontee :' DMAX2
; MESS 'Pas pour la remontee :' PASB2
; MESS 'Nombre d iterations :' NBPAS2
; SINON ;
MESS 'Calcul avec test systematique :'
; MESS 'Distance remontee :' DMAX2
; MESS 'Pas de remontee :' PASB2
; MESS 'Nombre d iterations :' NBPAS2
; FINSI ;
*
*--------------------------------------------------------------
*
* INITIALISATION DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
* --- CAS SANS REPRISE ---
*--------------------------------------------------------------
si (non (tab1.<reprise)) ;
* --- initialisation du pas
I1 = 0 ;
* ---initialisation de la distance de connexion
CHDIST
= manu chpo S_OMBRE
1 'SCAL'
0.
nature discret
;* --- initialisation du maillage ou on va tester les intersections
s_ombre2 = s_ombre ;
* --- initialisation du maillage ou on va remonter les lignes
mailcou = s_ombre2 et mailpts ;
*---- initialisation des distances
LCOURAN1 = 0. ;
LMAX1 = 0. ;
* ---- coordonnees dans le repere du maillage
*---- Coordonnees dans le repere global du tore
XG_OLD = XM0 ;
YG_OLD = YM0 ;
ZG_OLD = ZM0 ;
*
* --- initialisation des lignes de champ remontees
REPETER BOUPTS1 NPTS ;
tablig1 . &BOUPTS1 = TABPTS1 . &BOUPTS1 ;
FIN BOUPTS1 ;
sinon ;
*
*--------------------------------------------------------------
*
* INITIALISATION DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
* --- CAS AVEC REPRISE ---
*--------------------------------------------------------------
* --- initialisation du pas
I1 = tab1.<i_ombrage ;
* --- initialisation de la distance de connexion
CHDIST = tab1.<chdist;
* --- initialisation du maillage ou on va tester les intersections
s_ombre2 = tab1.<s_omb_non_inter ;
* --- initialisation du maillage ou on va remonter les lignes
mailcou = s_ombre2 et mailpts ;
*---- initialisation des distances
LMAX1 = tab1.<CONNEXION_MAX ;
*---- Coordonnees dans le repere global du tore
XG_OLD
= exco X tab1.
<CHCOOR0
; YG_OLD
= exco Y tab1.
<CHCOOR0
; ZG_OLD
= exco Z tab1.
<CHCOOR0
;*
* --- initialisation des lignes de champ remontees
si (exis tab1
<remontee
) ; tablig1 = tab1.<remontee.<ligne ;
sinon ;
tablig1 .
1 = (TABPTS1 .
1) d
1 (TABPTS1.1
plus (0.
0.
0.
)); finsi ;
finsi ;
*--------------------------------------------------------------
*
* DEBUT DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
*
*--------------------------------------------------------------
*
MESS '##################################################'
;
SI (EXIS TAB1
<DIST_SANS_TEST
) ;
* ------------------ Boucle 1 on remonte sans test -------------------
PASB0 = PASB1 ;
* increment de la distance de connexion (= PAS tant qu'il n'y a pas
* d'intersection)
chdist9
= manu chpo s_ombre2
1 scal pasb0
;
*
* initialisation a 0 des deplacements
DEPX0 = XG_OLD * 0. ;
DEPY0 = YG_OLD * 0. ;
DEPZ0 = ZG_OLD * 0. ;
DEPX0
= NOMC UX DEPX0 NATURE DIFFUS
; DEPY0
= NOMC UY DEPY0 NATURE DIFFUS
; DEPZ0
= NOMC UZ DEPZ0 NATURE DIFFUS
; TAB1.<DEPLACE = DEPX0 ET DEPY0 ET DEPZ0 ;
MESS 'PREMIERE PARTIE DU CALCUL, SANS TEST D INTERSECTION'
; REPETER BOUCLE1 NBPAS1 ;
I1 = I1 + 1 ;
LCOURAN1 = LCOURAN1 + PASB0 ;
MESS 'ITERATION : ' I1 'distance remontee' LCOURAN1
;
* ---- Appel de la procedure de remontee des lignes de champ
XG_NEW YG_NEW ZG_NEW DEP0 = @remojet XG_OLD YG_OLD ZG_OLD PASB0 CHSIGN1 TAB1 ;
TAB1.<DEPLACE = TAB1.<DEPLACE + DEP0 ;
TITRE 'SANS TEST, ITERATION : 'I1 ;
TRAC ((s_ombre2
coul roug
) ET TAB1.
<GRILLE_B
ET TAB1.
<S_OMBRANT
) ;
*--- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
*-----------------------------------------------------------------
*--- 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 boupts2 npts ;
xprem2
= extr xmailpt2 SCAL
(tabpts1 .
&boupts2
) ; yprem2
= extr ymailpt2 SCAL
(tabpts1 .
&boupts2
) ; zprem2
= extr zmailpt2 SCAL
(tabpts1 .
&boupts2
) ; prem2 = xprem2 yprem2 zprem2 ;
tablig1.&boupts2 = (tablig1 . &boupts2) d 1 prem2 ;
fin boupts2 ;
**-----------------------------------------------------------------
* --- actualisation des champs de coordonnees pour iteration suivante
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
FIN BOUCLE1 ;
* ------------------------ Fin de la boucle 1 ------------------------
finsi ;
MESS '##################################################'
;
MESS 'CALCUL AVEC TEST D INTERSECTION'
;
* ------------------ Boucle 2 on remonte avec test -------------------
PASB0 = PASB2 ;
si (non (tab1.<reprise)) ;
s_ombre2
= chan s_ombre poi1
; mailcou = s_ombre2 et mailpts ;
finsi ;
REPETER BOUCLE2 NBPAS2 ;
I1 = I1 + 1 ;
LCOURAN1 = LCOURAN1 + PASB0 ;
MESS 'ITERATION : ' I1 'distance remontee' LCOURAN1
;
* ---- Appel de la procedure de remonter des lignes de champ
XG_NEW YG_NEW ZG_NEW DEP0 = @remojet XG_OLD YG_OLD ZG_OLD PASB0 CHSIGN1 TAB1 ;
*---- ------test sur les eventuels noeuds interceptes -----------
*---- seulement s'il reste des noeuds non encore intersectes ----
si (nbno s_ombre2
> 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
;
mess 'nombre de noeuds intersectes '
(NBNO MINTER
) ; LMAX1
= LCOURAN1
- pasb0
+ (mini CHDIST9
) ; FINSI ;
* --- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
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
;
TAB1.<DEPLACE = TAB1.<DEPLACE + DEP0 ;
TITRE 'AVEC TEST, ITERATION : 'I1 ;
TRAC ((s_ombre2
coul roug
) ET MINTER
ET TAB1.
<GRILLE_B
ET TAB1.
<S_OMBRANT
) ;
FIN BOUCLE2 ;
* --------------------- Fin de la boucle 2 ----------------------
*--- Sorties dans TAB1
TAB1.<CHDIST = CHDIST ;
TAB1.<CONNEXION_MAX = LMAX1 ;
TAB1.<LONGUEUR_REMONTEE = LCOURAN1 ;
si (exis tab1
<remontee
) ; tab1 . <remontee . <ligne = tablig1 ;
finsi ;
*Sauvegardes pour reprise eventuelle
XG_OLD
= nomc X XG_OLD nature discret
;YG_OLD
= nomc Y YG_OLD nature discret
;ZG_OLD
= nomc Z ZG_OLD nature discret
;tab1.<CHCOOR0 = (XG_OLD et YG_OLD et ZG_OLD) ;
tab1.<s_omb_non_inter = s_ombre2 ;
tab1.<i_ombrage = i1 ;
MESS '
---------------------------------> exiting @ANAJET'
; FINPROC ;
**** @ANALY
DEBPROC @ANALY TAB1*TABLE ;
MESS '
---------------------------------> calling @ANALY'
; MESS 'METHODE ANALYTIQUE'
; *
*--------------- VARIABLES D'ENTREE :
*
S_OMBRE = TAB1.<S_OMBRE ;
S_OMBRAN = TAB1.<S_OMBRANT ;
IMETHOD = TAB1.<METHODE_REMONTEE ;
CHSIGN1 = TAB1.<CHSIGN ;
TYPCAL = TAB1.<TYPE_CALCUL ;
RP = TAB1.<RP ;
RHO0 = TAB1.<RHO0 ;
RR = TAB1.<RR ;
HP = TAB1.<HP ;
EPS0 = TAB1.<EPS ;
COEFA = TAB1.<COEFA ;
COEFB = TAB1.<COEFB ;
COEFC = TAB1.<COEFC ;
NBOB = TAB1.<NBOB ;
si (exis tab1
<remontee
) ; TABPTS1 = TAB1.<REMONTEE.<POINT ;
tablig1 = table ;
finsi ;
PASB2 = TAB1.<PAS_AVEC_TEST ;
DMAX2 = TAB1.<DIST_AVEC_TEST ;
NBPAS2 = TAB1.<NBPAS2 ;
SI (EXIS TAB1
<PAS_SANS_TEST
) ; PASB1 = TAB1.<PAS_SANS_TEST ;
DMAX1 = TAB1.<DIST_SANS_TEST ;
NBPAS1 = TAB1.<NBPAS1 ;
FINSI ;
SI (EXIS TAB1
<TOLERANCE
) ; TOL1 = TAB1.<TOLERANCE ;
SINON ;
TOL1 = 1.e-9 ;
FINSI ;
*
* --- PASSAGE EN TRI3 POUR LA PROC @INTERC
*
si (ntyp ega 2) ;
stri3
= elem s_ombran tri3
; squa4
= elem s_ombran qua4
; squtri3
= chan squa4 tri3
; s_ombra2 = squtri3 et stri3 ;
sinon ;
s_ombra2
= chan s_ombran tri3
;finsi ;
*
* ---
*
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
* --- CONSTRUCTION DU MAILLAGE DES POINTS A REMONTER
si (exis tab1
<remontee
) ; MAILPTS
= MANU POI1 TABPTS1 .
1 ; REPETER BOUPTS1 (NPTS - 1) ;
MAILPTS = MAILPTS ET TABPTS1 . (&BOUPTS1 + 1) ;
FIN BOUPTS1 ;
sinon ;
* RM 15/06/2000 MAILPTS = MANU POI1 (s_ombre poin init) ;
TABPTS1 = table ;
TABPTS1 .
1 = (chan s_ombre poi1
) poin init
; npts = 1 ;
tablig1 = table ;
finsi ;
si (non (tab1.<reprise)) ;
* --- CREATION DES 3 CHMELEM DE COORDONNEES AUX ELEMENTS
* --- Remarque : ces coordonnees seront exprimees dans le repere globale
TAB1.<MAILLAGE = S_OMBRA2 ;
si (non (exis tab1
<chamx1
)) ; @RMCOORO TAB1 ;
finsi ;
* --- CALCUL DES NORMALES AUX ELEMENTS SUR LE MAILLAGE OMBRANT
si (non (exis tab1
<cosx
)) ; @RMNORM TAB1 ;
finsi ;
finsi ;
*
* --- Rappel des parametres de la procedure
*
MESS '##################################################'
; MESS '
>@ANALY
> procedure OMBRAGE, Rappel des parametres de calcul '
;
si (tab1.<reprise) ;
mess 'Reprise d un calcul'
; mess '
-------------------'
; finsi ;
SI (IMETHOD EGA 1) ;
METH = 'methode explicite des tangentes'
; FINSI ;
SI (IMETHOD EGA 2) ;
METH = 'methode moyenne des tangentes aux extremitee'
; FINSI ;
SI (IMETHOD EGA 3) ;
METH = 'methode du point milieu'
; FINSI ;
SI (IMETHOD EGA 4) ;
METH = 'methode de reprojection'
; FINSI ;
SI (EXIS tab1
<PAS_SANS_TEST
) ; MESS 'Calcul en deux parties :'
; MESS 'Distance remontee :' DMAX1
; MESS 'Pas pour la remontee :' PASB1
; MESS 'Nombre d iterations :' NBPAS1
; MESS 'Distance remontee :' DMAX2
; MESS 'Pas pour la remontee :' PASB2
; MESS 'Nombre d iterations :' NBPAS2
; SINON ;
MESS 'Calcul avec test systematique :'
; MESS 'Distance remontee :' DMAX2
; MESS 'Pas de remontee :' PASB2
; MESS 'Nombre d iterations :' NBPAS2
; FINSI ;
SI ISHIFT ;
MESS 'Calcul avec shift de Safranov'
; SINON ;
MESS 'Calcul sans shift de Safranov'
; FINSI ;
SI IRIPPLE ;
MESS 'Calcul avec ripple du champ toroidal'
; SINON ;
MESS 'Calcul sans ripple du champ toroidal'
; FINSI ;
*
*--------------------------------------------------------------
*
* INITIALISATION DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
* --- CAS SANS REPRISE ---
*--------------------------------------------------------------
si (non (tab1.<reprise)) ;
* --- initialisation du pas
I1 = 0 ;
* ---initialisation de la distance de connexion
CHDIST
= manu chpo S_OMBRE
1 'SCAL'
0.
nature discret
;* --- initialisation du maillage ou on va tester les intersections
s_ombre2 = s_ombre ;
* --- initialisation du maillage ou on va remonter les lignes
mailcou = s_ombre2 et mailpts ;
*---- initialisation des distances
LCOURAN1 = 0. ;
LMAX1 = 0. ;
* ---- coordonnees dans le repere du maillage
*---- Coordonnees dans le repere global du tore
XG_OLD YG_OLD ZG_OLD = @CRMGC XM0 YM0 ZM0 TAB1 ;
*
* --- initialisation des lignes de champ remontees
REPETER BOUPTS1 NPTS ;
tablig1 . &BOUPTS1 = TABPTS1 . &BOUPTS1 ;
FIN BOUPTS1 ;
sinon ;
*
*--------------------------------------------------------------
*
* INITIALISATION DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
* --- CAS AVEC REPRISE ---
*--------------------------------------------------------------
* --- initialisation du pas
I1 = tab1.<i_ombrage ;
* --- initialisation de la distance de connexion
CHDIST = tab1.<chdist;
* --- initialisation du maillage ou on va tester les intersections
s_ombre2 = tab1.<s_omb_non_inter ;
* --- initialisation du maillage ou on va remonter les lignes
mailcou = s_ombre2 et mailpts ;
*---- initialisation des distances
LMAX1 = tab1.<CONNEXION_MAX ;
*---- Coordonnees dans le repere global du tore
XG_OLD
= exco X tab1.
<CHCOOR0
; YG_OLD
= exco Y tab1.
<CHCOOR0
; ZG_OLD
= exco Z tab1.
<CHCOOR0
;*
* --- initialisation des lignes de champ remontees
si (exis tab1
<remontee
) ; tablig1 = tab1.<remontee.<ligne ;
sinon ;
tablig1 .
1 = (TABPTS1 .
1) d
1 (TABPTS1.1
plus (0.
0.
0.
)); finsi ;
finsi ;
*--------------------------------------------------------------
*
* DEBUT DE LA BOUCLE DE REMONTEE ITERATIVE DES LIGNES DE CHAMP
*
*--------------------------------------------------------------
*
MESS '##################################################'
;
SI (EXIS TAB1
<DIST_SANS_TEST
) ;
* ------------------ Boucle 1 on remonte sans test -------------------
PASB0 = PASB1 ;
* increment de la distance de connexion (= PAS tant qu'il n'y a pas
* d'intersection)
chdist9
= manu chpo s_ombre2
1 scal pasb0
;
MESS 'PREMIERE PARTIE DU CALCUL, SANS TEST D INTERSECTION'
; REPETER BOUCLE1 NBPAS1 ;
I1 = I1 + 1 ;
LCOURAN1 = LCOURAN1 + PASB0 ;
MESS 'ITERATION : ' I1 'distance remontee' LCOURAN1
;
* ---- Appel de la procedure de remontee des lignes de champ
XG_NEW YG_NEW ZG_NEW = @remonte XG_OLD YG_OLD ZG_OLD PASB0 CHSIGN1 TAB1 ;
*--- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
*-----------------------------------------------------------------
*--- 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 boupts2 npts ;
xprem2
= extr xmailpt2 SCAL
(tabpts1 .
&boupts2
) ; yprem2
= extr ymailpt2 SCAL
(tabpts1 .
&boupts2
) ; zprem2
= extr zmailpt2 SCAL
(tabpts1 .
&boupts2
) ; prem2 = xprem2 yprem2 zprem2 ;
tablig1.&boupts2 = (tablig1 . &boupts2) d 1 prem2 ;
fin boupts2 ;
**-----------------------------------------------------------------
* --- actualisation des champs de coordonnees pour iteration suivante
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
FIN BOUCLE1 ;
* ------------------------ Fin de la boucle 1 ------------------------
finsi ;
MESS '##################################################'
;
MESS 'CALCUL AVEC TEST D INTERSECTION'
;
* ------------------ Boucle 2 on remonte avec test -------------------
PASB0 = PASB2 ;
si (non (tab1.<reprise)) ;
s_ombre2
= chan s_ombre poi1
; mailcou = s_ombre2 et mailpts ;
finsi ;
REPETER BOUCLE2 NBPAS2 ;
I1 = I1 + 1 ;
LCOURAN1 = LCOURAN1 + PASB0 ;
MESS 'ITERATION : ' I1 'distance remontee' LCOURAN1
;
* ---- Appel de la procedure de remonter des lignes de champ
XG_NEW YG_NEW ZG_NEW = @remonte XG_OLD YG_OLD ZG_OLD PASB0 CHSIGN1 TAB1 ;
*---- ------test sur les eventuels noeuds interceptes -----------
*---- seulement s'il reste des noeuds non encore intersectes ----
si (nbno s_ombre2
> 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
;
mess 'nombre de noeuds intersectes '
(NBNO MINTER
) ; LMAX1
= LCOURAN1
- pasb0
+ (mini CHDIST9
) ; FINSI ;
* --- CHPOINT CONTENANT LES DISTANCES PARCOURUES AVANT INTERCEPTION
chdist = chdist + CHDIST9 ;
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
;
FIN BOUCLE2 ;
* --------------------- Fin de la boucle 2 ----------------------
*--- Sorties dans TAB1
TAB1.<CHDIST = CHDIST ;
TAB1.<CONNEXION_MAX = LMAX1 ;
TAB1.<LONGUEUR_REMONTEE = LCOURAN1 ;
si (exis tab1
<remontee
) ; tab1 . <remontee . <ligne = tablig1 ;
finsi ;
*Sauvegardes pour reprise eventuelle
XG_OLD
= nomc X XG_OLD nature discret
;YG_OLD
= nomc Y YG_OLD nature discret
;ZG_OLD
= nomc Z ZG_OLD nature discret
;tab1.<CHCOOR0 = (XG_OLD et YG_OLD et ZG_OLD) ;
tab1.<s_omb_non_inter = s_ombre2 ;
tab1.<i_ombrage = i1 ;
MESS '
---------------------------------> 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
*
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
*
VALC1 = IPOE EVC1 TLIEU1 FIXE;
VALC2 = IPOE EVC2 TLIEU1 FIXE;
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) ;
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) ;
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) ;
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) ;
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 ;
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' ;
*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' ;
*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' ;
*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' ;
*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' ;
*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 ;
*
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_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' ;
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' ;
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' ;
*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' ;
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
; 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 ;
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
; 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 ;
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 ) ;
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 ;
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 ;
*
* !!! 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 ' ;
IH1 = 0 ;
REPETER CAH1
( DIME LTEMR
) ; IH1 = IH1 + 1 ;
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 ;
* 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 ; 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 ;
SI( VINT2 <EG VA_1 ) ;
X_2
= EXTR P_X_1
(I_1
- 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.<PLAN ;
SI (EGA IPLAN 'PHICONS') ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
SI (EGA IPLAN 'THECONS') ;
THETA0 = TAB1.<THETA0 ;
CP = TAB1.CENTRE_PLASMA ;
RP = TAB1.<RP ;
HP = TAB1.<HP ;
FINSI ;
SINON ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
ANGPHI0 = TAB1.<ANG_PHI0 ;
*------------------------------------
*
SI (DIM0 EGA 2) ;
FINSI ;
*
SI (((DIM0 EGA 2) ET (EGA IPLAN 'PHICONS')) OU (DIM0 EGA 3)) ;
*
* ---- Calcul des coordonnees du point P0, projection du point P1 de
* ---- l'objet dans le plan orthogonal a l'axe du tore en CT0.
A = X1 - X0 ;
B = Y1 - Y0 ;
C = Z1 - Z0 ;
*
SI (A EGA 0.) ;
SI (B EGA 0.) ;
XP0 = XP1 ;
YP0 = YP1 ;
ZP0 = Z0 ;
FINSI ;
SI (C EGA 0.) ;
XP0 = XP1 ;
YP0 = Y0 ;
ZP0 = ZP1 ;
FINSI ;
SI ((B NEG 0.) ET (C NEG 0.)) ;
XP0 = XP1 ;
YP0 = (-1.*B*C*ZP1 + (C*C*YP1) + (B*B*Y0) + (B*C*Z0)) /(B*B + (C*C)) ;
ZP0 = (B*ZP1 - (C*YP1) + (C*(Y0+Z0)))/(B+C);
FINSI ;
SINON ;
AUX1 = A / (A*A + (B*B) + (C*C)) ;
AUX2 = (B*B + (C*C)) / A ;
XP0 = AUX1 * (A*X0 + (B*Y0) + (C*Z0) + (AUX2*XP1) - (B*YP1) - (C*ZP1)) ;
YP0 = B * (XP0 - XP1) / A + YP1 ;
ZP0 = C * (XP0 - XP1) / A + ZP1 ;
FINSI ;
*
P0 = XP0 YP0 ZP0 ;
*
* ---- Rotation de la ligne (CT0,P0) pour l'aligner sur l'axe X
* ---- du repere global
LIG0 = CT0 D 1 P0 ;
LIG1
= LIG0
TOUR (-1.
*ANGPHI0
) CT0 CT1
;*
* ---- Calcul des 3 vecteurs unitaires du repere global
VEC1
= DIR1
/ (NORM DIR1
) ; VEC3
= DIR3
/ (NORM DIR3
) ;*
* ---- Changement de repere
*
BXM = (A1 * BXG) + (A2 * BYG) + (A3 * BZG) ;
BYM = (B1 * BXG) + (B2 * BYG) + (B3 * BZG) ;
BZM = (C1 * BXG) + (C2 * BYG) + (C3 * BZG) ;
*
SINON ;
*
* ---- en 2D pour une section a Theta constant
NORM_CP = (XCP*XCP + (YCP*YCP) + (ZCP*ZCP))**0.5 ;
ANG1 = ATG XCP YCP ;
*
* ---- Rotation de (90 + ANGPHI0) par rapport a l'axe Z
BX1 = -1. * BXG * (SIN ANGPHI0) + (BYG * (COS ANGPHI0)) ;
BY1 = -1. * BXG * (COS ANGPHI0) - (BYG * (SIN ANGPHI0)) ;
BZ1 = BZG ;
*
* ---- Rotation de -THETA0 par rapport a l'axe X
BX2 = BX1 ;
BY2 = BY1 * (COS THETA0) - (BZ1 * (SIN THETA0)) ;
BZ2 = BY1 * (SIN THETA0) + (BZ1 * (COS THETA0)) ;
*
* ---- Rotation de ANG1 par rapport a l'axe Z
BXM = BX2 * (COS ANG1) + (BY2 * (SIN ANG1)) ;
BYM = -1. * BX2 * (SIN ANG1) + (BY2 * (COS ANG1)) ;
BZM = BZ2 ;
*
FINSI ;
SI (DIM0 EGA 2) ;
FINSI ;
*
FINPROC BXM BYM BZM ;
**** @CBGTV
DEBPROC @CBGTV BX*CHPOINT BY*CHPOINT BZ*CHPOINT THETA*CHPOINT PHI*CHPOINT ;
*
**********************************************************************
* Procedure de changement de base pour un vecteur B de coordonnees *
* BX, BY, BZ dans la base globale aux coordonnees pseudo-toroidales *
* BRHO, BTHETA, BPHI. Alain MOAL (mars 1996) *
**********************************************************************
*
*---- Rotation de Phi autour de "l'axe Theta"
BRHO1 = (COS PHI) * BX + ((SIN PHI) * BY) ;
BTHETA1 = BZ ;
BPHI1 = -1.*(SIN PHI) * BX + ((COS PHI) * BY) ;
*
*---- Rotation de Theta autour de "l'axe Phi"
BRHO = (COS THETA) * BRHO1 + ((SIN THETA) * BTHETA1) ;
BTHETA = -1.*(SIN THETA) * BRHO1 + ((COS THETA) * BTHETA1) ;
BPHI = BPHI1 ;
*
FINPROC BRHO BTHETA BPHI ;
**** @CBLMV
DEBPROC @CBLMV VXL*CHPOINT VYL*CHPOINT VZL*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Version amelioree de l'ancien @CBLMV rebaptise @ACBLM *
* 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 est dirige du point de tangence au plasma vers le centre *
* du plasma. En 3D, L'axe X du repere local est dans la direction *
* toroidale. *
* en 2D cas PHICONS l'axe Z du repere local est l'axe toroidal *
* en 2D cas THECONS l'axe x du repere local est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
********************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
VXL1 = VZL ;
VYL1 = VYL ;
VZL1 = VXL * (-1.);
* ---- rotation
VXM = VXL1 * (COS ANG1) + (VYL1 * (-1.) * (SIN ANG1));
VYM = VXL1 * (SIN ANG1) + (VYL1 * (COS ANG1)) ;
VZM = VZL1 ;
FINSI ;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
VXM = VXL * (COS ANG1) + (VYL * (-1.) * (SIN ANG1)) ;
VYM = VXL * (SIN ANG1) + (VYL * (COS ANG1)) ;
VZM = VZL ;
FINSI;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
VXM = (A1 * VXL) + (A2 * VYL) + (A3 * VZL) ;
VYM = (B1 * VXL) + (B2 * VYL) + (B3 * VZL) ;
VZM = (C1 * VXL) + (C2 * VYL) + (C3 * VZL) ;
*
FINSI ;
FINPROC VXM VYM VZM ;
**** @CBMGV
DEBPROC @CBMGV BXM*CHPOINT BYM*CHPOINT BZM*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Procedure de changement de base. On passe de la base cartesienne *
* quelconque du maillage a 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. *
* 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.<PLAN ;
SI (EGA IPLAN 'PHICONS') ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
SI (EGA IPLAN 'THECONS') ;
THETA0 = TAB1.<THETA0 ;
CP = TAB1.CENTRE_PLASMA ;
RP = TAB1.<RP ;
HP = TAB1.<HP ;
FINSI ;
SINON ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
ANGPHI0 = TAB1.<ANG_PHI0 ;
*------------------------------------
*
SI (DIM0 EGA 2) ;
FINSI ;
*
SI (((DIM0 EGA 2) ET (EGA IPLAN 'PHICONS')) OU (DIM0 EGA 3)) ;
* ---- en 3D ou en 2D pour la section Phi constant
*
* ---- Calcul des coordonnees du point P0, projection du point P1 de
* ---- l'objet dans le plan orthogonal a l'axe du tore en CT0.
A = X1 - X0 ;
B = Y1 - Y0 ;
C = Z1 - Z0 ;
*
SI (A EGA 0.) ;
SI (B EGA 0.) ;
XP0 = XP1 ;
YP0 = YP1 ;
ZP0 = Z0 ;
FINSI ;
SI (C EGA 0.) ;
XP0 = XP1 ;
YP0 = Y0 ;
ZP0 = ZP1 ;
FINSI ;
SI ((B NEG 0.) ET (C NEG 0.)) ;
XP0 = XP1 ;
YP0 = (-1.*B*C*ZP1 + (C*C*YP1) + (B*B*Y0) + (B*C*Z0)) /(B*B + (C*C)) ;
ZP0 = (B*ZP1 - (C*YP1) + (C*(Y0+Z0)))/(B+C);
FINSI ;
SINON ;
AUX1 = A / (A*A + (B*B) + (C*C)) ;
AUX2 = (B*B + (C*C)) / A ;
XP0 = AUX1 * (A*X0 + (B*Y0) + (C*Z0) + (AUX2*XP1) - (B*YP1) - (C*ZP1)) ;
YP0 = B * (XP0 - XP1) / A + YP1 ;
ZP0 = C * (XP0 - XP1) / A + ZP1 ;
FINSI ;
*
P0 = XP0 YP0 ZP0 ;
*
* ---- Rotation de la ligne (CT0,P0) pour l'aligner sur l'axe X
* ---- du repere global
LIG0 = CT0 D 1 P0 ;
LIG1
= LIG0
TOUR (-1.
*ANGPHI0
) CT0 CT1
;*
* ---- Calcul des 3 vecteurs unitaires du repere global
VEC1
= DIR1
/ (NORM DIR1
) ; VEC3
= DIR3
/ (NORM DIR3
) ;*
* ---- Changement de repere
*
BXG = (A1 * BXM) + (B1 * BYM) + (C1 * BZM) ;
BYG = (A2 * BXM) + (B2 * BYM) + (C2 * BZM) ;
BZG = (A3 * BXM) + (B3 * BYM) + (C3 * BZM) ;
*
SINON ;
* ---- en 2D pour une section a Theta constant
*
NORM_CP = (XCP*XCP + (YCP*YCP) + (ZCP*ZCP))**0.5 ;
ANG1 = ATG XCP YCP ;
*
* ---- Rotation de - ANG1 par rapport a l'axe Z
BX1 = BXM * (COS ANG1) - (BYM * (SIN ANG1)) ;
BY1 = BXM * (SIN ANG1) + (BYM * (COS ANG1)) ;
BZ1 = BZM ;
*
* ---- Rotation de THETA0 par rapport a l'axe X
BX2 = BX1 ;
BY2 = BY1 * (COS THETA0) + (BZ1 * (SIN THETA0)) ;
BZ2 = -1. * BY1 * (SIN THETA0) + (BZ1 * (COS THETA0)) ;
*
* ---- Rotation de -(90 + ANGPHI0) par rapport a l'axe Z
BXG = -1. * BX2 * (SIN ANGPHI0) - (BY2 * (COS ANGPHI0)) ;
BYG = BX2 * (COS ANGPHI0) - (BY2 * (SIN ANGPHI0)) ;
BZG = BZ2 ;
*
FINSI;
*
SI (DIM0 EGA 2) ;
FINSI ;
*
FINPROC BXG BYG BZG ;
**** @CBMLV
DEBPROC @CBMLV VXM*CHPOINT VYM*CHPOINT VZM*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Version amelioree de l'ancien @CBMLV rebaptise @ACBML *
* Procedure de changement de base. On passe de la base cartesienne *
* du maillage a la base cartesienne locale de l'objet modelise. *
* l'axe Y final est dirige du point de tangence vers le centre du *
* plasma. En 3D l'axe x du repere local est donne par la direction *
* toroidale *
* en 2D cas PHICONS l'axe Z initial est l'axe toroidal *
* en 2D cas THECONS l'axe x initial est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
********************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
* ---- rotation pour aligner l'axe Y avec VECT0
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
VXL1 = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYL1 = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZL1 = VZM ;
* ---- Coupe 2D a Phi constant
VXL = VZL1 ;
VYL = VYL1 ;
VZL = VXL1 * (-1.);
FINSI ;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
VXL = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYL = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZL = VZM ;
FINSI ;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
VXL = (A1 * VXM) + (B1 * VYM) + (C1 * VZM) ;
VYL = (A2 * VXM) + (B2 * VYM) + (C2 * VZM) ;
VZL = (A3 * VXM) + (B3 * VYM) + (C3 * VZM) ;
*
FINSI ;
FINPROC VXL VYL VZL ;
**** @CBTGV
DEBPROC @CBTGV BRHO*CHPOINT BTHETA*CHPOINT BPHI*CHPOINT THETA*CHPOINT PHI*CHPOINT ;
*
*********************************************************************
* Procedure de changement de base pour un vecteur B de coordonnees *
* BRHO, BPHI, BTHETA dans une base pseudo-toroidale aux coordonnees *
* cartesiennes BX, BY, BZ dans la base globale de la machine. *
* Alain MOAL (decembre 1995) *
*********************************************************************
*
*---- Rotation de - Theta autour de "l'axe Phi"
BRHO1 = (COS THETA) * BRHO - ((SIN THETA) * BTHETA) ;
BTHETA1 = (SIN THETA) * BRHO + ((COS THETA) * BTHETA) ;
BPHI1 = BPHI ;
*
*---- Rotation de - Phi autour de "l'axe Theta"
BRHO2 = (COS PHI) * BRHO1 - ((SIN PHI) * BPHI1) ;
BTHETA2 = BTHETA1 ;
BPHI2 = (SIN PHI) * BRHO1 + ((COS PHI) * BPHI1) ;
*
BX = BRHO2 ;
BY = BPHI2 ;
BZ = BTHETA2 ;
*
FINPROC BX BY BZ ;
**** @CBTLV
DEBPROC @CBTLV BRHO*CHPOINT BTHETA*CHPOINT BPHI*CHPOINT THETA*CHPOINT PHI*CHPOINT TAB1*TABLE ;
*
*********************************************************************
* Procedure de changement de base pour un vecteur B de coordonnees *
* BRHO, BPHI, BTHETA dans une base pseudo-toroidale aux coordonnees *
* cartesiennes BX, BY, BZ dans la base de l'objet. *
* Alain MOAL (juin 1995) *
*********************************************************************
*
*--------------- VARIABLES D'ENTREE :
THETA0 = TAB1.<THETA0 ;
*------------------------------------
*
CT = COS THETA ;
ST = SIN THETA ;
CT0 = COS THETA0 ;
ST0 = SIN THETA0 ;
MST0 = ST0 * -1. ;
CPHI = COS PHI ;
SPHI = SIN PHI ;
MSPHI= SPHI * -1. ;
*
*---- 1) rotation de - Theta autour de "l'axe Phi"
BRHO1 = (CT * BRHO) - (ST * BTHETA) ;
BTHETA1 = (ST * BRHO) + (CT * BTHETA) ;
BPHI1 = BPHI ;
*
*---- 2) rotation de - Phi autour de "l'axe Theta"
BRHO2 = (CPHI * BRHO1) + (MSPHI * BPHI1) ;
BTHETA2 = BTHETA1 ;
BPHI2 = (SPHI * BRHO1) + (CPHI * BPHI1) ;
*
*---- 3) rotation de Theta0 autour de "l'axe Phi"
BRHO3 = (BRHO2 * CT0) + (BTHETA2 * ST0) ;
BTHETA3 = (BRHO2 * MST0) + (BTHETA2 * CT0) ;
BPHI3 = BPHI2 ;
*
*---- 4) composantes dans le repere cartesien
BX = BPHI3 ;
BY = BRHO3 * -1. ;
BZ = BTHETA3 ;
*
FINPROC BX BY BZ;
**** PROP_PHY
DEBPROC PROP_PHY TAB_1*TABLE ;
******************************************************************************
***** CELATA94 *****
******************************************************************************
* CALCUL DU FLUX CRITIQUE SUIVANT LA CORRELATION DE CELATA 94
*_____________________________________________________________________________
*
*
*
*-----------------------------------------------------
* Calcul des proprietes de l eau a la temperature de
* saturation correspondant a la pression de sortie
*-----------------------------------------------------
*
@TABEAU TAB_1 ;
POUT = TAB_1.'P_LOCAL' ;
TAB_1.TTSAT = @IPOE POUT TAB_1.EPTSAT ;
TSAT = TAB_1.TTSAT ;
TAB_1.CCPLOUT = @IPOE TSAT TAB_1.ETCPF ;
TAB_1.RRHOL = @IPOE TSAT TAB_1.ETRHOF ;
TAB_1.RRHOV = @IPOE TSAT TAB_1.ETRHOG ;
TAB_1.LLLV = @IPOE TSAT TAB_1.ETHFG ;
TAB_1.LLAM = @IPOE TSAT TAB_1.ETLLA ;
TAB_1.SSIGM = @IPOE TSAT TAB_1.ETSIGM ;
TAB_1.MMUL = @IPOE TSAT TAB_1.ETNNU ;
TAB_1.PPRAL = @IPOE TSAT TAB_1.ETPRAF ;
*
*-----------------------------------------------------
* Calcul des proprietes de l eau a la temperature d entree
*-----------------------------------------------------
*
TIN = TAB_1.'T_LOCAL' ;
TAB_1.CCPLIN = @IPOE TIN TAB_1.ETCPF ;
TAB_1.RRHOLIN = @IPOE TIN TAB_1.ETRHOF ;
*
*-----------------------------------------------------
* Calcul de quantites utiles
*-----------------------------------------------------
*
PI = 3.1415926 ;
D = TAB_1.D_MAQUETTE ;
SI ( NON ( EXISTE TAB_1 T_TAPE ) ) ;
TAB_1 . T_TAPE = 0. ;
FINSI ;
TTAPE = TAB_1 . T_TAPE ;
SI ( NON ( EXISTE TAB_1 TWIST_RATIO ) ) ;
TAB_1 . TWIST_RATIO = 0. ;
FINSI ;
YTWIST = TAB_1 . TWIST_RATIO ;
VIN = TAB_1.'V_LOCAL' ;
*
*-----------------------------------------------------
* Prise en compte de l insert torsade
*-----------------------------------------------------
*
SI ( YTWIST EGA 0. ) ;
TAB_1 . DDH = D ;
FACV = 1. ;
VP = VIN ;
FINSI ;
SI ( YTWIST > 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 ;
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 ;
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
*-----------------------------------------------------
*
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.) ;
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) ;
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_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
)) ; 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'.
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
*
*---- 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;
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
*-----------------------------------------
*
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 <CFPFLU *
**************************************************************
*
MESS '
---------------------------------> calling @CFPFLU'
; *
*---- Valeurs par defaut, verification des indices de la table
@VDEFJET TAB1 ;
*
*--------------- VARIABLES D'ENTREE :
MAIL0 = TAB1.<MAILLAGE ;
MMAIL0 = TAB1.MODELF ;
CONT0 = TAB1.LFLUX_EXTE ;
IMESS = TAB1.<IMESS ;
ITRAC = TAB1.<ITRAC ;
ITYPDEP = TAB1.<TYPE_DEPOT ;
SI (NON (EXISTE TAB1 <NXM)) ;
ICALNORM = VRAI ;
SINON ;
ICALNORM = FAUX ;
NXM = TAB1.<NXM ;
NYM = TAB1.<NYM ;
NZM = TAB1.<NZM ;
FINSI ;
SI ((VALEUR
DIME) EGA 3) ; OEIL0 = TAB1.VIEW_P ;
SINON ;
CONTDES0 = TAB1.LFLUX_EXTE_DESS ;
FINSI ;
ICALINCI = TAB1.<CALCUL_INCIDENCE ;
PUISTOT0 = TAB1.<PUISSANCE_TOTALE ;
*------------------------------------
*
*TAB1.<CFPFLU = VRAI ;
*
*---- lecture de la carte de champ magnetique dans un fichier
@LECTB TAB1 ;
*--- trace de dpsi sur le maillage
TAB1.<MAILLAGE_B = CONT0 ;
CHDPSI = @DPSI TAB1 ;
TITRE '@CFPFLU : DPSI ON THE MESH' ;
LISOV0
= PROG -0.66 -0.33 0.
1.
2.
3.
;TRAC LISOV0 CHDPSI CONT0
; *
*---- lecture du flux normalise sur une ligne dans un fichier
@LECTF TAB1 ;
TITRE '@CFPFLU : MAGNETIC DOMAIN, AREA FOR NORMALIZED
FLUX AND STUDIED OBJECT'
;*TRAC (TAB1.<GRILLE_B ET TAB1.<MAILLAGE_FN ET MAIL0) ;
*
*---- calcul du champ B sur la ligne de reference pour
*---- verification des angles d'incidences
SI (ICALINCI) ;
@VERANG TAB1 ;
FINSI ;
TAB1.<MAILLAGE_B = TAB1.<MAILLAGE_FN ;
BR BZ BPHI = @MAGNB TAB1 ;
*
*---- calcul du champ magnetique sur le maillage
TAB1.<MAILLAGE_B = MAIL0 ;
BR BZ BPHI = @MAGNB TAB1 ;
PHI
= ATG (COOR 2 MAIL0
) (COOR 1 MAIL0
) ;*AM*11/09/01*BXM = BR * (COS PHI) + (BPHI * (SIN PHI));
*AM*11/09/01*BYM = BR * (SIN PHI) - (BPHI * (COS PHI));
BXM = BR * (COS PHI) - (BPHI * (SIN PHI));
BYM = BR * (SIN PHI) + (BPHI * (COS PHI));
BZM = BZ ;
MENAGE ;
*
*---- calcul des normales a la surface calculees
*---- dans le repere du maillage
SI (ICALNORM) ;
NXM NYM NZM = @VNORM3D MAIL0 CONT0 ;
TAB1.<NXM = NXM ;
TAB1.<NYM = NYM ;
TAB1.<NZM = NZM ;
FINSI;
MENAGE ;
*
*---- calcul du produit scalaire et de l'angle d'incidence
B_NORM = ((BXM*BXM) + (BYM*BYM) + (BZM*BZM))**0.5 ;
VBVN = (ABS ((BXM*NXM) + (BYM*NYM) + (BZM*NZM))) / B_NORM;
ANGINCI = ATG ((1.-(VBVN**2))**0.5) VBVN ;
*
*---- vecteur champ magnetique et vecteur normal dans le repere
*---- du maillage en vue de la visualisation
VB1 = @CVECT BXM BYM BZM CONT0 VERT;
VN1 = @CVECT NXM NYM NZM CONT0 BLEU;
*
*---- dans le plan xy du repere du maillage
BETA2DXY = ATG (BYM*-1.) (BXM*-1.) ;
*---- dans le plan xz du repere du maillage
BETA2DXZ = ATG (BZM*-1.) (BXM*-1.) ;
*
*---- calcul de la densite de puissance recue par chaque point
VAR1 = @FLNORM TAB1 ;
*
*---- profil du flux pour une puissance de 1 MW deposee sur l'objet
*---- (flux parallele ou perpendiculaire)
SI (ITYPDEP) ;
PROFIL0 = VAR1 * VBVN ;
SINON ;
PROFIL0 = VAR1 * ((1. - (VBVN*VBVN)) ** .5) ;
FINSI ;
*
*---- integration du flux sur la surface
PROCONT0
= NOMC SCAL
(FLUX MMAIL0 PROFIL0
) ;*
*---- calcul du flux moyen
*
*---- flux reel deposee pour une puissance donnee en MW
PROFIL1 = PROFIL0 * PUISTOT0 ;
*
*---- traces en 3D
SI (((VALEUR
DIME) EGA 3) ET ITRAC
) ; SI (EGA (VALEUR
ELEM) 'CUB8'
) ; ARET1 = ARETE CONT0 ;
SINON ;
ARET1 = ARETE CONT0 40. ;
FINSI ;
TITRE '@CFPFLU : MAGNETIC FIELD AND NORMAL VECTOR' ;
TRACE CACH OEIL0 (VB1 ET VN1) MAIL0 ;
TITRE '@CFPFLU : COSINUS OF THE ANGLE BETWEEN b AND n' ;
TRACE 20 CACH OEIL0 VBVN CONT0 ARET1;
TITRE '@CFPFLU : 90 - ANGLE BETWEEN VECTORS B AND SURFACE (DEGREE)';
TRACE 20 CACH OEIL0 (90. - ANGINCI) CONT0 ARET1;
TITRE '@CFPFLU :
NORM OF THE MAGNETIC FIELD
(TESLA
)'
; TRACE 20 CACH OEIL0 B_NORM CONT0 ARET1 ;
* TITRE '@CFPFLU : flux0 * exp (- delta / lamdaq)' ;
* TRACE 20 CACH OEIL0 VAR1 CONT0 ARET1;
TITRE '@CFPFLU : INCIDENT HEAT
FLUX FOR 'PUISTOT0' MW'
;* TRACE 2 0CACH OEIL0 PROFIL0 CONT0 ARET1 ;
TRACE 20 CACH OEIL0 PROFIL1 CONT0 ARET1 ;
FINSI ;
SI (IMESS >EG 2) ;
MESS '
>>>> @CFPFLU : PROFIL0 '
; MESS '
>>>> @CFPFLU : PROFIL1 '
; MESS '
>>>> @CFPFLU : ANGINCI '
; FINSI ;
SI (IMESS >EG 3) ;
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.<ANGINCI = ANGINCI ;
TAB1.<VBVN = VBVN ;
*TAB1.<CFPFLU = FAUX ;
*-------------------------------------
MESS '
---------------------------------> 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.<RP ;
HP = TAB1.<HP ;
RHO0 = TAB1.<RHO0 ;
THETA0 = TAB1.<THETA0 ;
ANGPHI0 = TAB1.<ANGPHI0 ;
RR = TAB1.<RR ;
LAMB = TAB1.<LAMB ;
IPLASMA = TAB1.<IPLASMA ;
COEFA = TAB1.<COEFA ;
COEFB = TAB1.<COEFB ;
COEFC = TAB1.<COEFC ;
EPS = TAB1.<EPS ;
NBOB = TAB1.<NBOB ;
NSPI = TAB1.<NSPI ;
INTENS = TAB1.<INTENS ;
IMESS = TAB1.<IMESS ;
ICHAMP = TAB1.<MODEL_CHAMP ;
*------------------------------------
*
PI = 3.141592 ;
MU0 = PI * 4.E-7 ;
*
*---- Coordonnees de chaque point dans le repere du plasma
RHOP THETAP PHIP = @CRGTC XG1 YG1 ZG1 RP HP ;
*
*---- Masque delimitant le domaine de validite du modele de ripple
*attention domaine de validite etendu de 110 a 180 par
*E.COSTA/E.TSITRONE le 02/06/97
*MASK0 = (ABS THETAP) MASQUE INFERIEUR 110. ;
MASK0 = (ABS THETAP) MASQUE INFERIEUR 181. ;
*
*SI (NON ISHIFT) ;
* LAMB = -1. ;
*FINSI ;
*
*---- Calcul dans le repere du plasma des composantes du champ
*---- poloidal induit par le courant circulant dans le plasma
AUX0 = -1. * MU0 * IPLASMA / (2. * PI) ;
*
SI (EGA ICHAMP 'SEIGNEUR') ;
BPOL_RHO = (RHOP ** -2) * (RHO0**2) - 1. ;
BPOL_RHO = BPOL_RHO * (LAMB + 0.5) + (LOG (RHOP / RHO0)) ;
BPOL_RHO = BPOL_RHO * (SIN THETAP) * AUX0 / (2. * RP) ;
*
BPOL_THE = ((RHOP ** -2) * (RHO0**2)) + 1. ;
BPOL_THE = BPOL_THE * (LAMB + 0.5) - 1. + (LOG (RHOP / RHO0));
BPOL_THE = BPOL_THE * RHOP * (COS THETAP) / (2. * RP) + 1. ;
BPOL_THE = BPOL_THE * (RHOP ** -1) * AUX0 ;
FINSI ;
*
SI (EGA ICHAMP 'SHAFRANOV') ;
* ---- cette formulation a ma preference, les 2 autres semblent
* douteuses (A.MOAL)
BPOL_RHO = ((RHOP ** -2) * (RHO0**2) - 1.) * -1. ;
BPOL_RHO = BPOL_RHO * (LAMB + 0.5) + (LOG (RHOP / RHO0)) ;
BPOL_RHO = BPOL_RHO * (SIN THETAP) * AUX0 / (2. * RP) ;
*
BPOL_THE = ((RHOP ** -2) * (RHO0**2)) + 1. ;
BPOL_THE = BPOL_THE * (LAMB + 0.5) - 1. + (LOG (RHOP / RHO0));
BPOL_THE = BPOL_THE * RHOP * (COS THETAP) / (2. * RP) + 1. ;
BPOL_THE = BPOL_THE * (RHOP ** -1) * AUX0 ;
FINSI ;
*
SI (EGA ICHAMP 'ARTSIMOVICH') ;
BPOL_RHO = ((RHOP ** -2) * (RHO0**2) - 1.) * -1. ;
BPOL_RHO = BPOL_RHO * (LAMB + 0.5) + (LOG (RHOP / RHO0)) ;
BPOL_RHO = BPOL_RHO * (SIN THETAP) * AUX0 / (2. * RP) ;
*
BPOL_THE = ((RHOP ** -2) * (RHO0**2)) + 1. ;
BPOL_THE = BPOL_THE * (LAMB + 0.5) - 1. + (LOG (RHOP / RHO0));
BPOL_THE = BPOL_THE * (COS THETAP) / 2. + 1. ;
BPOL_THE = BPOL_THE * AUX0 / RP ;
FINSI ;
*
SI (NON ISHIFT) ;
BPOL_THE = ((RHOP * 2. * PI / (MU0 * IPLASMA))**(-1))*(-1.) ;
BPOL_RHO = BPOL_THE * 0. ;
FINSI ;
*
BPOL_PHI = RHOP * 0. ;
*
*---- Passage dans la base cartesienne de la machine
BXPOL BYPOL BZPOL = @CBTGV BPOL_RHO BPOL_THE BPOL_PHI THETAP PHIP ;
*
*---- Coordonnees de chaque point dans le "repere du ripple"
RHOR THETAR PHIR = @CRGTC XG1 YG1 ZG1 RR 0. ;
*
SI IRIPPLE ;
* ---- Calcul dans le repere adapte au calcul du ripple du champ
* ---- cree par les bobines toroidales
*
* ---- 1) calcul de la coordonnee radiale dans le plan meridien Phi=0
* ---- de la ligne de champ consideree par une methode de point fixe
RHO_OLD = RHOR ;
KAUX = (EXP(THETAR**2 * -1. * COEFC)) * ((COS((PHIR + ANGPHI0) * NBOB)) * -1. + 1.) * COEFA ;
I = 0 ;
IMAX = 50 ;
REPETER BOUCLE IMAX ;
I = I + 1;
RHO_NEW = RHOR + (KAUX * (EXP(RHO_OLD * COEFB))) ;
* MESS ' ITERATIONS NUMBER : ' I ;
* MESS (maxi RHO_NEW ) ;
SI ((MAXI (ABS((RHO_NEW
- RHO_OLD
) / RHO_NEW
))) <
;EG EPS
) ; * MESS ' ITERATIONS NUMBER : ' I ;
QUITTER BOUCLE ;
FINSI ;
RHO_OLD = RHO_NEW ;
FIN BOUCLE ;
SI (I >EG IMAX) ;
MESS '
>>> @CHAMB : NO CONVERGENCE OF THE ITERATIVE METHOD !'
; MESS '
>>> PROPOSED SOLUTIONS : '
; MESS '
>>> 1) INCREASE THE CONVERGENCE CRITERIUM
(TAB1.
<EPS
) '
; MESS '
>>> 2) CHECK YOU ARE WITHIN MODEL VALIDITY DOMAIN '
; MESS '
>>> 3) ASK FOR THE PROCEDURE CONCEPTOR '
; *EC* ERRE ' >>> STOP IN @CHAMB';
ERRE '
>>> STOP IN @CHAMB'
; FINSI ;
RHOMER = RHO_NEW ;
*
* ---- 2) composantes du champ (modele Hertout-Seigneur)
DRHOMER = (EXP(RHOMER * COEFB)) * (EXP(THETAR**2 * COEFC * -1.)) * COEFA ;
FINSI ;
RAUX1 = RHOR * (COS THETAR) + RR ;
*
*---- champ toroidal moyen sur le cercle de rayon Rr
BPHI0 = -1. * MU0 * INTENS * NBOB * NSPI / (2. * PI * RR) ;
*
*---- champ toroidal moyen sur le cercle de rayon
* (Rr + Rhor * cos Thetar)
BTPHI0 = (RAUX1 ** -1.) * BPHI0 * RR ;
*
SI IRIPPLE ;
*EC mai 1997* BTOR_PHI = RHOR / (RAUX1*RHOR) + COEFB ;
BTOR_PHI = RR / (RAUX1*RHOR) + COEFB ;
*AM* BTOR_PHI = ((RHOR * RAUX1)**-1) * (RAUX1 * -1. + (2.*RR)) + COEFB;
BTOR_PHI = BTOR_PHI * -1. * DRHOMER * (COS((PHIR + ANGPHI0) * NBOB)) + 1. ;
BTOR_PHI = MASK0 * BTOR_PHI * BTPHI0 + ((1.-MASK0) * BTPHI0);
*
BTOR_RHO = MASK0 * (RAUX1 ** -1.) * DRHOMER * BTPHI0 * (SIN((PHIR + ANGPHI0) * NBOB)) * NBOB * (-1.) ;
*
BTOR_THE = RHOR * 0. ;
*
RHOMER = MASK0 * RHOMER + ((1.-MASK0) * RHOR) ;
SINON ;
BTOR_PHI = BTPHI0 ;
BTOR_RHO = RHOR * 0. ;
BTOR_THE = RHOR * 0. ;
RHOMER = RHOR ;
FINSI ;
*
*---- Passage dans la base cartesienne de la machine
BXTOR BYTOR BZTOR = @CBTGV BTOR_RHO BTOR_THE BTOR_PHI THETAR PHIR ;
*
*---- Normes du champ poloidal et du champ toroidal
N_BPOL = (BXPOL*BXPOL + (BYPOL*BYPOL) + (BZPOL*BZPOL))**0.5 ;
N_BTOR = (BXTOR*BXTOR + (BYTOR*BYTOR) + (BZTOR*BZTOR))**0.5 ;
*
*---- Facteur de securite
FSECU = (RHOP / (RHOP*(COS THETAP)+RP)) * (N_BTOR / N_BPOL) ;
*
*---- Champ total
SI (EXISTE TAB1 MOAL1) ;
BXPOL = BXPOL*0.;
BYPOL = BYPOL*0.;
BZPOL = BZPOL*0.;
FINSI ;
SI (EXISTE TAB1 MOAL2) ;
BXTOR = BXTOR*0.;
BYTOR = BYTOR*0.;
BZTOR = BZTOR*0.;
FINSI ;
BX = BXPOL + BXTOR ;
BY = BYPOL + BYTOR ;
BZ = BZPOL + BZTOR ;
*
*---- Messages de verification du calcul
SI (IMESS >EG 2) ;
MESS 'max and min of the BPOL components in RP'
; MESS 'max and min of the BTOR components in RR'
; MESS 'max and min of the BPOL components'
; MESS 'max and min of the BTOR components'
; MESS 'max and min of Rho, Theta, Phi in RP'
; MESS 'max and min of X, Y, Z '
; FINSI ;
SI (IMESS >EG 3) ;
MESS '
>>>> @CHAMB : BPOL_RHO in RP '
; LIST BPOL_RHO
; MESS '
>>>> @CHAMB : BPOL_THE in RP '
; LIST BPOL_THE
; MESS '
>>>> @CHAMB : BPOL_PHI in RP '
; LIST BPOL_PHI
; MESS '
>>>> @CHAMB : BTOR_RHO in RR '
; LIST BTOR_RHO
; MESS '
>>>> @CHAMB : BTOR_THE in RR '
; LIST BTOR_THE
; MESS '
>>>> @CHAMB : BTOR_PHI in RR '
; LIST BTOR_PHI
; MESS '
>>>> @CHAMB : BXPOL '
; LIST BXPOL
; MESS '
>>>> @CHAMB : BYPOL '
; LIST BYPOL
; MESS '
>>>> @CHAMB : BZPOL '
; LIST BZPOL
; MESS '
>>>> @CHAMB : BXTOR '
; LIST BXTOR
; MESS '
>>>> @CHAMB : BYTOR '
; LIST BYTOR
; MESS '
>>>> @CHAMB : BZTOR '
; LIST BZTOR
; MESS '
>>>> @CHAMB : BTOR_THE in RR '
; LIST BTOR_THE
; MESS '
>>>> @CHAMB : BTOR_PHI in RR '
; LIST BTOR_PHI
; MESS '
>>>> @CHAMB : RHO in RP '
; LIST RHOP
; MESS '
>>>> @CHAMB : THETA in RP '
; LIST THETAP
; MESS '
>>>> @CHAMB : PHI in RP '
; LIST PHIP
; MESS '
>>>> @CHAMB : RHO in RR '
; LIST RHOR
; MESS '
>>>> @CHAMB : THETA in RR '
; LIST THETAR
; MESS '
>>>> @CHAMB : PHI in RR '
; LIST PHIR
; MESS '
>>>> @CHAMB : RHOMER '
; LIST RHOMER
; MESS '
>>>> @CHAMB : BPHI0 '
; LIST BPHI0
; FINSI ;
*
*MESS '---------------------------------> exiting @CHAMB';
*
*--------------- VARIABLES DE SORTIE :
TAB1.<RHOMER = RHOMER ;
TAB1.<BXPOL = BXPOL ;
TAB1.<BYPOL = BYPOL ;
TAB1.<BZPOL = BZPOL ;
TAB1.<BXTOR = BXTOR ;
TAB1.<BYTOR = BYTOR ;
TAB1.<BZTOR = BZTOR ;
*-------------------------------------
FINPROC BX BY BZ FSECU;
**** @CRLTC
DEBPROC @CRLTC TAB1*TABLE XM*CHPOINT YM*CHPOINT ZM*CHPOINT R*FLOTTANT ;
*
***************************************************************
* Procedure de changement de repere, on passe des *
* coordonnees cartesiennes dans le repere de local de l'objet *
* XM YM ZM repere defini par TAB1.<RHO0, TAB1.<THETA0 et *
* TAB1.<RP aux coordonnees pseudo-toroidales defini par un *
* grand rayon donne R . Alain MOAL (mai 1995) *
***************************************************************
*
*--------------- VARIABLES D'ENTREE :
RHO0 = TAB1.<RHO0 ;
THETA0 = TAB1.<THETA0 ;
RP = TAB1.<RP ;
*------------------------------------
*
CT0 = COS THETA0 ;
ST0 = SIN THETA0 ;
MST0 = ST0 * -1. ;
*
*---- 1) rotation d'angle THETA0 autour de l'axe X
X1 = XM ;
Y1 = (YM * CT0) + (ZM * ST0) ;
Z1 = (YM * MST0) + (ZM * CT0) ;
*
*---- 2) changement d'origine vers le centre du tore,
*---- rotation de 180 degres autour de l'axe Z2 pour
*---- retrouver le repere global puis calcul de PHI
X2 = X1 ;
Y2 = Y1 - (RHO0 * CT0 + RP) ;
Z2 = Z1 + (RHO0 * ST0) ;
*
X2 = X2 * -1. ;
Y2 = Y2 * -1. ;
PHI = ATG (X2 * -1.) Y2 ;
*
*---- 3) rotation d'angle PHI autour de l'axe Z2
CPHI = COS PHI ;
SPHI = SIN PHI ;
MSPHI = SPHI * -1. ;
X3 = (X2 * CPHI) + (Y2 * SPHI) ;
Y3 = (X2 * MSPHI) + (Y2 * CPHI) ;
Z3 = Z2 ;
*
*---- 4) changement d'origine vers le centre du nouveau repere
X4 = X3 ;
Y4 = Y3 - R ;
Z4 = Z3 ;
*
*---- calcul de RHO et THETA
RHO = ((Y4 * Y4) + (Z4 * Z4))**0.5 ;
THETA = ATG Z4 Y4 ;
*
MESS '
>>>> @CRLTC : max and min of the angle PHI'
; *
FINPROC RHO THETA PHI ;
**** @CRTLC
DEBPROC @CRTLC R*FLOTTANT RHO*CHPOINT THETA*CHPOINT PHI*CHPOINT TAB1*TABLE ;
*
***************************************************************
* Procedure de changement de repere, on passe des coordonnees *
* pseudo-toroidales centrees sur un grand rayon R aux *
* coordonnees cartesiennes dans le repere de la structure *
* modelisee. Alain MOAL (mai 1995) *
***************************************************************
*
*--------------- VARIABLES D'ENTREE :
RHO0 = TAB1.<RHO0 ;
THETA0 = TAB1.<THETA0 ;
RP = TAB1.<RP ;
*------------------------------------
*
CT0 = COS THETA0 ;
ST0 = SIN THETA0 ;
MST0= ST0 * -1. ;
CPHI = COS PHI ;
SPHI = SIN PHI ;
MSPHI = SPHI * -1. ;
*
X4 = RHO * 0. ;
Y4 = RHO * (COS THETA) ;
Z4 = RHO * (SIN THETA) ;
*
*---- 1) changement d'origine vers le centre du tore
X3 = X4 ;
Y3 = Y4 + R ;
Z3 = Z4 ;
*
*---- 2) rotation d'angle - PHI autour de l'axe Z3
* puis rotation de - 180 degres autour de l'axe Z2
X2 = (X3 * CPHI) + (Y3 * MSPHI) ;
Y2 = (X3 * SPHI) + (Y3 * CPHI) ;
Z2 = Z3 ;
*
X2 = X2 * -1. ;
Y2 = Y2 * -1. ;
*
*---- 3) changement d'origine vers le centre d'objet
X1 = X2 ;
Y1 = Y2 + RP + (RHO0 * CT0) ;
Z1 = Z2 - (RHO0 * ST0) ;
*
*---- 4) rotation d'angle - THETA0 autour de l'axe X1
XP = X1 ;
YP = (Y1 * CT0) + (Z1 * MST0) ;
ZP = (Y1 * ST0) + (Z1 * CT0) ;
*
FINPROC XP YP ZP ;
**** @CRTTC
DEBPROC @CRTTC R1*FLOTTANT RHO1*CHPOINT THETA1*CHPOINT PHI1*CHPOINT R2*FLOTTANT ;
*
***************************************************************
* Procedure de changement de repere. On passe d'un repere *
* pseudo-toroidal defini par son grand rayon R1 a un autre *
* repere pseudo-toroidal defini par son grand rayon R2. Ces *
* deux reperes ont la meme orientation toroidale: Phi1 = Phi2 *
* Alain MOAL (juin 1995) *
***************************************************************
*
RHO2 = RHO1**2 + ((R1 - R2)**2) ;
RHO2 = RHO2 + (RHO1*(R1 - R2)*(COS THETA1)*2.) ;
RHO2 = RHO2**0.5 ;
*
AUX1 = RHO1 * (SIN THETA1) ;
AUX2 = RHO1 * (COS THETA1) - R2 + R1 ;
THETA2 = ATG AUX1 AUX2 ;
*
PHI2 = PHI1 ;
*
FINPROC RHO2 THETA2 PHI2 ;
**** @CRLMC
DEBPROC @CRLMC XL*CHPOINT YL*CHPOINT ZL*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Version amelioree de l'ancien @CRLMC rebaptise @ACRLM *
* 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. En 3D, L'axe X du *
* repere local est dans la direction toroidale. *
* en 2D cas PHICONS l'axe Z du repere local est l'axe toroidal *
* en 2D cas THECONS l'axe x du repere local est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
*
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
XL = ZL ;
ZL = ZL * 0.;
* ---- rotation
XL1 = XL * (COS ANG1) + (YL * (-1.) * (SIN ANG1));
YL1 = XL * (SIN ANG1) + (YL * (COS ANG1));
FINSI;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
XL1 = XL * (COS ANG1) + (YL * (-1.) * (SIN ANG1));
YL1 = XL * (SIN ANG1) + (YL * (COS ANG1));
FINSI;
* ---- changement d'origine du repere
XM = XL1 + XPTG ;
YM = YL1 + YPTG ;
ZM = YL1 * 0. ;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
XM1 = (A1 * XL) + (A2 * YL) + (A3 * ZL) ;
YM1 = (B1 * XL) + (B2 * YL) + (B3 * ZL) ;
ZM1 = (C1 * XL) + (C2 * YL) + (C3 * ZL) ;
*
XM = XM1 + X0 ;
YM = YM1 + Y0 ;
ZM = ZM1 + Z0 ;
*
FINSI ;
FINPROC XM YM ZM ;
**** @CRMLC
DEBPROC @CRMLC XM*CHPOINT YM*CHPOINT ZM*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Version amelioree de l'ancien @CRMLC rebaptise @ACRML *
* Procedure de changement de repere. On passe du repere cartesien *
* du maillage au repere cartesien local de l'objet modelise. Le *
* point de tangence au plasma est l'origine de ce repere et l'axe *
* l'axe Y final est dirige vers le centre du plasma. *
* en 3D l'axe x du repere local est donne par la direction *
* toroidale *
* en 2D cas PHICONS l'axe Z initial est l'axe toroidal *
* en 2D cas THECONS l'axe x initial est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
*
* ---- changement d'origine du repere
XM1 = XM - XPTG ;
YM1 = YM - YPTG ;
* ---- rotation pour aligner l'axe Y avec VECT0
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
XL = XM1 * (COS ANG1) + (YM1 * (SIN ANG1));
YL = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1));
ZL = XM * 0. ;
*
ZL = XL ;
XL = XL * 0.;
FINSI;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
XL = XM1 * (COS ANG1) + (YM1 * (SIN ANG1));
YL = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1));
ZL = XM * 0. ;
FINSI ;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
XM1 = XM - X0 ;
YM1 = YM - Y0 ;
ZM1 = ZM - Z0 ;
*
XL = (A1 * XM1) + (B1 * YM1) + (C1 * ZM1) ;
YL = (A2 * XM1) + (B2 * YM1) + (C2 * ZM1) ;
ZL = (A3 * XM1) + (B3 * YM1) + (C3 * ZM1) ;
*
FINSI ;
FINPROC XL YL ZL ;
**** @CBTLV
DEBPROC @CBTLV BRHO*CHPOINT BTHETA*CHPOINT BPHI*CHPOINT THETA*CHPOINT PHI*CHPOINT TAB1*TABLE ;
*
*********************************************************************
* Procedure de changement de base pour un vecteur B de coordonnees *
* BRHO, BPHI, BTHETA dans une base pseudo-toroidale aux coordonnees *
* cartesiennes BX, BY, BZ dans la base de l'objet. *
* Alain MOAL (juin 1995) *
*********************************************************************
*
*--------------- VARIABLES D'ENTREE :
THETA0 = TAB1.<THETA0 ;
*------------------------------------
*
CT = COS THETA ;
ST = SIN THETA ;
CT0 = COS THETA0 ;
ST0 = SIN THETA0 ;
MST0 = ST0 * -1. ;
CPHI = COS PHI ;
SPHI = SIN PHI ;
MSPHI= SPHI * -1. ;
*
*---- 1) rotation de - Theta autour de "l'axe Phi"
BRHO1 = (CT * BRHO) - (ST * BTHETA) ;
BTHETA1 = (ST * BRHO) + (CT * BTHETA) ;
BPHI1 = BPHI ;
*
*---- 2) rotation de - Phi autour de "l'axe Theta"
BRHO2 = (CPHI * BRHO1) + (MSPHI * BPHI1) ;
BTHETA2 = BTHETA1 ;
BPHI2 = (SPHI * BRHO1) + (CPHI * BPHI1) ;
*
*---- 3) rotation de Theta0 autour de "l'axe Phi"
BRHO3 = (BRHO2 * CT0) + (BTHETA2 * ST0) ;
BTHETA3 = (BRHO2 * MST0) + (BTHETA2 * CT0) ;
BPHI3 = BPHI2 ;
*
*---- 4) composantes dans le repere cartesien
BX = BPHI3 ;
BY = BRHO3 * -1. ;
BZ = BTHETA3 ;
*
FINPROC BX BY BZ;
**** @CBLMV
DEBPROC @CBLMV VXL*CHPOINT VYL*CHPOINT VZL*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Version amelioree de l'ancien @CBLMV rebaptise @ACBLM *
* 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 est dirige du point de tangence au plasma vers le centre *
* du plasma. En 3D, L'axe X du repere local est dans la direction *
* toroidale. *
* en 2D cas PHICONS l'axe Z du repere local est l'axe toroidal *
* en 2D cas THECONS l'axe x du repere local est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
********************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
VXL1 = VZL ;
VYL1 = VYL ;
VZL1 = VXL * (-1.);
* ---- rotation
VXM = VXL1 * (COS ANG1) + (VYL1 * (-1.) * (SIN ANG1));
VYM = VXL1 * (SIN ANG1) + (VYL1 * (COS ANG1)) ;
VZM = VZL1 ;
FINSI ;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
VXM = VXL * (COS ANG1) + (VYL * (-1.) * (SIN ANG1)) ;
VYM = VXL * (SIN ANG1) + (VYL * (COS ANG1)) ;
VZM = VZL ;
FINSI;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
VXM = (A1 * VXL) + (A2 * VYL) + (A3 * VZL) ;
VYM = (B1 * VXL) + (B2 * VYL) + (B3 * VZL) ;
VZM = (C1 * VXL) + (C2 * VYL) + (C3 * VZL) ;
*
FINSI ;
FINPROC VXM VYM VZM ;
**** @CBMLV
DEBPROC @CBMLV VXM*CHPOINT VYM*CHPOINT VZM*CHPOINT TAB1*TABLE ;
*
********************************************************************
* Version amelioree de l'ancien @CBMLV rebaptise @ACBML *
* Procedure de changement de base. On passe de la base cartesienne *
* du maillage a la base cartesienne locale de l'objet modelise. *
* l'axe Y final est dirige du point de tangence vers le centre du *
* plasma. En 3D l'axe x du repere local est donne par la direction *
* toroidale *
* en 2D cas PHICONS l'axe Z initial est l'axe toroidal *
* en 2D cas THECONS l'axe x initial est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
********************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
* ---- rotation pour aligner l'axe Y avec VECT0
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
VXL1 = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYL1 = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZL1 = VZM ;
* ---- Coupe 2D a Phi constant
VXL = VZL1 ;
VYL = VYL1 ;
VZL = VXL1 * (-1.);
FINSI ;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
VXL = VXM * (COS ANG1) + (VYM * (SIN ANG1));
VYL = VXM * (-1.) * (SIN ANG1) + (VYM * (COS ANG1));
VZL = VZM ;
FINSI ;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
VXL = (A1 * VXM) + (B1 * VYM) + (C1 * VZM) ;
VYL = (A2 * VXM) + (B2 * VYM) + (C2 * VZM) ;
VZL = (A3 * VXM) + (B3 * VYM) + (C3 * VZM) ;
*
FINSI ;
FINPROC VXL VYL VZL ;
**** @CHAQT
'
DEBPROC' @CHAQT MOD_1
*MMODEL MCH_1
/MCHAML CHP_1
/CHPOINT MM_1
/MOT ;* modification raph MITTEAU le 22 fevrier 1994 pour
* que CHAQT ne fasse rien en 3D
MAI_1
= EXTR MOD_1 'MAIL'
; SI ( existe MM_1 ) ;
MM_11 = MM_1 ;
SINON ;
MM_11 = 'MECANIQUE ELASTIQUE ' ;
FINSI ;
SI ( existe MCH_1 ) ;
* M_21 = chan 'NOEUD' MOD_1 ( REDU MCH_1 MAI_1) ;
M_21
= chan 'NOEUD' MOD_1
( REDU MCH_1 MOD_1
) ; FINSI ;
SI ( existe CHP_1 ) ;
CHP_21
= (REDU CHP_1 MAI_1
) ; M_21
= chan CHAM CHP_21 MOD_1 'NOEUD'
; FINSI ;
SI ((NON ( existe CHP_1 )) ET (NON ( existe MCH_1))) ;
ERRE 'IL FAUT DONNER UN CHPOINT
OU UN MCHAML'
; FINSI ;
* MAI_2 = chan tri6 MAI_1 ;
* MESS 'nbre de Q8:' n_q8 'nbre de TRI6:' n_t6 ;
SI ( n_q8 > 0 ) ;
MAI_Q8
= MAI_1
ELEM QUA8
; SI ( n_t6 > 0 ) ;
MAI_T6
= MAI_1
ELEM TRI6
; MAI_2
= (chan tri6 MAI_Q8
) ET MAI_T6
; SINON ;
MAI_2
= chan tri6 MAI_Q8
; FINSI ;
* MOD_2 = MODE MAI_2 mecanique elastique ;
TT_1 = TEXTE MM_11 ;
MOD_2
= MODE MAI_2 TT_1
;* il faut utiliser diff pour ne faire le proi que sur les noeuds nouveaux
CHP_22
= @
ET CHP_21
( proi POI_NEW M_21
) ; SINON ;
MAI_2 = MAI_1 ;
CHP_22 = CHP_21 ;
MOD_2 = MOD_1 ;
FINSI ;
m_22
= chan cham CHP_22 MOD_2
;SINON;
m_22
= REDU MCH_1 MOD_1
; MOD_2 = MOD_1;
MAI_2 = MAI_1 ;
FINSI ;
'FINPROC' m_22 MOD_2 MAI_2 ;
*----------------------------------------------------------------------*
* *
* C H A Q T *
* --------- *
* DATE 93/05/07
* procedure CHAQT (DRFC - J. Schlosser)
* ------------------------------------------
*
* MCHPO2 MAIL2 = CHAQT3D MOD1 OBJET1 MAIL1
*
*
*
* Objet :
* _________
*
* Etant donne un objet de type MCHAML ou CHPOINT , OBJET1,
* defini sur un MMODEL massif,MOD1,compose de QUA8 et TRI6 (ou
* en 3D de CU20 PR15) et un sous ensemble MAIL1 du maillage MAITOT1
* correspondant a MOD1 ( en 3D par exemple
* l enveloppe) compose de QUA8 et TRI6. La procedure cree
* un CHPOINT defini sur un nouveau maillage compose exclusivement
* de TRI6 afin de pouvoir effectue un trace d isovaleur plus correct
* ( le QUA8 initial se trouve ainsi transforme en QUA9 avec un point
* milieu ce qui permet un decoupage en 8 triangles lineaires. Cela
* revient a approximer la variation quadratique dans l element par
* une variation bilineaire)
*
* *
* Commentaire
* _____________
*
*
* MOD1 : objet de type MODE (elements massifs)
*
* OBJET1 : objet de type MCHAML ou CHPOINT
*
* MAIL1 : objet de type MAILLAGE compose de TRI6 et de QUA8
*
* MCHPO2 : objet de type CHPOINT
*
* MAIL2 : objet de type MAILLAGE compose de TRI6
*
*
*
* *
* Remarque
* _____________
*
*
* la procedure utilise grosso modo
* MAIL2 = chan tri6 MAIL1 ;
* MCHPO2 =proi MAIL2 MCHPO1 ;
* ce shema brut est optimisee et la procedure ne
* fait la projection que sur les points nouveaux milieux des QUA8
* ( malheureusement PROI ne calcule pas dans ce cas les bonnnes valeurs)
*
* Attention on voit que l on passe par l intermediaire d un CHPOINT
* les valeurs vont se trouver moyennees aux interfaces des materiaux
* si vous le souhaitez, procedez materiau par materiau !
* l' OBJET1 est REDUIT a MOD_1 a l entree de la procedure
*----------------------------------------------------------------------*
*123456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
'DEBPROC' CHAQT3D MOD_1*MMODEL MCH_1/MCHAML CHP_1/CHPOINT MAI_1*MAILLAGE ;
MAITOT1
= EXTR MOD_1 'MAIL'
; SI ( existe MCH_1 ) ;
M_21
= REDU MCH_1 MOD_1
; M_21
= chan 'NOEUD' MOD_1 M_21
; CHP_20
= REDU CHP_21 MAI_1
; FINSI ;
SI ( existe CHP_1 ) ;
CHP_20
= REDU CHP_1 MAI_1
; CHP_21
= REDU CHP_1 MAITOT1
; M_21
= chan CHAM CHP_21 MOD_1 'NOEUD'
;* M_21 = chan CHAM CHP_21 MOD_1 'STRESSES' ;
FINSI ;
SI ((NON ( existe CHP_1 )) ET (NON ( existe MCH_1))) ;
ERRE 'IL FAUT DONNER UN CHPOINT
OU UN MCHAML'
; FINSI ;
*
MESS 'nbre de Q8:' n_q8 'nbre de TRI6:' n_t6
; SI ( n_q8 > 0 ) ;
MAI_Q8
= MAI_1
ELEM QUA8
; SI ( n_t6 > 0 ) ;
MAI_T6
= MAI_1
ELEM TRI6
; MAI_2
= (chan tri6 MAI_Q8
) ET MAI_T6
; SINON ;
MAI_2
= chan tri6 MAI_Q8
; FINSI ;
* il faut utiliser diff pour ne faire le proi que sur les noeuds nouveaux
* trac ( 1.e5 5.e4 -1.e5 ) CHP_20 MAI_1 ;
* trac ( 1.e5 5.e4 -1.e5 ) M_21 MOD_1 MAI_1 ;
* trac ( 1.e5 5.e4 -1.e5 ) ( MAI_1 et POI_NEW );
* trac face ( 1.e5 5.e4 -1.e5 ) MAI_2 ;
CHP_22
= CHP_20
ET ( proi POI_NEW M_21
) ;* trac ( 1.e5 5.e4 -1.e5 ) CHP_22 MAI_2 ;
SINON ;
MAI_2 = MAI_1 ;
CHP_22 = CHP_21 ;
FINSI ;
'FINPROC' CHP_22 MAI_2 ;
******************************************
* *
* procedure CHREP : changement de repere *
* *
******************************************
DEBPROC CHREP CHOIX
*MOT CH_2
/CHPOINT CH_M
/MCHAML CH_PP2
/CHPOINT CH_MP
/MCHAML
; MESS '
----------------------> entree
dans CHREP '
; SI ( EXISTE CH_2);
CH_1 = CH_2 ;
CH_PP = CH_PP2 ;
SINON ;
CH_1 = CH_M ;
CH_PP = CH_MP;
FINSI;
P = TABLE ;
P.1 = TABLE ;
P.2 = TABLE ;
P.3 = TABLE ;
S = TABLE ;
S.1 = TABLE ;
S.2 = TABLE ;
S.3 = TABLE ;
SP = TABLE ;
SP.1 = TABLE ;
SP.2 = TABLE ;
SP.3 = TABLE ;
MR2D_1 = CHAINE 'TX ' 'TY ' 'NX ' 'NY ' ;
MR2D_2 = CHAINE 'P11 ' 'P12 ' 'P21 ' 'P22 ' ;
MR3D_1 = CHAINE 'TX ' 'TY ' 'TZ ' 'NX ' 'NY ' 'NZ ' 'BX ' 'BY ' 'BZ ';
MR3D_2 = CHAINE 'P11 ' 'P12 ' 'P13 ' 'P21 ' 'P22 ' 'P23 ' 'P31 ' 'P32 ' 'P33 ' ;
SI ( EGA CHOIX 'CONTRAINTES' ) ;
MC2D_1 = CHAINE 'SMXX' 'SMYY' 'SMZZ' 'SMXY' ;
MC2D_2 = CHAINE 'SMRR' 'SMZZ' 'SMTT' 'SMRZ' ;
MC3D_1 = CHAINE 'SMXX' 'SMYY' 'SMZZ' 'SMXY' 'SMXZ' 'SMYZ' ;
FINSI ;
SI ( EGA CHOIX 'DEFORMATIONS' ) ;
MC2D_1 = CHAINE 'EPXX' 'EPYY' 'EPZZ' 'EPXY' ;
MC2D_2 = CHAINE 'EPRR' 'EPZZ' 'EPTT' 'EPRZ' ;
MC3D_1 = CHAINE 'EPXX' 'EPYY' 'EPZZ' 'EPXY' 'EPXZ' 'EPYZ' ;
FINSI ;
SI (V1 EGA 2) ;
MCR1
= CHAINE
(EXTR LISTCOM2
1) (EXTR LISTCOM2
2) (EXTR LISTCOM2
3) (EXTR LISTCOM2
4) ; MCC1
= CHAINE
(EXTR LISTCOM1
1) (EXTR LISTCOM1
2) (EXTR LISTCOM1
3) (EXTR LISTCOM1
4) ; MESS '
>>>CHREP
>>>' MCR1
; MESS '
>>>CHREP
>>>' MR2D_1
; SI ( NON (( EGA MCR1 MR2D_1) OU ( EGA MCR1 MR2D_2)) ) ;
MESS '
>>>CHREP
>>> COMPOSANTES REPERE TROUVEES :' MCR1
; MESS '
>>>CHREP
>>> AU LIEU DE :' MR2D_1
; MESS '
>>>CHREP
>>> OU BIEN :' MR2D_2
; ERREUR 'COMP_REP_NON_ADMISES' ;
FINSI;
SI ( NON (( EGA MCC1 MC2D_1) OU ( EGA MCC1 MC2D_2)) ) ;
MESS '
>>>CHREP
>>> COMPOSANTES REPERE TROUVEES :' MCC1
; MESS '
>>>CHREP
>>> AU LIEU DE :' MC2D_1
; MESS '
>>>CHREP
>>> OU BIEN :' MC2D_2
; ERREUR 'COMP_CHAMP_NON_ADMISES' ;
FINSI;
FINSI;
SI (V1 EGA 3) ;
MCC1
= CHAINE
(EXTR LISTCOM1
1) (EXTR LISTCOM1
2) (EXTR LISTCOM1
3) (EXTR LISTCOM1
4) (EXTR LISTCOM1
5) (EXTR LISTCOM1
6) ; SI ( NON ( EGA MCR1 MR3D_1) ) ;
MESS '
>>>CHREP
>>> COMPOSANTES REPERE TROUVEES :' MCR1
; MESS '
>>>CHREP
>>> AU LIEU DE :' MR3D_1
; ERREUR 'COMP_REP_NON_ADMISES' ;
FINSI;
SI ( NON ( EGA MCC1 MC3D_1) ) ;
MESS '
>>>CHREP
>>> COMPOSANTES REPERE TROUVEES :' MCC1
; MESS '
>>>CHREP
>>> AU LIEU DE :' MC3D_1
; ERREUR 'COMP_CHAMP_NON_ADMISES' ;
FINSI;
FINSI;
SI (V1 EGA 2);
P.1 .
1 = EXCO (EXTR LISTCOM2
1) CH_PP SCAL
; P.1 .
2 = EXCO (EXTR LISTCOM2
2) CH_PP SCAL
; P.2 .
1 = EXCO (EXTR LISTCOM2
3) CH_PP SCAL
; P.2 .
2 = EXCO (EXTR LISTCOM2
4) CH_PP SCAL
; S.1 .
1 = EXCO (EXTR LISTCOM1
1) CH_1 SCAL
; S.1 .
2 = EXCO (EXTR LISTCOM1
4) CH_1 SCAL
; S.2 . 1 = S.1 . 2 ;
S.2 .
2 = EXCO (EXTR LISTCOM1
2) CH_1 SCAL
; S.3 .
3 = EXCO (EXTR LISTCOM1
3) CH_1 SCAL
;FINSI;
SI (V1 > 2) ;
P.1 .
1 = EXCO (EXTR LISTCOM2
1) CH_PP SCAL
; P.1 .
2 = EXCO (EXTR LISTCOM2
2) CH_PP SCAL
; P.1 .
3 = EXCO (EXTR LISTCOM2
3) CH_PP SCAL
; P.2 .
1 = EXCO (EXTR LISTCOM2
4) CH_PP SCAL
; P.2 .
2 = EXCO (EXTR LISTCOM2
5) CH_PP SCAL
; P.2 .
3 = EXCO (EXTR LISTCOM2
6) CH_PP SCAL
; P.3 .
1 = EXCO (EXTR LISTCOM2
7) CH_PP SCAL
; P.3 .
2 = EXCO (EXTR LISTCOM2
8) CH_PP SCAL
; P.3 .
3 = EXCO (EXTR LISTCOM2
9) CH_PP SCAL
;*
S.1 .
1 = EXCO (EXTR LISTCOM1
1) CH_1 SCAL
; S.1 .
2 = EXCO (EXTR LISTCOM1
4) CH_1 SCAL
; S.2 . 1 = S.1 . 2 ;
S.2 .
2 = EXCO (EXTR LISTCOM1
2) CH_1 SCAL
; S.3 .
3 = EXCO (EXTR LISTCOM1
3) CH_1 SCAL
; S.1 .
3 = EXCO (EXTR LISTCOM1
5) CH_1 SCAL
; S.2 .
3 = EXCO (EXTR LISTCOM1
6) CH_1 SCAL
; S.3 . 1 = S.1 . 3 ;
S.3 . 2 = S.2 . 3 ;
I = 0;
REPETER BOUCS1 3;
I = I + 1;
J = I - 1;
REPETER BOUCS2 ( 3 + 1 - I );
J = J + 1;
SP.I.J = 0.;
L = 0;
REPETER BOUCS3 3;
L = L + 1;
Q = 0;
REPETER BOUCS4 3;
Q = Q + 1;
SP.I.J = (SP.I.J) + ( (P.I.L) * ( P.J.Q) * (S.L.Q )) ;
FIN BOUCS4;
FIN BOUCS3;
FIN BOUCS2;
FIN BOUCS1;
SI ( EGA CHOIX CONTRAINTES);
CH_2
= ( NOMC 'SMTT' SP.1 .
1 ) @
ET ( NOMC 'SMNN' SP.2 .
2 ) @
ET ( NOMC 'SMBB' SP.3 .
3 ) @
ET ( NOMC 'SMTN' SP.1 .
2 ) @
ET ( NOMC 'SMTB' SP.1 .
3 ) @
ET ( NOMC 'SMNB' SP.2 .
3 ); SINON;
CH_2
= ( NOMC 'EPTT' SP.1 .
1 ) @
ET ( NOMC 'EPNN' SP.2 .
2 ) @
ET ( NOMC 'EPBB' SP.3 .
3 ) @
ET ( NOMC 'EPTN' SP.1 .
2 ) @
ET ( NOMC 'EPTB' SP.1 .
3 ) @
ET ( NOMC 'EPNB' SP.2 .
3 ); FINSI;
SINON;
I = 0;
REPETER BOUCS11 2;
I = I + 1;
J = I-1;
REPETER BOUCS21 (2+1-I);
J = J + 1;
SP.I.J = 0. ;
L = 0;
REPETER BOUCS31 2;
L = L + 1;
Q = 0 ;
REPETER BOUCS41 2;
Q = Q + 1;
SP.I.J = (SP.I.J) + ( (P.I.L) * ( P.J.Q) * (S.L.Q )) ;
FIN BOUCS41;
FIN BOUCS31;
FIN BOUCS21;
FIN BOUCS11;
SP.3 . 3 = S.3 . 3;
SI ( EGA CHOIX CONTRAINTES);
CH_2
= ( NOMC 'SMTT' SP.1 .
1 ) @
ET ( NOMC 'SMNN' SP.2 .
2 ) @
ET ( NOMC 'SMBB' SP.3 .
3 ) @
ET ( NOMC 'SMTN' SP.1 .
2 ); SINON;
CH_2
= ( NOMC 'EPTT' SP.1 .
1 ) @
ET ( NOMC 'EPNN' SP.2 .
2 ) @
ET ( NOMC 'EPBB' SP.3 .
3 ) @
ET ( NOMC 'EPTN' SP.1 .
2 ); FINSI;
FINSI;
MESS '
----------------------> sortie de CHREP '
; FINPROC CH_2;
**** @CLAMQ
DEBPROC @CLAMQ TAB1*TABLE XM*CHPOINT YM*CHPOINT ZM*CHPOINT ISHIFT*LOGIQUE IRIPPLE*LOGIQUE ;
*
***********************************************************
* Procedure de calcul du parametre Lambdaq necessaire au *
* calcul du profil du depot de puissance en chaque point *
* de la surface de la structure modelisee. *
* Alain MOAL (juin 1995) *
***********************************************************
*
MESS '
---------------------------------> calling @CLAMQ'
; *
*--------------- VARIABLES D'ENTREE :
RP = TAB1.<RP ;
HP = TAB1.<HP ;
RHO0 = TAB1.<RHO0 ;
THETA0 = TAB1.<THETA0 ;
ANGPHI0 = TAB1.<ANGPHI0 ;
RR = TAB1.<RR ;
LAMB = TAB1.<LAMB ;
LAMBQREF = TAB1.<LAMBQREF ;
THETAREF = TAB1.<THETAREF ;
IPLASMA = TAB1.<IPLASMA ;
COEFA = TAB1.<COEFA ;
COEFB = TAB1.<COEFB ;
COEFC = TAB1.<COEFC ;
RHOMER = TAB1.<RHOMER ;
NBOB = TAB1.<NBOB ;
IMESS = TAB1.<IMESS ;
*------------------------------------
*
PI = 3.141592 ;
MU0 = 4.E-7 * PI ;
*
*---- Coordonnees de chaque point dans le repere du plasma
RHOP THETAP PHIP = @CRGTC XM YM ZM RP HP ;
*
*---- Masque delimitant le domaine de validite du modele de ripple
*attention domaine de validite etendu a 180 par E.COSTA et
*E.TSITRONE le 02/06/97
*MASK0 = (ABS THETAP) MASQUE INFERIEUR 110. ;
MASK0 = (ABS THETAP) MASQUE INFERIEUR 180. ;
*
SI ISHIFT ;
AUX0 = -1. * MU0 * IPLASMA / (2. * PI) ;
*
BPTHEREF = (((RHOP/RP) * (COS THETAREF) * LAMB) + 1.) * AUX0 ;
BPTHE = (((COS THETAP) * (RHOP/RP) * LAMB) + 1.) * AUX0 ;
*
* ---- facteur de compression des lignes de champ due au shift
H1 = (RHOP * (COS THETAREF) + RP) * BPTHEREF ;
H2 = ((COS THETAP) * RHOP + RP) * BPTHE ;
HS = H2 ** -1 * H1 ;
SINON ;
HS = RHOP * 0. + 1. ;
FINSI ;
*
SI IRIPPLE ;
* ---- enveloppe de la DSMF dans le repere adapte au calcul du ripple
* ---- Rho0 dans le "repere du ripple"
RHOR THETAR PHIR = @CRGTC XM YM ZM RR 0. ;
*
RHO0R = ((RHO0**2) + ((RP - RR)**2) + (2. * RHO0 * (RP - RR) * (COS THETAP)))**0.5 ;
RHODSMFR = (EXP((THETAR**2) * -1. * COEFC)) * (EXP(COEFB * RHO0R)) * ((COS((PHIR + ANGPHI0) * NBOB)) - 1.) * COEFA + RHO0R;
* ---- dans le repere du plasma
RHODSMFP = RHODSMFR * 2. * (RR - RP) * (COS THETAR) ;
RHODSMFP = RHODSMFP + ((RR - RP)**2) + (RHODSMFR**2) ;
RHODSMFP = RHODSMFP**0.5 ;
RHOMERP = RHOMER * 2. * (RR - RP) * (COS THETAR) ;
RHOMERP = RHOMERP + ((RR - RP)**2) + (RHOMER**2) ;
RHOMERP = RHOMERP**0.5 ;
*
* ---- facteur de compression des lignes de champ due au ripple
* ---- Rem : le masque sert a traiter le cas Rhomer = Rho0r
* ---- dans le repere du ripple
*AM1** MASQ1 = ((ABS(RHOR - RHODSMFR)) MASQUE INFERIEUR 1.E-6)*1.E-6;
*AM1** MASQ2 = ((ABS(RHOMER - RHO0R)) MASQUE INFERIEUR 1.E-6)*1.E-6 ;
*AM1** HR = ((RHOR - RHODSMFR) + MASQ1) / ((RHOMER - RHO0R) + MASQ2) ;
* ---- dans le repere du plasma
*AM2** MASQ1 = ((ABS(RHOP - RHODSMFP)) MASQUE INFERIEUR 1.E-6)*1.E-6;
*AM2** MASQ2 = ((ABS(RHOMERP - RHO0)) MASQUE INFERIEUR 1.E-6)*1.E-6 ;
*AM2** HR = ((RHOP - RHODSMFP) + MASQ1) / ((RHOMERP - RHO0) + MASQ2);
*AM*** HR = MASK0 * HR + ((1.-MASK0) * 1.) ;
* ---- Pas de compression des lignes de champ due au ripple
HR = RHOP * 0. + 1. ;
SINON ;
HR = RHOP * 0. + 1. ;
FINSI ;
*
LAMBQ = HR * HS * LAMBQREF ;
*
*---- distance a la derniere surface magnetique avec ripple
SI IRIPPLE ;
* ---- dans le repere du plasma
DELTA = MASK0 * (RHOP - RHODSMFP) + ((1.-MASK0) * (RHOP - RHO0));
* ---- dans le repere du ripple
*AM1** DELTA = MASK0 * (RHOR - RHODSMFR) + ((1.-MASK0) * (RHOR - RHO0R));
SINON ;
DELTA = RHOP - RHO0 ;
FINSI ;
*
*---- messages de verification
SI (IMESS >EG 3) ;
MESS '
>>>> in @CLAMQ : RHO0R '
; LIST RHO0R
; MESS '
>>>> in @CLAMQ : RHODSMFR '
; LIST RHODSMFR
; MESS '
>>>> in @CLAMQ : RHO0R '
; LIST RHO0R
; MESS '
>>>> in @CLAMQ : LAMBQ '
; LIST LAMBQ
; MESS '
>>>> in @CLAMQ : DELTA '
; LIST DELTA
; FINSI ;
*
SI (IMESS >EG 2) ;
MESS '
>>>> in @CLAMQ : max and min values of HR '
; MESS '
>>>> in @CLAMQ : max and min values of HS '
; MESS '
>>>> in @CLAMQ : max and min values of LAMBQ '
; MESS '
>>>> in @CLAMQ : max and min values of DELTA '
; FINSI ;
*
MESS '
---------------------------------> exiting @CLAMQ'
; FINPROC LAMBQ HS HR DELTA ;
**** @CLIGB
DEBPROC @CLIGB NBPAS0*ENTIER PASB0*FLOTTANT TAB1*TABLE TABLIG1*TABLE IMETHOD*ENTIER;
*
*****************************************************************
* Procedure de calcul des lignes de champ magnetique partant de *
* chaque point d'une geometrie donnee. *
* methode 1 : methode explicite (tangentes) *
* methode 2 : Methode iterative avec convergence sur un critere *
* d'appartenance a la surface magnetique *
* Alain MOAL (mars 1996) *
*****************************************************************
*
MESS '
---------------------------------> calling @CLIGB'
; *
* ---- Valeurs par defaut
@VDEFAUT TAB1 ;
*
*--------------- VARIABLES D'ENTREE :
LISTE0 = TAB1.<LI_LIGNE_B ;
TYPCAL = TAB1.<TYPE_CALCUL ;
RP = TAB1.<RP ;
RR = TAB1.<RR ;
HP = TAB1.<HP ;
EPS0 = TAB1.<EPS ;
COEFA = TAB1.<COEFA ;
COEFB = TAB1.<COEFB ;
COEFC = TAB1.<COEFC ;
NBOB = TAB1.<NBOB ;
SI (EXISTE TAB1 <LPT) ;
RHO0 = TAB1.<RHO0 ;
FINSI ;
*------------------------------------
*
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
SI (IMETHOD EGA 1) ;
* ---- Methode explicite simple (tangentes)
I0 = 0 ;
REPETER BOUCLE0
(DIME LISTE0
);
TABLIG1.I0 = ((XM+1.E-6) YM ZM) D 1 P0 ;
* ---- Transformation en champ par point
* ---- Coordonnees dans le repere global du tore
XG_OLD YG_OLD ZG_OLD = @CRMGC XM0 YM0 ZM0 TAB1 ;
*
I1 = 0 ;
REPETER BOUCLE1 NBPAS0 ;
* I1 = I1 + 1 ; MESS 'I1 = ' I1;
* ---- Calcul du champ dans le repere global
BXG BYG BZG FSECU = @CHAMB TAB1 XG_OLD YG_OLD ZG_OLD ISHIFT IRIPPLE ;
NORM_B = ((BXG*BXG) + (BYG*BYG) + (BZG*BZG))**0.5 ;
XG_NEW = XG_OLD - (BXG * PASB0 / NORM_B) ;
YG_NEW = YG_OLD - (BYG * PASB0 / NORM_B) ;
ZG_NEW = ZG_OLD - (BZG * PASB0 / NORM_B) ;
* ---- Coordonnees dans le repere du maillage
XM_NEW YM_NEW ZM_NEW = @CRGMC XG_NEW YG_NEW ZG_NEW TAB1 ;
XM1
= EXTR XM_NEW SCAL P0
; YM1
= EXTR YM_NEW SCAL P0
; ZM1
= EXTR ZM_NEW SCAL P0
;
SI (EXISTE TAB1 <LPT) ;
* ---- traitement particulier pour le LPT
* ---- on change la couleur de la ligne qui
* ---- passe au dessous
XM2 YM2 ZM2 = @CRGMC XG_OLD YG_OLD ZG_OLD TAB1;
SI ((ZG_NEW >EG RHO0) ET (ZG_OLD >EG RHO0)) ;
TABLIG1.
I0 = TABLIG1.
I0 ET (((XM2 YM2 ZM2
) D
1 (XM1 YM1 ZM1
)) COUL ROUG
); SINON ;
TABLIG1.
I0 = TABLIG1.
I0 ET (((XM2 YM2 ZM2
) D
1 (XM1 YM1 ZM1
)) COUL JAUN
); FINSI ;
FINSI ;
TABLIG1.I0 = TABLIG1.I0 D 1 (XM1 YM1 ZM1) ;
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
MENAGE ;
FIN BOUCLE1 ;
* ---- calcul de l'erreur sur Rho
SI ((NON ISHIFT) ET (NON IRIPPLE)) ;
* ---- Coordonnees du point initial dans le repere
* ---- global du tore
XG0 YG0 ZG0 = @CRMGC XM0 YM0 ZM0 TAB1 ;
* ---- Coordonnees du point initial dans le repere
* ---- pseudo-toroidal du plasma
RHO0 THE0 PHI0 = @CRGTC XG0 YG0 ZG0 RP HP ;
* ---- Coordonnees du point final dans le repere
* ---- pseudo-toroidal du plasma
RHO1 THE1 PHI1 = @CRGTC XG_OLD YG_OLD ZG_OLD RP HP;
* ---- sans ripple, on doit avoir Rho constant le
* ---- long de la ligne de champ
DRHO0 = RHO1 - RHO0 ;
ERREUR0 = (ABS DRHO0) / RHO0 ;
MESS 'Variation en Rho : '
; LIST DRHO0
; MESS 'Erreur en Rho : '
; LIST ERREUR0
; FINSI ;
FIN BOUCLE0 ;
FINSI ;
SI (IMETHOD EGA 2) ;
* ---- Methode iterative avec convergence sur un critere
* ---- d'appartenance a la surface magnetique
I0 = 0 ;
REPETER BOUCLE0
(DIME LISTE0
);
I0 = I0 + 1 ;
TABLIG1.I0 = ((XM+1.E-6) YM ZM) D 1 P0 ;
* ---- Transformation en champ par point
* ---- Coordonnees dans le repere global du tore
XG_OLD YG_OLD ZG_OLD = @CRMGC XM0 YM0 ZM0 TAB1 ;
*
I1 = 0 ;
REPETER BOUCLE1 NBPAS0 ;
I1
= I1
+ 1 ; MESS 'I1
= ' I1
;* ---- Calcul du champ dans le repere global
BXG BYG BZG FSECU = @CHAMB TAB1 XG_OLD YG_OLD ZG_OLD ISHIFT IRIPPLE ;
NORM_B = ((BXG*BXG) + (BYG*BYG) + (BZG*BZG))**0.5 ;
XG_NEW0 = XG_OLD - (BXG * PASB0 / NORM_B) ;
YG_NEW0 = YG_OLD - (BYG * PASB0 / NORM_B) ;
ZG_NEW0 = ZG_OLD - (BZG * PASB0 / NORM_B) ;
* ---- Coordonnees dans le repere
* ---- pseudo-toroidal du ripple
RHOR THER PHIR = @CRGTC XG_OLD YG_OLD ZG_OLD RR 0.;
* ---- calcul de la coordonnee radiale dans le
* ---- plan meridien Phi=0 de la ligne de champ
* ---- consideree par une methode de point fixe
RHOR_OLD = RHOR ;
KAUX = (EXP(THER**2 * -1. * COEFC)) * ((COS (PHIR * NBOB)) * -1. + 1.) * COEFA ;
I3 = 0 ;
REPETER BOUCLE3 50 ;
I3
= I3
+ 1; MESS ' I3
= ' I3
; RHOR_NEW = RHOR + (KAUX * (EXP(RHOR_OLD * COEFB)));
SI ((MAXI (ABS((RHOR_NEW
- RHOR_OLD
) / RHOR_NEW
))) <
;EG EPS0
) ; QUITTER BOUCLE3 ;
FINSI ;
RHOR_OLD = RHOR_NEW ;
FIN BOUCLE3 ;
RHOMER = RHOR_NEW ;
* ---- le point obtenu doit etre sur la surface magnetique
I2 = 0 ;
REPETER BOUCLE2 2 ;
I2
= I2
+ 1 ; MESS ' I2
= ' I2
;* ---- Coordonnees dans le repere
* ---- pseudo-toroidal du ripple
RHORN THERN PHIRN = @CRGTC XG_NEW0 YG_NEW0 ZG_NEW0 RR 0.;
DRHOMERN = (EXP(RHOMER * COEFB)) * (EXP(THERN**2 * COEFC * -1.)) * COEFA ;
RHORIP = DRHOMERN * ((COS (PHIRN*NBOB)) - 1.) + RHOMER;
* ---- Coordonnees dans le repere global
XG_NEW1 YG_NEW1 ZG_NEW1 = @CRTGC RHORIP THERN PHIRN RR 0.;
* ---- Calcul du champ dans le repere global
BXG0 BYG0 BZG0 FSECU0 = @CHAMB TAB1 XG_NEW1 YG_NEW1 ZG_NEW1 ISHIFT IRIPPLE ;
* ---- on prend la moyenne des 2 tangentes
BXG1 = (BXG + BXG0)/2. ;
BYG1 = (BYG + BYG0)/2. ;
BZG1 = (BZG + BZG0)/2. ;
NORM_B1 = ((BXG1*BXG1) + (BYG1*BYG1) + (BZG1*BZG1))**0.5 ;
XG_NEW0 = XG_OLD - (BXG1 * PASB0 / NORM_B1) ;
YG_NEW0 = YG_OLD - (BYG1 * PASB0 / NORM_B1) ;
ZG_NEW0 = ZG_OLD - (BZG1 * PASB0 / NORM_B1) ;
SI (I2 EGA 2) ;
XG_NEW = XG_NEW0 ;
YG_NEW = YG_NEW0 ;
ZG_NEW = ZG_NEW0 ;
FINSI ;
FIN BOUCLE2 ;
* ---- Coordonnees dans le repere du maillage
XM_NEW YM_NEW ZM_NEW = @CRGMC XG_NEW YG_NEW ZG_NEW TAB1 ;
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
XM1
= EXTR XM_NEW SCAL P0
; YM1
= EXTR YM_NEW SCAL P0
; ZM1
= EXTR ZM_NEW SCAL P0
;
TABLIG1.I0 = TABLIG1.I0 D 1 (XM1 YM1 ZM1) ;
MENAGE ;
FIN BOUCLE1 ;
FIN BOUCLE0 ;
FINSI ;
MESS '
---------------------------------> exiting @CLIGB'
; FINPROC ;
**** @CLIGB0
DEBPROC @CLIGB0 DPHI*FLOTTANT PHIMAX*FLOTTANT TAB1*TABLE TABLIG1*TABLE IMETHOD*ENTIER;
*
*****************************************************************
* Procedure de calcul des lignes de champ magnetique partant de *
* chaque point d'une geometrie donnee. *
* methode 1 : methode explicite (tangentes) *
* methode 2 : Runge-Kutta du 4eme ordre a pas constant *
* Alain MOAL (mars 1996) *
*****************************************************************
*
MESS '
---------------------------------> calling @CLIGB'
; *
*--------------- VARIABLES D'ENTREE :
LISTE0 = TAB1.<LI_LIGNE_B ;
OEIL0 = TAB1.VIEW_P ;
RP = TAB1.<RP ;
HP = TAB1.<HP ;
ANGPHI0 = TAB1.<ANG_PHI0 ;
TYPCAL = TAB1.<TYPE_CALCUL ;
*------------------------------------
*
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB0 : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
* ---- Valeurs par defaut
@VDEFAUT TAB1 ;
TABLIG1 = TABLE ;
*
SI (IMETHOD EGA 1) ;
* ---- Methode explicite (tangentes)
I0 = 0 ;
REPETER BOUCLE0
(DIME LISTE0
);
I0 = I0 + 1 ;
TABLIG1.I0 = ((XM+1.E-6) YM ZM) D 1 P0 ;
*
* ---- Transformation en champ par point
*
* ---- Coordonnees dans le repere global du tore
XG_OLD YG_OLD ZG_OLD = @CRMGC XM0 YM0 ZM0 TAB1 ;
*
*
PHIAUX = ANGPHI0 ;
*
REPETER BOUCLE1 (ENTI (PHIMAX/DPHI)) ;
*
PHIAUX = PHIAUX + DPHI ;
* ---- Numero du grand tour calcule a partir du plan
* ---- median entre bobines
NTOUR0 = (ENTI (PHIAUX / 360.)) + 1 ;
*
* ---- Calcul du champ dans le repere global
BX BY BZ FSECU = @CHAMB TAB1 XG_OLD YG_OLD ZG_OLD ISHIFT IRIPPLE ;
*
* ---- Coordonnees dans le repere pseudo-toroidal du plasma
RHO_OLD THE_OLD PHI_OLD = @CRGTC XG_OLD YG_OLD ZG_OLD RP HP ;
*
* ---- Champ dans le repere pseudo-toroidal du plasma
BRHO BTHETA BPHI = @CBGTV BX BY BZ THE_OLD PHI_OLD ;
*
DRHO0 = (RHO_OLD * (COS THE_OLD) + RP) * BRHO * DPHI0 / BPHI;
DTHE0 = (RHO_OLD * (COS THE_OLD) + RP) * BTHETA * DPHI0 / BPHI / RHO_OLD;
RHO_NEW = RHO_OLD + DRHO0 ;
THE_NEW = THE_OLD + DTHE0 ;
* MESS 'PHI_OLD+DPHI0 '; LIST (MAXI (PHI_OLD+DPHI0));
SI (((MAXI (PHI_OLD
+DPHI0
)) >EG 0.
) ET ((MAXI (PHI_OLD
+DPHI0
)) <
;EG
180.
)); PHI_NEW = PHI_OLD + DPHI0 + (360. * (NTOUR0-1));
FINSI ;
SI (((MAXI (PHI_OLD
+DPHI0
)) > -180.
) ET ((MAXI (PHI_OLD
+DPHI0
)) < 0.
)); PHI_NEW = PHI_OLD + DPHI0 + (360. * NTOUR0) ;
FINSI ;
SI ((MAXI (PHI_OLD
+DPHI0
)) > 180.
) ; PHI_NEW = PHI_OLD + DPHI0 ;
FINSI ;
LISTRHO
= LISTRHO
ET (PROG (MAXI RHO_NEW
)) ; LISTTHE
= LISTTHE
ET (PROG (MAXI THE_NEW
)) ; LISTPHI
= LISTPHI
ET (PROG (MAXI PHI_NEW
)) ; LISTFSE
= LISTFSE
ET (PROG (MAXI FSECU
)) ;*
* ---- Coordonnees dans le repere global
XG_NEW YG_NEW ZG_NEW = @CRTGC RHO_NEW THE_NEW PHI_NEW RP HP;
*
* MESS 'MAX DE BPHI '; LIST (MAXI BPHI);
* MESS 'MAX DE BRHO '; LIST (MAXI BRHO);
* MESS 'MAX DE BTHE '; LIST (MAXI BTHETA);
* ---- Coordonnees dans le repere du maillage
XM_NEW YM_NEW ZM_NEW = @CRGMC XG_NEW YG_NEW ZG_NEW TAB1 ;
*
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
XM1
= EXTR XM_NEW SCAL P0
; YM1
= EXTR YM_NEW SCAL P0
; ZM1
= EXTR ZM_NEW SCAL P0
;
TABLIG1.I0 = TABLIG1.I0 D 1 (XM1 YM1 ZM1) ;
SI ((MAXI PHI_NEW
) >EG PHIMAX
) ; MESS '
>>>> The maximum value of Phi is reached'
; QUITTER BOUCLE1 ;
FINSI ;
MENAGE ;
FIN BOUCLE1 ;
EVRHO
= EVOL JAUN
MANU 'PHI' LISTPHI 'RHO' LISTRHO
; EVTHE
= EVOL ROUG
MANU 'PHI' LISTPHI 'THETA' LISTTHE
; EVFSE
= EVOL VERT
MANU 'PHI' LISTPHI 'FSECU' LISTFSE
; DESSIN EVRHO MIMA ;
DESSIN EVTHE MIMA ;
DESSIN EVFSE MIMA ;
FIN BOUCLE0 ;
TEMPS ;
FINSI ;
SI (IMETHOD EGA 2) ;
* ---- Runge-Kutta d'ordre 4 a pas constant
I0 = 0 ;
REPETER BOUCLE0
(DIME LISTE0
);
I0 = I0 + 1 ;
TABLIG1.I0 = ((XM+1.E-6) YM ZM) D 1 P0 ;
*
* ---- Transformation en champ par point
*
* ---- Coordonnees dans le repere global du tore
XG_OLD YG_OLD ZG_OLD = @CRMGC XM0 YM0 ZM0 TAB1 ;
*
*
PHIAUX = ANGPHI0 ;
*
REPETER BOUCLE1 (ENTI (PHIMAX/DPHI)) ;
*
PHIAUX = PHIAUX + DPHI ;
* ---- Numero du grand tour calcule a partir du plan
* ---- median entre bobine
NTOUR0 = (ENTI (PHIAUX / 360.)) + 1 ;
*
* ---- Calcul du champ dans le repere global
BX BY BZ FSECU = @CHAMB TAB1 XG_OLD YG_OLD ZG_OLD ISHIFT IRIPPLE ;
* ---- Coordonnees dans le repere pseudo-toroidal du plasma
RHO_OLD THE_OLD PHI_OLD = @CRGTC XG_OLD YG_OLD ZG_OLD RP HP ;
* ---- Champ dans le repere pseudo-toroidal du plasma
BRHO BTHE BPHI = @CBGTV BX BY BZ THE_OLD PHI_OLD ;
*
* ---- calcul de K0 et L0
K0 = (RHO_OLD * (COS THE_OLD) + RP) * BRHO / BPHI;
L0 = (RHO_OLD * (COS THE_OLD) + RP) * BTHE / BPHI / RHO_OLD;
* ---- calcul de K1 et L1
RHO1_OLD = RHO_OLD + (K0/2.) ;
THE1_OLD = THE_OLD + (L0/2.) ;
* SI (((MAXI (PHI_OLD+DPHI0)) >EG 0.) ET
* ((MAXI (PHI_OLD+DPHI0)) <EG 180.));
* PHI1_OLD = PHI_OLD + (DPHI0/2.) + (360. * (NTOUR0-1));
* FINSI ;
* SI (((MAXI (PHI_OLD+DPHI0)) > -180.) ET
* ((MAXI (PHI_OLD+DPHI0)) < 0.));
* PHI1_OLD = PHI_OLD + (DPHI0/2.) + (360. * NTOUR0) ;
* FINSI ;
* SI ((MAXI (PHI_OLD+DPHI0)) > 180.) ;
PHI1_OLD = PHI_OLD + (DPHI0/2) ;
* FINSI ;
XG1_OLD YG1_OLD ZG1_OLD = @CRTGC RHO1_OLD THE1_OLD PHI1_OLD RP HP;
* ---- Calcul du champ dans le repere global
BX1 BY1 BZ1 FSECU = @CHAMB TAB1 XG1_OLD YG1_OLD ZG1_OLD IRIPPLE ISHIFT ;
* ---- Champ dans le repere pseudo-toroidal du plasma
BRHO1 BTHE1 BPHI1 = @CBGTV BX1 BY1 BZ1 THE1_OLD PHI1_OLD ;
K1 = (RHO1_OLD * (COS THE1_OLD) + RP)*BRHO1 /BPHI1 * DPHI0;
L1 = (RHO1_OLD * (COS THE1_OLD) + RP)*BTHE1/BPHI1 / RHO1_OLD * DPHI0;
* ---- calcul de K2 et L2
RHO2_OLD = RHO_OLD + (K1/2.) ;
THE2_OLD = THE_OLD + (L1/2.) ;
* SI (((MAXI (PHI_OLD+DPHI0)) >EG 0.) ET
* ((MAXI (PHI_OLD+DPHI0)) <EG 180.));
* PHI2_OLD = PHI_OLD + (DPHI0/2.) + (360. * (NTOUR0-1));
* FINSI ;
* SI (((MAXI (PHI_OLD+DPHI0)) > -180.) ET
* ((MAXI (PHI_OLD+DPHI0)) < 0.));
* PHI2_OLD = PHI_OLD + (DPHI0/2.) + (360. * NTOUR0);
* FINSI ;
* SI ((MAXI (PHI_OLD+DPHI0)) > 180.) ;
PHI2_OLD = PHI_OLD + (DPHI0/2) ;
* FINSI ;
XG2_OLD YG2_OLD ZG2_OLD = @CRTGC RHO2_OLD THE2_OLD PHI2_OLD RP HP;
* ---- Calcul du champ dans le repere global
BX2 BY2 BZ2 FSECU = @CHAMB TAB1 XG2_OLD YG2_OLD ZG2_OLD ISHIFT IRIPPLE ;
* ---- Champ dans le repere pseudo-toroidal du plasma
BRHO2 BTHE2 BPHI2 = @CBGTV BX2 BY2 BZ2 THE2_OLD PHI2_OLD ;
K2 = (RHO2_OLD * (COS THE2_OLD) + RP)*BRHO2 /BPHI2 * DPHI0;
L2 = (RHO2_OLD * (COS THE2_OLD) + RP)*BTHE2/BPHI2 / RHO2_OLD * DPHI0;
* ---- calcul de K3 et L3
RHO3_OLD = RHO_OLD + K2 ;
THE3_OLD = THE_OLD + L2 ;
* SI (((MAXI (PHI_OLD+DPHI0)) >EG 0.) ET
* ((MAXI (PHI_OLD+DPHI0)) <EG 180.));
* PHI3_OLD = PHI_OLD + DPHI0 + (360. * (NTOUR0-1));
* FINSI ;
* SI (((MAXI (PHI_OLD+DPHI0)) > -180.) ET
* ((MAXI (PHI_OLD+DPHI0)) < 0.));
* PHI3_OLD = PHI_OLD + DPHI0 + (360. * NTOUR0);
* FINSI ;
* SI ((MAXI (PHI_OLD+DPHI0)) > 180.) ;
PHI3_OLD = PHI_OLD + DPHI0 ;
* FINSI ;
XG3_OLD YG3_OLD ZG3_OLD = @CRTGC RHO3_OLD THE3_OLD PHI3_OLD RP HP;
* ---- Calcul du champ dans le repere global
BX3 BY3 BZ3 FSECU = @CHAMB TAB1 XG3_OLD YG3_OLD ZG3_OLD ISHIFT IRIPPLE ;
* ---- Champ dans le repere pseudo-toroidal du plasma
BRHO3 BTHE3 BPHI3 = @CBGTV BX3 BY3 BZ3 THE3_OLD PHI3_OLD ;
K3 = (RHO3_OLD * (COS THE3_OLD) + RP)*BRHO3 / BPHI3 * DPHI0;
L3 = (RHO3_OLD * (COS THE3_OLD) + RP)*BTHE3/BPHI3 / RHO3_OLD * DPHI0;
RHO_NEW = RHO_OLD + ((K0 + (2.*K1) + (2.*K2) + K3)/6.);
THE_NEW = THE_OLD + ((L0 + (2.*L1) + (2.*L2) + L3)/6.);
SI (((MAXI (PHI_OLD
+DPHI0
)) >EG 0.
) ET ((MAXI (PHI_OLD
+DPHI0
)) <
;EG
180.
)); PHI_NEW = PHI_OLD + DPHI0 + (360. * (NTOUR0-1));
FINSI ;
SI (((MAXI (PHI_OLD
+DPHI0
)) > -180.
) ET ((MAXI (PHI_OLD
+DPHI0
)) < 0.
)); PHI_NEW = PHI_OLD + DPHI0 + (360. * NTOUR0) ;
FINSI ;
SI ((MAXI (PHI_OLD
+DPHI0
)) > 180.
) ; PHI_NEW = PHI_OLD + DPHI0 ;
FINSI ;
LISTRHO
= LISTRHO
ET (PROG (MAXI RHO_NEW
)) ; LISTTHE
= LISTTHE
ET (PROG (MAXI THE_NEW
)) ; LISTPHI
= LISTPHI
ET (PROG (MAXI PHI_NEW
)) ; LISTFSE
= LISTFSE
ET (PROG (MAXI FSECU
)) ;
* ---- Coordonnees dans le repere global
XG_NEW YG_NEW ZG_NEW = @CRTGC RHO_NEW THE_NEW PHI_NEW RP HP;
* ---- Coordonnees dans le repere du maillage
XM_NEW YM_NEW ZM_NEW = @CRGMC XG_NEW YG_NEW ZG_NEW TAB1 ;
*
XG_OLD = XG_NEW ;
YG_OLD = YG_NEW ;
ZG_OLD = ZG_NEW ;
XM1
= EXTR XM_NEW SCAL P0
; YM1
= EXTR YM_NEW SCAL P0
; ZM1
= EXTR ZM_NEW SCAL P0
;
TABLIG1.I0 = TABLIG1.I0 D 1 (XM1 YM1 ZM1) ;
SI ((MAXI PHI_NEW
) >EG PHIMAX
) ; MESS '
>>>> The maximum value of Phi is reached'
; QUITTER BOUCLE1 ;
FINSI ;
MENAGE ;
FIN BOUCLE1 ;
EVRHO
= EVOL JAUN
MANU 'PHI' LISTPHI 'RHO' LISTRHO
; EVTHE
= EVOL ROUG
MANU 'PHI' LISTPHI 'THETA' LISTTHE
; EVFSE
= EVOL VERT
MANU 'PHI' LISTPHI 'FSECU' LISTFSE
; DESSIN EVRHO MIMA ;
DESSIN EVTHE MIMA ;
DESSIN EVFSE MIMA ;
FIN BOUCLE0 ;
TEMPS ;
FINSI ;
MESS '
---------------------------------> exiting @CLIGB0'
; FINPROC ;
**** CONTACT
*---------------------------------------------------------------------
* PROCEDURE CONTACT VERSION DU 15/10/87
*---------------------------------------------------------------------
* CETTE PROCEDURE SERT A DEFINIR LE CONTACT ENTRE 2 SOLIDES
* OU ENTRE 1 SOLIDE ET UN OBSTACLE .
*
* SYNTAXE :
* -------
*
*
* BLC BLT FFF COEF =
*
* CONTACT | MINI | NOMINC | POI1 ( POI2 ) |
* | MAXI | DIRECTION V1 | GEO1 ( GEO2 ) |
*
* | CONSTANT | MU ( JEU | VVAL | ) ;
* | COULOMB | | CHSCA |
* | CHP |
*
*
* ATTENTION METTRE LES NOMS CONNUS EN 4 LETTRES |
* EXEMPLE : METTRE DIRE ET NON PAS DIRECTION
*
* ( EXPLICATION : CF BLOQUER , RELA ET DEPI )
*
* BLC ET BLT: LES BLOCAGES ASSOCIES AU CONTACT
* ( NORMAUX ET TANGENTIELS )
* FFF : LE SECOND MEMBRE ( NON NUL SI JEU )
* COEF : LES COEFFICIENTS DE FROTTEMENT
*
*---------------------------------------------------------------------
DEBPROC CONTACT MOMIN
*MOT DDL
*MOT V1
/POINT POI1
/POINT POI2
/POINT MA1
/MAILLAGE MA2
/MAILLAGE MFRO
*MOT ZFRO
*FLOTTANT MJEU
/MOT VVAL
/FLOTTANT VCHP
/CHPOINT
; *
IDIR = 0 ;
SI ( EGA DDL DIRE ) ;
IDIR = 1 ; FINSI ;
*------------------------------
* ON RECUPERE LA GEOMETRIE
*------------------------------
IDEUX = 0 ;
SI ( EGA IDIR 0 ) ;
SI ( EXISTE V1 ) ;
GEO1 = V1 ;
SI ( EXISTE POI1 ) ;
IDEUX = 1 ;
GEO2 = POI1 ;
FINSI ;
FINSI ;
SINON ;
SI ( EXISTE POI1 ) ;
GEO1 = POI1 ;
SI ( EXISTE POI2 ) ;
IDEUX = 1 ;
GEO2 = POI2 ;
FINSI ;
FINSI;
FINSI ;
SI ( EXISTE MA1 ) ;
GEO1 = MA1 ;
FINSI ;
SI ( EXISTE MA2 ) ;
IDEUX = 1 ;
GEO2 = MA2 ;
FINSI ;
SI ( EGA IDEUX 1 ) ;
GEO = GEO1 ET GEO2 ; SINON ;
GEO = GEO1 ;
FINSI ;
*
*------------------------------
* ON RECUPERE LA DIRECTION
*------------------------------
SI ( EGA IDIR 1 ) ;
IDIR = 1 ;
SI ( EGA SSDIM 2 ) ;
V2 = V1Y ( 0 - V1X ) ;
SINON ;
V2X = 0. - V1Y ;
V2Y = V1X ;
V2Z = 0. ;
V2 = V2X V2Y V2Z ;
SI ( EGA V2NOR 0. ) ;
V2 = 0. ( 0. - V1Z ) V1Y ;
FINSI ;
V3 = PVECT V1 V2 ;
FINSI ;
SINON ;
SI ( EGA DDL UX ) ;
SI ( EGA SSDIM 2 ) ;
V1 = 1 0 ;
V2 = 0 -1 ;
SINON ;
V1 = 1 0 0 ;
V2 = 0 1 0 ;
V3 = 0 0 1 ;
FINSI ;
FINSI ;
SI ( EGA DDL UY ) ;
SI ( EGA SSDIM 2 ) ;
V1 = 0 1 ;
V2 = 1 0 ;
SINON ;
V1 = 0 1 0 ;
V2 = 0 0 1;
V3 = 1 0 0 ;
FINSI ;
FINSI ;
SI ( EGA DDL UR ) ;
V1 = 1 0 ;
V2 = 0 1 ;
FINSI ;
SI ( EGA DDL UZ ) ;
SI ( EGA SSDIM 2 ) ;
V1 = 0 1 ;
V2 = 1 0 ;
SINON ;
V1 = 0 0 1 ;
V2 = 1 0 0;
V3 = 0 1 0 ;
FINSI ;
FINSI ;
FINSI ;
*-----------------------
* ON RECUPERE LE JEU
*-----------------------
IJEU = 0 ;
SI ( EXISTE MJEU ) ;
IJEU = 1 ;
SI ( EXISTE VVAL ) ;
VJEU = VVAL ;
FINSI ;
SI ( EXISTE VCHP ) ;
VJEU = VCHP ;
FINSI ;
FINSI ;
*--------------------------
* ON CREE LES BLOCAGES
*--------------------------
*
SI ( EGA IDEUX 0 ) ;
BLC
= BLOQUE MOMIN
DEPL DIRECTION V1 GEO1
;BLT
= BLOQUE
FROT DEPL DIRECTION V2 GEO1
;SI ( EGA SSDIM 3 ) ;
BLT
= BLT
ET ( BLOQUE
FROT DEPL DIRECTION V3 GEO1
) ;FINSI ;
SINON ;
SI ( EGA SSDIM 3 ) ;
FINSI ;
FINSI ;
*BLOCAG = BLC ET BLT ;
*-------------------------------------------
* ON CALCULE LES FORCES AU SECOND MEMBRE
*-------------------------------------------
SI ( EGA IJEU 1 ) ;
FAC = 1.;
SINON ;
FAC = -1. ;
FINSI ;
FFF
= DEPI BLC
( FAC
* VJEU
) ;SINON ;
FINSI ;
*---------------------------------------------
* ON CALCULE LES COEFFICIENTS DE FROTTEMENT
*---------------------------------------------
*----------------------------------------------------------------------
* SORTIE DE LA PROCEDURE
*----------------------------------------------------------------------
FINPROC BLC BLT FFF COEF ;
* 1 2 3 4 5 6 7*
*123456789012345678901234567890123456789012345678901234567890123456789012
* *
* *
* *
DEBPROC CONTRAPH LIGN_1*MAILLAGE INSTEVOL*FLOTTANT MOD1*MMODEL TAB1*TABLE SM1/EVOLUTION SM2/EVOLUTION VAL1/FLOTTANT;
MESS '
-----------------------------------> entree
dans CONTRAPH '
;
* test sur la dimension
SI (EGA DIM1 2) ;
MESS ' attention au SMZZ en 2D'
; SINON ;
MESS ' !!! ATTENTION !!! en
3 D '
; MESS ' utilisation a vos risques
et perils a cause du fonctionement incertain de
PROI '
; MESS ' la remarque est sans objet
si LIGN_1 appartient au maillage '
; FINSI;
SI (NON (EXISTE TAB1 RESUCONT)) ;
MESS ' TAB1 NE CONTIENT PAS DE CONTRAINTES '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
* test sur la dimension de LIGN_1*MAILLAGE : a faire
LCONFON = FAUX ;
MAIL_1
= MOD1
EXTR 'MAIL'
;N_2
= NBNO (MAIL_1
ET LIGN_1
) ;
SI ( EGA N_1 N_2 ) ;
LCONFON = VRAI ;
FINSI ;
SI (NON(EXISTE TAB1 TETMAT)) ;
MESS ' TAB1 NE CONTIENT PAS DE TETMAT '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
SI (NON(EXISTE (TAB1.TETMAT) MOD1)) ;
MESS ' TAB1.
TETMAT NE CONTIENT PAS DE MODELE '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
SI (NON(EXISTE (TAB1.TETMAT.MOD1) SIGY)) ;
MESS ' LE MATERIAU DEMANDE N EST PAS PLASTIQUE '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
L1TITR = CHAIN 'DEPOUILLEMENT LE LONG DE LA LIGNE A' INSTEVOL ;
LIMELAS1
= VARI TAB1.
CHPOTHETA.
INSTEVOL TAB1.
TETMAT.
MOD1.'SIGY'
;
SI (EXISTE SM1) ;
LIMSM1
= VARI TAB1.
CHPOTHETA.
INSTEVOL SM1
;FINSI ;
SI (EXISTE SM2) ;
LIMSM2
= VARI TAB1.
CHPOTHETA.
INSTEVOL SM2
;FINSI ;
VMIS1
= VMIS MOD1 TAB1.
RESUCONT.
INSTEVOL ;
CHEP4
= EXCO TAB1.
RESUVARI.
INSTEVOL EPSE
;CHEP3
= REDU CHEP4 MOD1
;CHEP2
= (CHAN NOEUD CHEP3 MOD1
);
SI LCONFON ;
LIMELAS2 = LIMELAS1 ;
SI (EXISTE SM1 ) ;
LIM2SM1 = LIMSM1 ;
FINSI ;
SI (EXISTE SM2 ) ;
LIM2SM2 = LIMSM2 ;
FINSI ;
SINON ;
CHVM1
= PROI LIGN_1
(CHAN NOEUD MOD1 VMIS1
) ; LIMELAS2
= PROI LIGN_1
(CHAN CHAM LIMELAS1 MOD1 NOEUD
) ; CHEP1
= PROI LIGN_1 CHEP2
; SI (EXISTE SM1) ;
LIM2SM1
= PROI LIGN_1
(CHAN CHAM LIMSM1 MOD1 NOEUD
) ; FINSI ;
SI (EXISTE SM2) ;
LIM2SM2
= PROI LIGN_1
(CHAN CHAM LIMSM2 MOD1 NOEUD
) ; FINSI ;
FINSI ;
TAC1 = TABLE ;
EVEL1
= EVOL BLEU
CHPO LIMELAS2 LIGN_1
;* champs dde t le long de la ligne
TCHAM
= CHAN CHAM
(TAB1.
CHPOTHETA.
INSTEVOL) MOD1 NOEUD
;PTCH
= PROI TCHAM LIGN_1
;EVTE1
= EVOL JAUN
CHPO (PTCH
* 1.
E6) 'T' LIGN_1
;TAC1.1
= CHAI 'MARQ CARR REGU
TITR V_MISES '
;TAC1.3
= CHAI 'MARQ LOSA REGU
TITR LIM_ELAS'
;TAC1.5
= CHAI 'MARQ CROI REGU
TITR TEMPERAT'
;EV_OTT = EVVM1 ET EVEL1 ET EVTE1 ;
SI (EXISTE SM1) ;
SI (EXISTE SM2) ;
TAC1.9
= CHAI 'MARQ TRIB REGU
TITR 3SM_ou_RM'
; SI (EXISTE VAL1) ;
TAC1.11
= CHAI 'MARQ ETOI REGU
TITR VALEUR'
; EV_OTT = EV_OTT ET EVRU1 ET EVRU2 ET EVVA1 ;
SINON ;
EV_OTT = EV_OTT ET EVRU1 ET EVRU2 ;
FINSI ;
SINON ;
SI (EXISTE VAL1) ;
TAC1.9
= CHAI 'MARQ ETOI REGU
TITR VALEUR'
; EV_OTT = EV_OTT ET EVRU1 ET EVVA1 ;
FINSI ;
*tc ajout du finsi cidessous au pif
FINSI; ;
SINON ;
SI (EXISTE VAL1 ) ;
TAC1.7
= CHAI 'MARQ ETOI REGU
TITR VALEUR'
; EV_OTT = EV_OTT ET EVVA1 ;
FINSI ;
FINSI ;
DESS EV_OTT LEGE MIMA TAC1
;
MESS '
-----------------------------------> sortie de CONTRAPH '
;
FINPROC ;
**** @COUTOR1
*****************************************************************
* PROCEDURE @COUTOR1 :
*****************************************************************
DEBPROC @COUTOR1 IEL
*MAILLAGE CHT
*CHPOINT CHN
*CHPOINT CHB
*CHPOINT
; PI = 3.14159 ;
SI (DIMGEO1 > 2);
VN2 = NXI2 NYI2 NZI2 ;
VT2 = TXI2 TYI2 TZI2 ;
VB2 = BXI2 BYI2 BZI2 ;
VN3 = NXI3 NYI3 NZI3 ;
VT3 = TXI3 TYI3 TZI3 ;
VB3 = BXI3 BYI3 BZI3 ;
* MESS 'XR =' XR 'YR =' YR ;
ALPHA = ATG YR XR ;
* MESS 'ALPHA =' ALPHA ;
RR = (ALPHA*PI/180.)/DS2 ;
SI (RR NEG 0.) ;
R = 1./RR ;
SINON ;
R = 1.E99 ;
FINSI ;
* MESS 'R =' R ;
* MESS 'XT =' XT 'YT =' YT ;
BETA = ATG YT XT ;
* MESS 'BETA =' BETA ;
TT = -1*(BETA*PI/180.)/DS2 ;
SI (TT NEG 0.) ;
T = 1./TT ;
SINON ;
T = 1.E99 ;
FINSI ;
* MESS 'T =' T ;
SINON;
VN2 = NXI2 NYI2 ;
VT2 = TXI2 TYI2 ;
VB2 = BXI2 BYI2 ;
VN3 = NXI3 NYI3 ;
VT3 = TXI3 TYI3 ;
VB3 = BXI3 BYI3 ;
* MESS 'XR =' XR 'YR =' YR ;
ALPHA = ATG YR XR ;
* MESS 'ALPHA =' ALPHA ;
RR = (ALPHA*PI/180.)/DS2 ;
SI (RR NEG 0.) ;
R = 1./RR ;
SINON ;
R = 1.E99 ;
FINSI ;
* MESS 'R =' R ;
BETA = 0.;
T = 0.;
FINSI;
FINPROC DS2 R T ALPHA BETA ;
**** @COUTOR2
*****************************************************************
* PROCEDURE @COUTOR2 : CREATION DE 2 CHAMPS PAR ELEMENTS R ET T
*****************************************************************
DEBPROC @COUTOR2 GEOFRE
*MAILLAGE CHT
*CHPOINT CHN
*CHPOINT CHB
*CHPOINT
;
NBEL1 = 0;
REPETER BOUCEL NBELGEO;
NBEL1 = NBEL1 + 1;
ELEMCOUR
= GEOFRE
ELEM NBEL1
; PTINIT
= ELEMCOUR
POIN INITIAL
; PTFIN
= ELEMCOUR
POIN FINAL
; SI (DIMGEO1 > 2);
NXI2
= EXTR CHN NX PTINIT
; NYI2
= EXTR CHN NY PTINIT
; NZI2
= EXTR CHN NZ PTINIT
; VN2 = NXI2 NYI2 NZI2 ;
TXI2
= EXTR CHT TX PTINIT
; TYI2
= EXTR CHT TY PTINIT
; TZI2
= EXTR CHT TZ PTINIT
; VT2 = TXI2 TYI2 TZI2 ;
BXI2
= EXTR CHB BX PTINIT
; BYI2
= EXTR CHB BY PTINIT
; BZI2
= EXTR CHB BZ PTINIT
; VB2 = BXI2 BYI2 BZI2 ;
NXI3
= EXTR CHN NX PTFIN
; NYI3
= EXTR CHN NY PTFIN
; NZI3
= EXTR CHN NZ PTFIN
; VN3 = NXI3 NYI3 NZI3 ;
TXI3
= EXTR CHT TX PTFIN
; TYI3
= EXTR CHT TY PTFIN
; TZI3
= EXTR CHT TZ PTFIN
; VT3 = TXI3 TYI3 TZI3 ;
BXI3
= EXTR CHB BX PTFIN
; BYI3
= EXTR CHB BY PTFIN
; BZI3
= EXTR CHB BZ PTFIN
; VB3 = BXI3 BYI3 BZI3 ;
* MESS 'XR =' XR 'YR =' YR ;
ALPHA = ATG YR XR ;
* MESS 'ALPHA =' ALPHA ;
RR = (ALPHA*PI/180.)/DS2 ;
SI (RR NEG 0.) ;
R = 1./RR ;
SINON ;
R = 1.E99 ;
FINSI ;
* MESS 'R =' R ;
* MESS 'XT =' XT 'YT =' YT ;
BETA = ATG YT XT ;
* MESS 'BETA =' BETA ;
TT = -1*(BETA*PI/180.)/DS2 ;
SI (TT NEG 0.) ;
T = 1./TT ;
SINON ;
T = 1.E99 ;
FINSI ;
* MESS 'T =' T ;
SINON;
NXI2
= EXTR CHN NX PTINIT
; NYI2
= EXTR CHN NY PTINIT
; VN2 = NXI2 NYI2 ;
TXI2
= EXTR CHT TX PTINIT
; TYI2
= EXTR CHT TY PTINIT
; VT2 = TXI2 TYI2 ;
BXI2
= EXTR CHB BX PTINIT
; BYI2
= EXTR CHB BY PTINIT
; VB2 = BXI2 BYI2 ;
NXI3
= EXTR CHN NX PTFIN
; NYI3
= EXTR CHN NY PTFIN
; VN3 = NXI3 NYI3 ;
TXI3
= EXTR CHT TX PTFIN
; TYI3
= EXTR CHT TY PTFIN
; VT3 = TXI3 TYI3 ;
BXI3
= EXTR CHB BX PTFIN
; BYI3
= EXTR CHB BY PTFIN
; VB3 = BXI3 BYI3 ;
* MESS 'XR =' XR 'YR =' YR ;
ALPHA = ATG YR XR ;
* MESS 'ALPHA =' ALPHA ;
RR = (ALPHA*PI/180.)/DS2 ;
SI (RR NEG 0.) ;
R = 1./RR ;
SINON ;
R = 1.E99 ;
FINSI ;
* MESS 'R =' R ;
BETA = 0.;
T = 0.;
FINSI;
SI (EGA NBEL1 1) ;
SINON ;
CHCOU
=CHCOU
ET (PROG R
) ; CHTOR
= CHTOR
ET ( PROG T
) ; FINSI;
FIN BOUCEL;
CHRT
= MANU CHML GEOFRE 'R' CHCOU 'T' CHTOR
TYPE GRAVITE
;FINPROC CHRT;
**** @CRCACY
DEBPROC @CRCACY XG*CHPOINT YG*CHPOINT ZG*CHPOINT ;
*
***************************************************************
* NICOLAS CURT 30032000Procedure de changement de repere.
* cartesiennes => cylindriques
*
***************************************************************
*
PHI = ATG YG XG ;
RHO = (XG*XG + (YG*YG))**0.5 ;
*
FINPROC RHO PHI ZG ;
**** @CRGMC
DEBPROC @CRGMC XG*CHPOINT YG*CHPOINT ZG*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Procedure de changement de repere. On passe du repere cartesien *
* global de la machine defini par son origine au centre du tore, *
* l'axe du tore dirige suivant Z et l'axe X situe dans le plan *
* median entre deux bobines au repere cartesien 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.<PLAN ;
SI (EGA IPLAN 'PHICONS') ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
SI (EGA IPLAN 'THECONS') ;
THETA0 = TAB1.<THETA0 ;
CP = TAB1.CENTRE_PLASMA ;
RP = TAB1.<RP ;
HP = TAB1.<HP ;
FINSI ;
SINON ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
ANGPHI0 = TAB1.<ANG_PHI0 ;
*------------------------------------
*
SI (DIM0 EGA 2) ;
FINSI ;
*
SI (((DIM0 EGA 2) ET (EGA IPLAN 'PHICONS')) OU (DIM0 EGA 3)) ;
* ---- en 3D ou en 2D pour la section Phi constant
*
* ---- Calcul des coordonnees du point P0, projection du point P1 de
* ---- l'objet dans le plan orthogonal a l'axe du tore en CT0.
A = X1 - X0 ;
B = Y1 - Y0 ;
C = Z1 - Z0 ;
*
SI (A EGA 0.) ;
SI (B EGA 0.) ;
XP0 = XP1 ;
YP0 = YP1 ;
ZP0 = Z0 ;
FINSI ;
SI (C EGA 0.) ;
XP0 = XP1 ;
YP0 = Y0 ;
ZP0 = ZP1 ;
FINSI ;
SI ((B NEG 0.) ET (C NEG 0.)) ;
XP0 = XP1 ;
YP0 = (-1.*B*C*ZP1 + (C*C*YP1) + (B*B*Y0) + (B*C*Z0)) /(B*B + (C*C)) ;
ZP0 = (B*ZP1 - (C*YP1) + (C*(Y0+Z0)))/(B+C);
FINSI ;
SINON ;
AUX1 = A / (A*A + (B*B) + (C*C)) ;
AUX2 = (B*B + (C*C)) / A ;
XP0 = AUX1 * (A*X0 + (B*Y0) + (C*Z0) + (AUX2*XP1) - (B*YP1) - (C*ZP1)) ;
YP0 = B * (XP0 - XP1) / A + YP1 ;
ZP0 = C * (XP0 - XP1) / A + ZP1 ;
FINSI ;
*
P0 = XP0 YP0 ZP0 ;
*
* ---- Rotation de la ligne (CT0,P0) pour l'aligner sur l'axe X
* ---- du repere global
LIG0 = CT0 D 1 P0 ;
LIG1
= LIG0
TOUR (-1.
*ANGPHI0
) CT0 CT1
;*
* ---- Calcul des 3 vecteurs unitaires du repere global
VEC1
= DIR1
/ (NORM DIR1
) ; VEC3
= DIR3
/ (NORM DIR3
) ;*
* ---- Changement de repere
*
XM1 = (A1 * XG) + (A2 * YG) + (A3 * ZG) ;
YM1 = (B1 * XG) + (B2 * YG) + (B3 * ZG) ;
ZM1 = (C1 * XG) + (C2 * YG) + (C3 * ZG) ;
*
XM = XM1 + X0 ;
YM = YM1 + Y0 ;
ZM = ZM1 + Z0 ;
*
SINON ;
*
* ---- en 2D pour une section a Theta constant
NORM_CP = (XCP*XCP + (YCP*YCP) + (ZCP*ZCP))**0.5 ;
ANG1 = ATG XCP YCP ;
*
* ---- Rotation de (90 + ANGPHI0) par rapport a l'axe Z
X1 = -1. * XG * (SIN ANGPHI0) + (YG * (COS ANGPHI0)) ;
Y1 = -1. * XG * (COS ANGPHI0) - (YG * (SIN ANGPHI0)) ;
Z1 = ZG ;
*
* ---- Changement d'origine vers le centre du plasma
X2 = X1 ;
Y2 = Y1 + RP + (NORM_CP * (COS THETA0)) ;
Z2 = Z1 - HP - (NORM_CP * (SIN THETA0)) ;
*
* ---- Rotation de -THETA0 par rapport a l'axe X
X3 = X2 ;
Y3 = Y2 * (COS THETA0) - (Z2 * (SIN THETA0)) ;
Z3 = Y2 * (SIN THETA0) + (Z2 * (COS THETA0)) ;
*
* ---- Rotation de ANG1 par rapport a l'axe Z
XM = X3 * (COS ANG1) + (Y3 * (SIN ANG1)) ;
YM = -1. * X3 * (SIN ANG1) + (Y3 * (COS ANG1)) ;
ZM = Z3 ;
*
FINSI ;
*
SI (DIM0 EGA 2) ;
FINSI ;
*
FINPROC XM YM ZM ;
**** @CRGTC
DEBPROC @CRGTC XG*CHPOINT YG*CHPOINT ZG*CHPOINT R*FLOTTANT H*FLOTTANT ;
*
***************************************************************
* Procedure de changement de repere. On passe des coordonnees *
* cartesiennes dans le repere global de la machine defini par *
* son origine au centre du tore, l'axe du tore dirige suivant *
* Z et l'axe X situe dans le plan median entre deux bobines *
* aux coordonnees pseudo-toroidales dans un repere defini par *
* son grand rayon R et la hauteur H de son centre par rapport *
* au plan equatorial. Alain MOAL (decembre 1995) *
***************************************************************
*mess ' ---> calling @CRGTC';
*
PHI = ATG YG XG ;
*
*
*---- Rotation de Phi par rapport a l'axe Z
*
X1 = (COS PHI) * XG + ((SIN PHI) * YG) ;
Y1 = -1. * (SIN PHI) * XG + ((COS PHI) * YG) ;
Z1 = ZG ;
*
*---- Changement d'origine vers le centre du nouveau repere
X2 = X1 - R ;
Y2 = Y1 ;
Z2 = Z1 - H ;
*
*---- Calcul de Theta et Rho
*
THETA = ATG Z2 X2 ;
RHO = (X2*X2 + (Z2*Z2))**0.5 ;
*mess ' ---> exiting @CRGTC';
FINPROC RHO THETA PHI ;
**** @CRIT
DEBPROC @
CRIT TAB1
*TABLE
;
MESS '
---------------------------------> calling @
CRIT'
; MESS ' Calcul du critere d interception par le code'
; *
* ========= PARAMETRES D'ENTREE
MAIL2 = TAB1.<S_OMBRANT;
ALPHA = TAB1.<INCIDENCE_MAXIMALE ;
PASB0 = TAB1.<PAS_AVEC_TEST ;
* CALCUL DES PARAMETRES GEOMETRIQUES ENTRANT DANS *
* LE CALCUL DE DELIM *
* ---- CAS 3D
SI ((VALEUR
DIME) EGA 3) ; C2MAX = 0. ;
typ = table ;
bootri = faux ;
booqua = faux ;
repeter bouty ntyp ;
i = &bouty ;
si (ega typ.i tri3);bootri = vrai; finsi ;
si (ega typ.i qua4);booqua = vrai; finsi ;
fin bouty ;
* ---- BOUCLE LES MAILLES TRIANGULAIRES *
si bootri ;
repeter boutri nbtri ;
i = &boutri ;
eli
= MAIL2
elem tri3 i
;* ---- CALCUL DES DISTANCES A UN DES SOMMETS DE LA MAILLE *
lid
= prog d1_2 d1_3 d3_2
;
* --- ON CONSIDERE LA MAILLE LA PLUS GRANDE
SI (C2 > C2MAX) ;
C2MAX = C2 ;
C1CO = C1 ;
FINSI ;
fin boutri ;
finsi ;
* ---- BOUCLE LES MAILLES QUADRANGULAIRES *
si booqua ;
repeter bouqua nbqua ;
i = &bouqua ;
eli
= MAIL2
elem qua4 i
;* ---- CALCUL DES DISTANCES ENTRE LES SOMMETS DE LA MAILLE *
* ---- CAS DES RECTANGLES *
SI ((d1_2 ega d3_4) et (d2_3 ega d4_1)) ;
* ---- CAS D'UNE MAILLE NON STRUCTUREE *
SINON ;
lid
= ORDONNER
(prog d1_2 d2_3 d3_4 d4_1
) ;
FINSI ;
* --- ON CONSIDERE LA MAILLE LA PLUS GRANDE
SI (C2 > C2MAX) ;
C2MAX = C2 ;
C1CO = C1 ;
FINSI ;
fin bouqua ;
finsi ;
* --- CALCUL DU CRITERE SELON LA FORMULE TROUVEE
delim = (((C2MAX**2)+(PASB0**2)+((C1CO*(SIN ALPHA))**2))**0.5) / 2. ;
* ---- CAS 2D (On considere le pas non projete => majore delim
SINON ;
CMAX = 0. ;
REPETER BOUSEG2 NSEG2 ;
I = &BOUSEG2 ;
ELI
= MAIL2
ELEM SEG2 I
;* ---- CALCUL DE LA DISTANCE ENTRE LES EXTREMITES DE LA MAILLE *
* ---- On stocke la distance la plus grande
SI (D1_2 > CMAX) ;
CMAX = D1_2 ;
FINSI ;
FIN BOUSEG2 ;
* --- CALCUL DU CRITERE SELON LA FORMULE TROUVEE
DELIM = (((PASB0**2)+((CMAX*(SIN ALPHA))**2))**0.5) / 2. ;
FINSI ;
MESS '
---------------------------------> exiting @
CRIT'
; FINPROC delim ;
**** @CRLMC
DEBPROC @CRLMC XL*CHPOINT YL*CHPOINT ZL*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Version amelioree de l'ancien @CRLMC rebaptise @ACRLM *
* 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. En 3D, L'axe X du *
* repere local est dans la direction toroidale. *
* en 2D cas PHICONS l'axe Z du repere local est l'axe toroidal *
* en 2D cas THECONS l'axe x du repere local est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
*
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
XL = ZL ;
ZL = ZL * 0.;
* ---- rotation
XL1 = XL * (COS ANG1) + (YL * (-1.) * (SIN ANG1));
YL1 = XL * (SIN ANG1) + (YL * (COS ANG1));
FINSI;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
* ---- rotation
XL1 = XL * (COS ANG1) + (YL * (-1.) * (SIN ANG1));
YL1 = XL * (SIN ANG1) + (YL * (COS ANG1));
FINSI;
* ---- changement d'origine du repere
XM = XL1 + XPTG ;
YM = YL1 + YPTG ;
ZM = YL1 * 0. ;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
XM1 = (A1 * XL) + (A2 * YL) + (A3 * ZL) ;
YM1 = (B1 * XL) + (B2 * YL) + (B3 * ZL) ;
ZM1 = (C1 * XL) + (C2 * YL) + (C3 * ZL) ;
*
XM = XM1 + X0 ;
YM = YM1 + Y0 ;
ZM = ZM1 + Z0 ;
*
FINSI ;
FINPROC XM YM ZM ;
**** @CRLTC
DEBPROC @CRLTC TAB1*TABLE XM*CHPOINT YM*CHPOINT ZM*CHPOINT R*FLOTTANT ;
*
***************************************************************
* Procedure de changement de repere, on passe des *
* coordonnees cartesiennes dans le repere de local de l'objet *
* XM YM ZM repere defini par TAB1.<RHO0, TAB1.<THETA0 et *
* TAB1.<RP aux coordonnees pseudo-toroidales defini par un *
* grand rayon donne R . Alain MOAL (mai 1995) *
***************************************************************
*
*--------------- VARIABLES D'ENTREE :
RHO0 = TAB1.<RHO0 ;
THETA0 = TAB1.<THETA0 ;
RP = TAB1.<RP ;
*------------------------------------
*
CT0 = COS THETA0 ;
ST0 = SIN THETA0 ;
MST0 = ST0 * -1. ;
*
*---- 1) rotation d'angle THETA0 autour de l'axe X
X1 = XM ;
Y1 = (YM * CT0) + (ZM * ST0) ;
Z1 = (YM * MST0) + (ZM * CT0) ;
*
*---- 2) changement d'origine vers le centre du tore,
*---- rotation de 180 degres autour de l'axe Z2 pour
*---- retrouver le repere global puis calcul de PHI
X2 = X1 ;
Y2 = Y1 - (RHO0 * CT0 + RP) ;
Z2 = Z1 + (RHO0 * ST0) ;
*
X2 = X2 * -1. ;
Y2 = Y2 * -1. ;
PHI = ATG (X2 * -1.) Y2 ;
*
*---- 3) rotation d'angle PHI autour de l'axe Z2
CPHI = COS PHI ;
SPHI = SIN PHI ;
MSPHI = SPHI * -1. ;
X3 = (X2 * CPHI) + (Y2 * SPHI) ;
Y3 = (X2 * MSPHI) + (Y2 * CPHI) ;
Z3 = Z2 ;
*
*---- 4) changement d'origine vers le centre du nouveau repere
X4 = X3 ;
Y4 = Y3 - R ;
Z4 = Z3 ;
*
*---- calcul de RHO et THETA
RHO = ((Y4 * Y4) + (Z4 * Z4))**0.5 ;
THETA = ATG Z4 Y4 ;
*
MESS '
>>>> @CRLTC : max and min of the angle PHI'
; *
FINPROC RHO THETA PHI ;
**** @CRMGC
DEBPROC @CRMGC XM*CHPOINT YM*CHPOINT ZM*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Procedure de changement de repere. On passe du repere cartesien *
* quelconque du maillage au repere cartesien global de la machine *
* defini par son origine au centre du tore, l'axe du tore dirige *
* suivant Z et l'axe X situe dans le plan median entre deux *
* bobines. Trois cas sont etudies : 3D, 2D en coupe Phi constant *
* et 2D en coupe Theta constant. Alain MOAL (Decembre 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
SI ((VALEUR
DIME) EGA 2) ; IPLAN = TAB1.<PLAN ;
SI (EGA IPLAN 'PHICONS') ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
SI (EGA IPLAN 'THECONS') ;
THETA0 = TAB1.<THETA0 ;
CP = TAB1.CENTRE_PLASMA ;
RP = TAB1.<RP ;
HP = TAB1.<HP ;
FINSI ;
SINON ;
CT0 = TAB1.<CENTRE_TORE ;
CT1 = TAB1.<POINT_SUR_AXE_TORE ;
P1 = TAB1.<POINT_SUR_OBJET ;
FINSI ;
ANGPHI0 = TAB1.<ANG_PHI0 ;
*------------------------------------
*
SI (DIM0 EGA 2) ;
FINSI ;
*
SI (((DIM0 EGA 2) ET (EGA IPLAN 'PHICONS')) OU (DIM0 EGA 3)) ;
* ---- en 3D ou en 2D pour la section Phi constant
*
* ---- Calcul des coordonnees du point P0, projection du point P1 de
* ---- l'objet dans le plan orthogonal a l'axe du tore en CT0.
A = X1 - X0 ;
B = Y1 - Y0 ;
C = Z1 - Z0 ;
*
SI (A EGA 0.) ;
SI (B EGA 0.);
XP0 = XP1 ;
YP0 = YP1 ;
ZP0 = Z0 ;
FINSI ;
SI (C EGA 0.) ;
XP0 = XP1 ;
YP0 = Y0 ;
ZP0 = ZP1 ;
FINSI ;
SI ((B NEG 0.) ET (C NEG 0.)) ;
XP0 = XP1 ;
YP0 = (-1.*B*C*ZP1 + (C*C*YP1) + (B*B*Y0) + (B*C*Z0)) /(B*B + (C*C)) ;
ZP0 = (B*ZP1 - (C*YP1) + (C*(Y0+Z0)))/(B+C);
FINSI ;
SINON ;
AUX1 = A / (A*A + (B*B) + (C*C)) ;
AUX2 = (B*B + (C*C)) / A ;
XP0 = AUX1 * (A*X0 + (B*Y0) + (C*Z0) + (AUX2*XP1) - (B*YP1) - (C*ZP1)) ;
YP0 = B * (XP0 - XP1) / A + YP1 ;
ZP0 = C * (XP0 - XP1) / A + ZP1 ;
FINSI ;
*
P0 = XP0 YP0 ZP0 ;
*
* ---- Rotation de la ligne (CT0,P0) pour l'aligner sur l'axe X
* ---- du repere global
LIG0 = CT0 D 1 P0 ;
LIG1
= LIG0
TOUR (-1.
*ANGPHI0
) CT0 CT1
;*
* ---- Calcul des 3 vecteurs unitaires du repere global
VEC1
= DIR1
/ (NORM DIR1
) ; VEC3
= DIR3
/ (NORM DIR3
) ;*
* ---- Changement de repere
*
XG1 = XM - X0 ;
YG1 = YM - Y0 ;
ZG1 = ZM - Z0 ;
*
XG = (A1 * XG1) + (B1 * YG1) + (C1 * ZG1) ;
YG = (A2 * XG1) + (B2 * YG1) + (C2 * ZG1) ;
ZG = (A3 * XG1) + (B3 * YG1) + (C3 * ZG1) ;
*
SINON ;
* ---- en 2D pour une section a Theta constant
*
NORM_CP = (XCP*XCP + (YCP*YCP) + (ZCP*ZCP))**0.5 ;
ANG1 = ATG XCP YCP ;
*
* ---- Rotation de - ANG1 par rapport a l'axe Z
X1 = XM * (COS ANG1) - (YM * (SIN ANG1)) ;
Y1 = XM * (SIN ANG1) + (YM * (COS ANG1)) ;
Z1 = ZM ;
*
* ---- Rotation de THETA0 par rapport a l'axe X
X2 = X1 ;
Y2 = Y1 * (COS THETA0) + (Z1 * (SIN THETA0)) ;
Z2 = -1. * Y1 * (SIN THETA0) + (Z1 * (COS THETA0)) ;
*
* ---- Changement d'origine vers le centre du tore
X3 = X2 ;
Y3 = Y2 - RP - (NORM_CP * (COS THETA0)) ;
Z3 = Z2 + HP + (NORM_CP * (SIN THETA0)) ;
*
* ---- Rotation de -(90 + ANGPHI0) par rapport a l'axe Z
XG = -1. * X3 * (SIN ANGPHI0) - (Y3 * (COS ANGPHI0)) ;
YG = X3 * (COS ANGPHI0) - (Y3 * (SIN ANGPHI0)) ;
ZG = Z3 ;
*
FINSI;
*
SI (DIM0 EGA 2) ;
FINSI ;
*
FINPROC XG YG ZG ;
**** @CRMLC
DEBPROC @CRMLC XM*CHPOINT YM*CHPOINT ZM*CHPOINT TAB1*TABLE ;
*
*******************************************************************
* Version amelioree de l'ancien @CRMLC rebaptise @ACRML *
* Procedure de changement de repere. On passe du repere cartesien *
* du maillage au repere cartesien local de l'objet modelise. Le *
* point de tangence au plasma est l'origine de ce repere et l'axe *
* l'axe Y final est dirige vers le centre du plasma. *
* en 3D l'axe x du repere local est donne par la direction *
* toroidale *
* en 2D cas PHICONS l'axe Z initial est l'axe toroidal *
* en 2D cas THECONS l'axe x initial est l'axe toroidal *
* Jacques SCHLOSSER et Alain MOAL (Decembre 1995) *
*******************************************************************
*
*--------------- VARIABLES D'ENTREE :
CP = TAB1.CENTRE_PLASMA ;
PTG = TAB1.PT_TGPLASMA ;
SI ((VALEUR
DIME) EGA 2) ; SI (EXISTE TAB1 <PLAN) ;
IPLAN = TAB1.<PLAN ;
SINON ;
ERRE '
>>>> TAB1.
<PLAN n existe pas'
; FINSI ;
SINON ;
SI (EXISTE TAB1 <DIR_TOROIDAL) ;
DIR1 = TAB1.<DIR_TOROIDAL ;
SINON ;
ERRE '
>>>> TAB1.
<DIR_TOROIDAL n existe pas'
; FINSI ;
FINSI ;
*------------------------------------
*
SI ((VALEUR
DIME) EGA 2) ; VECT0 = CP MOINS PTG ;
*
* ---- calcul de l'angle de rotation dans le plan XY
SI ((VX EGA 0.) ET (VY EGA 0.)) ;
ANG1 = 0. ;
SINON ;
ANG1 = -1.* (ATG VX VY) ;
FINSI ;
*
*
* ---- changement d'origine du repere
XM1 = XM - XPTG ;
YM1 = YM - YPTG ;
* ---- rotation pour aligner l'axe Y avec VECT0
SI (EGA IPLAN 'PHICONS');
* ---- Coupe 2D a Phi constant
XL = XM1 * (COS ANG1) + (YM1 * (SIN ANG1));
YL = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1));
ZL = XM * 0. ;
*
ZL = XL ;
XL = XL * 0.;
FINSI;
SI (EGA IPLAN 'THECONS');
* ---- Coupe 2D a Theta constant
XL = XM1 * (COS ANG1) + (YM1 * (SIN ANG1));
YL = XM1 * (-1.) * (SIN ANG1) + (YM1 * (COS ANG1));
ZL = XM * 0. ;
FINSI ;
*
SINON ;
*
VEC1
= DIR1
/ (NORM DIR1
) ; DIR2 = CP MOINS PTG ;
VEC2
= DIR2
/ (NORM DIR2
) ;*
*
XM1 = XM - X0 ;
YM1 = YM - Y0 ;
ZM1 = ZM - Z0 ;
*
XL = (A1 * XM1) + (B1 * YM1) + (C1 * ZM1) ;
YL = (A2 * XM1) + (B2 * YM1) + (C2 * ZM1) ;
ZL = (A3 * XM1) + (B3 * YM1) + (C3 * ZM1) ;
*
FINSI ;
FINPROC XL YL ZL ;
**** @CRTGC
DEBPROC @CRTGC RHO*CHPOINT THETA*CHPOINT PHI*CHPOINT R*FLOTTANT H*FLOTTANT ;
*
*****************************************************************
* Procedure de changement de repere. On passe des coordonnees *
* pseudo-toroidales dans un repere defini par son grand rayon R *
* et la hauteur H de son centre par rapport au plan equatorial *
* aux coordonnees cartesiennes dans le repere global de la *
* machine defini par son origine au centre du tore, l'axe du *
* tore dirige suivant Z et l'axe X situe dans le plan median *
* entre deux bobines. Alain MOAL (decembre 1995) *
*****************************************************************
*
X2 = RHO * (COS THETA) ;
Y2 = RHO * 0. ;
Z2 = RHO * (SIN THETA) ;
*
*---- Changement d'origine vers le centre du tore
X1 = X2 + R ;
Y1 = Y2 ;
Z1 = Z2 + H ;
*
*---- Rotation de - phi par rapport a l'axe Z
XG = (COS PHI) * X1 - ((SIN PHI) * Y1) ;
YG = (SIN PHI) * X1 + ((COS PHI) * Y1) ;
ZG = Z1 ;
*
FINPROC XG YG ZG ;
**** @CRTLC
DEBPROC @CRTLC R*FLOTTANT RHO*CHPOINT THETA*CHPOINT PHI*CHPOINT TAB1*TABLE ;
*
***************************************************************
* Procedure de changement de repere, on passe des coordonnees *
* pseudo-toroidales centrees sur un grand rayon R aux *
* coordonnees cartesiennes dans le repere de la structure *
* modelisee. Alain MOAL (mai 1995) *
***************************************************************
*
*--------------- VARIABLES D'ENTREE :
RHO0 = TAB1.<RHO0 ;
THETA0 = TAB1.<THETA0 ;
RP = TAB1.<RP ;
*------------------------------------
*
CT0 = COS THETA0 ;
ST0 = SIN THETA0 ;
MST0= ST0 * -1. ;
CPHI = COS PHI ;
SPHI = SIN PHI ;
MSPHI = SPHI * -1. ;
*
X4 = RHO * 0. ;
Y4 = RHO * (COS THETA) ;
Z4 = RHO * (SIN THETA) ;
*
*---- 1) changement d'origine vers le centre du tore
X3 = X4 ;
Y3 = Y4 + R ;
Z3 = Z4 ;
*
*---- 2) rotation d'angle - PHI autour de l'axe Z3
* puis rotation de - 180 degres autour de l'axe Z2
X2 = (X3 * CPHI) + (Y3 * MSPHI) ;
Y2 = (X3 * SPHI) + (Y3 * CPHI) ;
Z2 = Z3 ;
*
X2 = X2 * -1. ;
Y2 = Y2 * -1. ;
*
*---- 3) changement d'origine vers le centre d'objet
X1 = X2 ;
Y1 = Y2 + RP + (RHO0 * CT0) ;
Z1 = Z2 - (RHO0 * ST0) ;
*
*---- 4) rotation d'angle - THETA0 autour de l'axe X1
XP = X1 ;
YP = (Y1 * CT0) + (Z1 * MST0) ;
ZP = (Y1 * ST0) + (Z1 * CT0) ;
*
FINPROC XP YP ZP ;
**** @CRTTC
DEBPROC @CRTTC R1*FLOTTANT RHO1*CHPOINT THETA1*CHPOINT PHI1*CHPOINT R2*FLOTTANT ;
*
***************************************************************
* Procedure de changement de repere. On passe d'un repere *
* pseudo-toroidal defini par son grand rayon R1 a un autre *
* repere pseudo-toroidal defini par son grand rayon R2. Ces *
* deux reperes ont la meme orientation toroidale: Phi1 = Phi2 *
* Alain MOAL (juin 1995) *
***************************************************************
*
RHO2 = RHO1**2 + ((R1 - R2)**2) ;
RHO2 = RHO2 + (RHO1*(R1 - R2)*(COS THETA1)*2.) ;
RHO2 = RHO2**0.5 ;
*
AUX1 = RHO1 * (SIN THETA1) ;
AUX2 = RHO1 * (COS THETA1) - R2 + R1 ;
THETA2 = ATG AUX1 AUX2 ;
*
PHI2 = PHI1 ;
*
FINPROC RHO2 THETA2 PHI2 ;
**** @CSHIFT
DEBPROC @CSHIFT RHOM*CHPOINT THETAM*CHPOINT PHIM*CHPOINT IMETHOD*ENTIER TAB1*TABLE ;
*
***************************************************************
* Procedure de calcul des grand et petit rayons du "cercle de *
* Shafranov" en chaque point M defini dans le repere centre *
* sur le plasma. On calcule de plus l'angle theta dans le *
* repere centre sur le cercle calcule. *
* Deux methodes sont utilisees pour calculer le grand rayon. *
* Alain MOAL (aout-sept 1995) *
***************************************************************
*
*--------------- VARIABLES D'ENTREE :
RP = TAB1.<RP ;
RHO0 = TAB1.<RHO0 ;
LAMB = TAB1.<LAMB ;
*------------------------------------
*
SI ((NON (IMETHOD EGA 1)) ET (NON (IMETHOD EGA 2))) ;
ERRE '
>>>> @CSHIFT : YOU MUST CHOOSE THE METHOD
1 OR
2'
; FINSI ;
*
*---- variables auxiliaires
A = ((RHOM/RHO0)**-2) + 1. ;
A = A * (LAMB + 0.5) ;
A = A + (LOG (RHOM/RHO0)) - 1. ;
B = LOG (RHOM/RHO0) ;
B = B - ((((RHOM/RHO0)**-2) - 1.) * (LAMB + 0.5)) ;
STM = SIN THETAM ;
CTM = COS THETAM ;
AUX1 = 1. + LAMB ;
AUX2 = RHOM * CTM + RP ;
AUX3 = RHOM * STM ;
*
*---- TEST : calcul du decentrement par la methode de Shafranov
DELT0 = B * (RHOM**2) / (2.*RP) ;
MESS '
*** TEST : DELT0
*** '
; LIST DELT0
; *---- FIN TEST
*
SI (IMETHOD EGA 1) ;
* ---- calcul du grand rayon
*
* RM 08/04/97 J'enleve STM qui figure a la fois au numerateur et au denominateur
*dans l'expression definie par les trois lignes suivantes
* Il provoque une division par 0 quand des points du maillage sont dans le plan
* equatorial
* GRANDR = RHOM * RP * CTM * (A - B) ;
GRANDR = GRANDR + (2.*(RP**2) - (B*(RHOM**2))) ;
GRANDR = GRANDR / (2.*RP + (RHOM*CTM*(A - B))) ;
FINSI ;
*
SI (IMETHOD EGA 2) ;
DELTA = ((AUX2**2) * (AUX1**2)) - ((AUX1 + 1.) * ( ((AUX2**2) + (AUX3**2)) * AUX1 - (RP**2) - ((RHO0**2) * AUX1))) ;
*
* ---- deux cercles possibles
GRANDR1 = ((AUX2 * AUX1) + (DELTA**0.5))/(AUX1 + 1.) ;
GRANDR2 = ((AUX2 * AUX1) - (DELTA**0.5))/(AUX1 + 1.) ;
*
* ---- choix du bon cercle
SI ((COS THETAM) >EG 0.) ;
GRANDR = GRANDR2 ;
SINON ;
GRANDR = GRANDR1 ;
FINSI ;
FINSI ;
*
*---- calcul du petit rayon
PETITR = ((RHOM*CTM+RP-GRANDR)**2 + ((RHOM*STM)**2))**0.5 ;
*
*--- calcul de theta dans le repere centre sur le cercle calcule
THETAR = ATG (RHOM * STM) (RHOM * CTM + RP - GRANDR) ;
*
*---- test (methode 1)
*AM*TERME1 = PETITR * LAMB * (COS THETAR) / GRANDR ;
*AM*TERME2 = (STM**2 * B + ((CTM**2) * A))/(2.*RP) ;
*AM*TERME2 = TERME2 + (CTM / RHOM) ;
*AM*TERME2 = TERME2 * (RP - GRANDR);
*AM*TERME2 = TERME2 + (RHOM * CTM * A / (2.*RP)) ;
*AM*ERREUR0 = (ABS ((TERME1-TERME2)/TERME2)) ;
*AM*MESS 'TEST'; LIST TERME1; LIST TERME2; LIST ERREUR0;
*
FINPROC GRANDR PETITR THETAR;
**** @CVECT
DEBPROC @CVECT XV
*CHPOINT YV
*CHPOINT ZV
*CHPOINT MAIL0
*MAILLAGE COUL0
*MOT AMPLI0
/FLOTTANT
; *
**************************************************************
* Procedure de creation d'un objet de type vecteur a partir *
* des composantes d'un champ de vecteurs. *
* Si le facteur d'amplification pour visualiser un champ de *
* vecteur sur une geometrie n'est pas donne,il est adapte *
* aux dimensions geometriques du probleme. *
* Alain MOAL (juillet 1995) *
**************************************************************
*
SI ((VALEUR
DIME) EGA 2) ; ZM = XM * 0. ;
SINON ;
FINSI ;
*
SI (NON (EXISTE AMPLI0)) ;
* ---- norme du vecteur
VECNORM = ((XV * XV) + (YV * YV) + (ZV * ZV))**0.5 ;
* RM 16.01.03
@listmm VECNORM ;
*
* ---- 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 ((VALEUR
DIME) EGA 2) ; LONGCAR
= MINI (PROG LONGCAR1 LONGCAR2
) ; SINON ;
LONGCAR
= MINI (PROG LONGCAR1 LONGCAR2 LONGCAR3
) ; FINSI ;
*
AMPLI0
= LONGCAR
/ (MAXI VECNORM
) / 3.
;*AM* AMPLI0 = LONGCAR / (MAXI VECNORM) ;
*AM* AMPLI0 = 2. * LONGCAR / (MAXI VECNORM) ;
FINSI ;
*
SI ((VALEUR
DIME) EGA 2) ;
*CAST94* CHV1 = (NOMC UX XV) ET (NOMC UY YV) ;
VECT1
= VECT CHV1 AMPLI0 UX UY COUL0
;SINON ;
*CAST94* CHV1 = (NOMC UX XV) ET (NOMC UY YV) ET (NOMC UZ ZV) ;
VECT1
= VECT CHV1 AMPLI0 UX UY UZ COUL0
;FINSI ;
FINPROC VECT1 ;
**** ARBRE derniere modif 16/04/91
DEBPROC ARBRE MAILSEG*MAILLAGE IMEN*ENTIER;
* determination du maillage des aretes de la surface de separation
* en seg2 sera a changer si p2 au lieu de p1
* HDL CHPOINT VIDE SUR DFCAN EN ENTREE
MAILSEG
= MAILSEG
COUL BLAN
; IP= 0;
MESS '
************************** '
; * TEMPS ;
MESS '
************************** '
; MESS ' NBRE DE POINTS DE LA SURFACE DE SEPARATION ' NPB
; MESS ' NBRE D ELEMENTS DE LA SURFACE DE SEPARATION '
(MAILSEG
NBEL); IPASS= 0;IMA= 0 ;
REPETER BOUC1 ;
IPASS= IPASS + 1;IMA= IMA + 1 ;
ALBERT
= MAILSEG
ELEM BLAN
; ITUR= 0;
REPETER BOUCON ;
ITUR= ITUR + 1 ;
P1= ALBERT POINT ITUR;
SEGBL
= ALBERT
ELEM 'APPUYE' LARGEMENT P1
;NBL
= SEGBL
NBEL ; SEGPT
= MAILSEG
ELEM 'APPUYE' LARGEMENT P1
;NBT
= SEGPT
NBEL ; SI (( NBL < NBT) OU ('EGA' IPASS 1)) ; QUITTER BOUCON ;FINSI ;
FIN BOUCON ;
SI (IPASS > 1);
* TRAC OEIL ((SEGBL COUL ROUG)
* ET (MAILSEG ELEM BLAN) ET (MAILSEG ELEM VERT)) NOEUDS;
FINSI ;
IBL= 0 ;
* on ordonne les segments connectes a P1 sens P1 PN
REPETER BOUC0 NBL ;
IBL= IBL + 1 ;
SSS
= SEGBL
ELEM IBL
; 1P
= SSS POINT INITIAL
;2P
= SSS POINT FINAL
; SI ( 1P
NEG P1
) ; SSS
= (INVE SSS
) ; FINSI ; SI (IBL EGA 1 ) ; SSI= SSS;SINON ;
SSI = SSI ET SSS ; FINSI ;
2P= SSS POINT FINAL ;
FIN BOUC0 ;
SEGBL= SSI ;
* SI NBL > 1 ON VA ELIMINER LES DOUBLES DE SEGBL
IA=0 ;
SI ( NBL
EGA 1 );SEG1
= (SEGBL
ELEM 1 ) COUL VERT
; 2P= SEG1 POINT FINAL ;
MAILSEG
= ( DIFF MAILSEG SEG1
) ET SEG1
; FINSI ;
SI ( NBL > 1 ) ;
REPETER BOUC2 (NBL - 1 );
IA= IA + 1 ;
PP1= SEG1 POINT FINAL ;
I3= IA + 1 ;
REPETER BOUC3 ;
SI ( I3 > NBL ) QUITTER BOUC3 ; FINSI ;
PP2=SEG2 POINT FINAL;
SI ( PP1 EGA PP2 ) ;
MAILSEG
= (DIFF MAILSEG SEG2
);* MESS ' ELIMINATION DU NO ' I3 ;
FINSI ;
I3= I3 + 1;
FIN BOUC3 ;
MAILSEG
= ( DIFF MAILSEG SEG1
) ET SEG1
; FIN BOUC2 ;
FINSI ;
* TRAC OEIL MAILSEG ;
SI ( N1 EGA N2 ) ; QUITTER BOUC1 ; FINSI ;
SI ( EGA IMA IMEN) ; MENAGE ;IMA = 0 ; FINSI ;
FIN BOUC1 ;
SAUTER 2 LIGNES ;
MESS ' NB D ARETES AYANT SERVI A L INTEGRATION ' N2
; MESS '
************************** '
; *TEMPS ;
MAILSEG
= MAILSEG
ELEM VERT
;* HDL= IN_MINI (MAILSEG ELEM VERT ) TABHS ORIG B_ANTI ;
FINPROC MAILSEG;
**** FL_HS derniere modif 16/04/91
DEBPROC FL_HS DFCANT
*MAILLAGE TABHS
*TABLE TYEL
*MOT OBJV
*MMODEL
; * chamelem des projections de hs sur les normales des elements
* au cdg
HPX
=REDU (TABHS.1
) DFCANT
; HPY
=REDU (TABHS.2
) DFCANT
; HPZ
=REDU (TABHS.3
) DFCANT
; IP= 0;
OB1= DFCANT AFFECT (MODELE STANDARD ) TYEL ;
* calcul des moyennes sur l element
HSXM = PRCH HPX OB1 'GRAVITE' ;
HSYM = PRCH HPY OB1 'GRAVITE' ;
HSZM = PRCH HPZ OB1 'GRAVITE' ;
HNMP
= MANU CHAM OB1 'GRAVITE' SCAL
0.
;*
IP= 0 ;
IMENA= 0 ;
REPETER BOUCEL BBNEL ;
IMENA= IMENA + 1 ;
IP
=IP
+ 1 ; TOTO
= DFCANT
ELEM IP
; ITOT
= CHAN POI1 TOTO
; T1= ITOT POINT 1 ;T2= ITOT POINT 2 ; T3= ITOT POINT 3 ;
* normale a l element
V1= T2 MOINS T1 ; V2= T3 MOINS T1 ; NNN= V1 PVECT V2 ;
HSXE
= EXTR HSXM SCAL
1 IP
1 ; HSYE
= EXTR HSYM SCAL
1 IP
1 ; HSZE
= EXTR HSZM SCAL
1 IP
1 ; VPROJ = (HSXE * CVX ) + (HSYE * CVY ) + (HSZE * CVZ) ;
FLHS1
= FLHS
+ ( FLUX OBJV VPROJ TOTO
) ; SI ( EGA IMENA
50 ) ; MESS ' menage '
; MENAGE ; IMENA= 0 ; FINSI ;
FIN BOUCEL ;
FINPROC FLHS ;
**** IN_MINI derniere modif 16/04/91
'
DEBPROC'
IN_MINI FCAN
*'MAILLAGE' TABHS
*TABLE ORIG
*POINT B_ANTI
*MAILLAGE
;* integration de v par minimisation fonctionnelle
* en entree maillage frontiere cote phi et hs sur ce maiilage
* en sortie V(b)= phi(b)-psi(b) chpoint sur fcan
* avec psi(p1) = phi(p1)
HX=TABHS.1;HY=TABHS.2;HZ=TABHS.3;
I= 0 ;
REPE BLOCALC
(NBEL FCAN
); I= I + 1 ;
HX1
= EXTR HX SCAL P1
; HX2
= EXTR HX SCAL P2
; HY1
= EXTR HY SCAL P1
; HY2
= EXTR HY SCAL P2
; HZ1
= EXTR HZ SCAL P1
; HZ2
= EXTR HZ SCAL P2
; HMOY =(( HX1 + HX2) / 2.) ( ( HY1 + HY2) / 2.) ((HZ1 + HZ2) / 2.);
* si ( ega nbi 3 ) ;
* p3= segcou point 3 ;
* hmx= extr hx scal p3 ;
* hmy= extr hy scal p3 ;
* hmz= extr hz scal p3 ;
* hmil= ( hmx hmy hmz ) * 4. ;
* hmoy =( hmoy / 3. ) + ( hmil / 6. )
* finsi ;
VL
= P2 MOINS P1
;DL
= NORM VL
;VL
=VL
/ DL
; DV = (VL PSCAL HMOY ) ;DVI= DV * -1.;
TI= 1. / DL ;IT= -1. * TI ;
SI (EGA I 1);
RIGT = RIGEL ;
HTH = HH ;
SINON ;
RIGT1= RIGT ET RIGEL;
HTH1= HTH ET HH ;
DETR RIGT
;RIGT
= RIGT1
; DETR HTH
;HTH
= HTH1
; FINSI ;
FIN BLOCALC ;
TUTU= BLOQUE ORIG T;
HHHH= RESOU (RIGT ET TUTU ET TITI ) HTH ;
HHHH
= (ENLEVER HHHH LX
) NOMC 'SCAL'
; FINPROC HHHH ;
**** ARBRE_IN derniere modif 16/04/91
DEBPROC ARBRE_IN DFCAN*MAILLAGE TABHS*TABLE ORIG*POINT ;
* CALCUL DE L ARBORESCENCE ET INTEGRATION DE HS.DL
* cette methode amene des differences suivant le chemin choisi
* il vaut mieux utiliser l autre ( minimisation)
* DFCAN SURFACE DE SEPARATION
* HDL CHPOINT VIDE SUR DFCAN EN ENTREE
DFCAN1
= DFCAN
ELEM QUA4
;NELSURF1
= DFCAN1
NBEL; DFCAN2
= DFCAN
ELEM TRI3
; NELSURF2
= DFCAN2
NBEL; I= 1 ;
REPE BOUCSEG1 ( NELSURF1 - 1 );
I = I + 1;
MAILSEG
= MAILSEG
ET (CONT (DFCAN1
ELEM I
)); FIN BOUCSEG1;
I= 0 ;
REPE BOUCSEG2 NELSURF2;
I = I + 1;
MAILSEG
= MAILSEG
ET (CONT (DFCAN2
ELEM I
)); FIN BOUCSEG2;
IP= 0;
MESS '
************************** '
; *TEMPS ;
MESS '
************************** '
; MESS ' NBRE DE POINTS DE LA SURFACE DE SEPARATION ' NPB
; MESS ' NBRE D ELEMENTS DE LA SURFACE DE SEPARATION '
(MAILSEG
NBEL); IPASS= 0;
REPETER BOUC1 ;
IPASS= IPASS + 1;
ALBERT
= MAILSEG
ELEM BLAN
; ITUR= 0;
REPETER BOUCON ;
ITUR= ITUR + 1 ;
P1= ALBERT POINT ITUR;
SEGBL
= ALBERT
ELEM 'APPUYE' LARGEMENT P1
;NBL
= SEGBL
NBEL ; SEGPT
= MAILSEG
ELEM 'APPUYE' LARGEMENT P1
;NBT
= SEGPT
NBEL ; SI (( NBL < NBT) OU ('EGA' IPASS 1)) ; QUITTER BOUCON ;FINSI ;
FIN BOUCON ;
SI (IPASS > 1);
* TRAC OEIL ((SEGBL COUL ROUG)
* ET (MAILSEG ELEM BLAN) ET (MAILSEG ELEM VERT)) NOEUDS;
FINSI ;
IBL= 0 ;
* on ordonne les segments connectes a P1 sens P1 PN
REPETER BOUC0 NBL ;
IBL= IBL + 1 ;
SSS
= SEGBL
ELEM IBL
; 1P
= SSS POINT INITIAL
;2P
= SSS POINT FINAL
; SI ( 1P
NEG P1
) ; SSS
= (INVE SSS
) ; FINSI ; SI (IBL EGA 1 ) ; SSI= SSS;SINON ;
SSI1
= SSI
ET SSS
;DETR SSI
; SSI
= SSI1
; FINSI ;
2P
= SSS POINT FINAL
;DETR SSS
; FIN BOUC0 ;
SEGBL= SSI ;
* SI NBL > 1 ON VA ELIMINER LES DOUBLES DE SEGBL
IA=0 ;
SI ( NBL
EGA 1 );SEG1
= (SEGBL
ELEM 1 ) COUL VERT
; 2P= SEG1 POINT FINAL ;
SI (( EGA VV 0.) ET (2P NEG ORIG));
HDL=INT_BIOT HDL P1 2P ORIG TABHS ;
FINSI ;
MAILSEG
= ( DIFF MAILSEG SEG1
) ET SEG1
; FINSI ;
SI ( NBL > 1 ) ;
REPETER BOUC2 (NBL - 1 );
IA= IA + 1 ;
PP1= SEG1 POINT FINAL ;
SI ((EGA VV 0.) ET (PP1 NEG ORIG));
HDL=INT_BIOT HDL P1 PP1 ORIG TABHS ;
FINSI ;
I3= IA + 1 ;
REPETER BOUC3 ;
SI ( I3 > NBL ) QUITTER BOUC3 ; FINSI ;
PP2=SEG2 POINT FINAL;
SI ( PP1 EGA PP2 ) ;
MAILSEG1
= (DIFF MAILSEG SEG2
);DETR MAILSEG
;MAILSEG
= MAILSEG1
;* MESS ' ELIMINATION DU NO ' I3 ;
FINSI ;
*tc mise en commentaire du finsi ci dessous
* FINSI;
I3= I3 + 1;
FIN BOUC3 ;
MAILSEG1
= ( DIFF MAILSEG SEG1
) ET SEG1
; DETR MAILSEG
; MAILSEG
= MAILSE1
; FIN BOUC2 ;
FINSI ;
* TRAC OEIL MAILSEG ;
SI ( N1 EGA N2 ) ; QUITTER BOUC1 ; FINSI ;
FIN BOUC1 ;
SAUTER 2 LIGNES ;
MESS ' NB D ARETES AYANT SERVI A L INTEGRATION ' N2
; MESS '
************************** '
; *TEMPS ;
MESS '
************************** '
; * sortie hdl chpoint de V
FINPROC HDL ;
**** INT_BIOT derniere modif 16/04/91
DEBPROC INT_BIOT HDL*CHPOINT 1P*POINT 2P*POINT ORIG*POINT TABHS*TABLE ;
* integration de ht.dl sur le long des aretes sur la surface de
* separation
HSX= TABHS.1 ;HSY=TABHS.2;HSZ= TABHS.3 ;
* HDL EST LE STOCKAGE DU RESULTAT
* integrale sur le segment
XHS1
= EXTR HSX SCAL 1P
;YHS1
= EXTR HSY SCAL 1P
; ZHS1
= EXTR HSZ SCAL 1P
; XHS2
= EXTR HSX SCAL 2P
;YHS2
= EXTR HSY SCAL 2P
; ZHS2
= EXTR HSZ SCAL 2P
; XHM= (XHS1 + XHS2 ) / 2.;
YHM= (YHS1 + YHS2 ) / 2.;
ZHM= (ZHS1 + ZHS2 ) / 2.;
DL= 2P MOINS 1P ;
INTSEG
=(XHM
* (COOR 1 DL
)) + (YHM
* (COOR 2 DL
)) +(ZHM
* (COOR 3 DL
)); VINT = VAL + INTSEG ;
*LIST (1P ET 2P);
*MESS 'VAL1P INTSEG VINT2P ' VAL INTSEG VINT ;
* le cas ou 2p est ORIG a ete exclu a l exterieur
HDL
= HDL
+ ( MANU CHPO 2P
1 SCAL VINT
) ; FINPROC HDL;
**** SAUT_POT derniere modif 16/04/91
DEBPROC SAUT_POT FCAN*MAILLAGE FFER*MAILLAGE LLLL*CHPOINT ORIG*POINT ;
* calcul du saut de potentiel
***************************************************************
* relations entre points homologues de la separation
* orig est le point ou psi=phi=0.
* attention a la coherence avec la condition limite
***************************************************************
IK= 0 ;ILO= 0 ;
REPETER BLOC1 NNN;
IK= IK + 1 ;
IP=FCAN POINT IK ;IQ= FFER POINT PROCHE IP ;
SI (NEG IP ORIG) ;
RELP
= RELA 1.
T IP
- 1.
T IQ
; DEPIP
= DEPIMP RELP
(EXTR LLLL SCAL IP
); SI (EGA ILO 0 ) ;
REL1=RELP; FDEPI= DEPIP ;
ILO= 1 ;
SINON ;
REL2= REL1 ET RELP ;
FDEPI2= FDEPI ET DEPIP ;
DETR REL1
; REL1
= REL2
; DETR FDEPI
; FDEPI
= FDEPI2
; FINSI;
FINSI;
FIN BLOC1 ;
FINPROC REL1 FDEPI;
**** B_ARETES derniere modif 16/04/91
DEBPROC B_ARETES SEP_PHI*MAILLAGE ;
* reduit un maillage surfacique p1 a ses aretes
* en conservant les doubles
DFCAN1
= SEP_PHI
ELEM QUA4
;NBQU
= DFCAN1
NBEL ;
SI (NEG NBU NBQU);
DFCAN2
= SEP_PHI
ELEM TRI3
; NTRI
= DFCAN2
NBEL; I= 0 ;
REPE BOUCSEGT NTRI;
I = I + 1;
MAILSEG
= MAILSEG
ET (CONT (DFCAN2
ELEM I
)); FIN BOUCSEGT;
FINSI ;
I= 1 ;
REPE BOUCSEGQ (NBQU - 1 );
I = I + 1;
MAILSEG
= MAILSEG
ET (CONT (DFCAN1
ELEM I
)); FIN BOUCSEGQ;
TITRE 'MAILSEG '
(MAILSEG
NBEL );* TRAC OEIL MAILSEG QUAL ;
FINPROC MAILSEG ;
*
**** LIRBIOT derniere modif 16/04/91
DEBPROC LIRBIOT SEP_PHI*MAILLAGE MU0*FLOTTANT ;
***************************************************************
* RECUP BIOT ET SAVART SUR FRONTIERE
* genere en exterieur la surface frontiere a ete sortie pas sort
* noopt precedement et a servi a calculer hs
* on recupere le tout coordonnees et hs et on elmine pour etre sur
* du support (ordre )
***************************************************************
IMET= 2 ;
SI ( EGA IMET 1);
OPTION ACQUERIR 9 ;
ACQUERIR HX*LISTREEL NFN HY*LISTREEL NFN HZ*LISTREEL NFN ;
HS
= MANU CHPO SEP_PHI
3 'HX' HX 'HY' HY 'HZ' HZ
; SINON ;
* AUTRE FACON A ESSAYER
*
HS
= MANU CHPO SEP_PHI
3 'HX' PPRO 'HY' PPRO 'HZ' PPRO
; OPTION ACQUERIR 8 ;
IP= 0;
REPETER BOUCA NFN ;
ACQUERIR X*FLOTTANT Y*FLOTTANT Z*FLOTTANT HX*FLOTTANT HY*FLOTTANT HZ*FLOTTANT ;
* X= EXTR VALP 1 ;Y= EXTR VALP 2 ; Z= EXTR VALP 3;
* HX= EXTR VALP 4 ;HY= EXTR VALP 5 ; HZ= EXTR VALP 6;
P1= X Y Z ; PT= SEP_PHI POINT PROCHE P1 ;
HP
= MANU CHPO PT
3 'HX' HX 'HY' HY 'HZ' HZ
; HS2
= HS
+ HP
; DETR HS
; HS
= HS2
;*tc mise en commentaire du finsi cidessous
* FINSI ;
*
FIN BOUCA;
FINSI;
* provisoire chambob donne B on divise par mu0
HS= HS / MU0 ;
* ELIM .1 SEP_PHI PT ;
FINPROC HS ;
**** FOR_CONT derniere modif 16/04/91
DEBPROC FOR_CONT CCONT
*MAILLAGE SOL1
*CHPOINT COURI
*FLOTTANT
; * calcul des forces par integrale de contour
OBSEG = CCONT AFFECT ( MODELE STANDARD ) SEG2 ;
AA = PRCH OBSEG SOL1 'GRAVITE';
IEL = 0 ;SOMX = 0. ; SOMY = 0. ;SMM = 0. ;
*
REPETER BOUC NBSEG ;
IEL
= IEL
+ 1 ; SEGC
= CCONT
ELEM IEL
; I1 = SEGC POINT INITIAL ; I2 = SEGC POINT FINAL ;
X1
= COOR 1 I1
; X2
= COOR 1 I2
; RX
= ( X1
+ X2
) / 2.
; Y1
= COOR 2 I1
; Y2
= COOR 2 I2
; RY
= ( Y1
+ Y2
) / 2.
; DX = X2 - X1 ; DY = Y2 - Y1 ;
AME
= EXTR AA 'SCAL'
1 IEL
1 ; SOMX = SOMX + ( AME * DX) ;
SOMY = SOMY + ( AME * DY) ;
MOMM = (RX * DX) + (RY * DY ) ;
SMM= SMM + ( AME * MOMM ) ;
FIN BOUC ;
*
FXX = COURI * SOMY ; FYY = -1. * COURI * SOMX ;
MOMT = -1. * COURI * SMM ;
RFORC
= MANU CHPO CDG1
2 'FX' FXX 'FY' FYY
; FINPROC RFORC SMM ;
**** FORBLOC derniere modif 16/04/91
DEBPROC FORBLOC BLOC
*MAILLAGE BX
*CHAMELEM BY
*CHAMELEM OBJO
*MMODEL
COUR*FLOTTANT
; * bobi maillage non complexe
* bb champ induction AUX CDG du maillage reduit
* integration de j vectoriel b sur les elements resultats aux cdg
* sort un champ par points aux cdgs dans rfor
* sort un champ par point aux noeuds dans rpt
IP= 0 ;IPAS= 0 ;
REPETER BOUE NNN ;
IPAS= IPAS + 1 ;
IP
= IP
+ 1 ; IEL
=BLOC
ELEM IP
;CDG
= BARY IEL
; FEX
= (EXTR BY 'SCAL'
1 IP
1 ) * EL_SUR
;FEX
= FEX
* -1.
; FEY
= (EXTR BX 'SCAL'
1 IP
1 ) * EL_SUR
; R_F
= MANU CHPO CDG
2 'FX' FEX 'FY' FEY
; SI ( EGA IP 1) ;RFOR = R_F ;RPX = RFXP ;RPY=RFYP ;
SINON ;
RFOR = RFOR + R_F ;RPX= RPX + RFXP ; RPY= RPY + RFYP ;
FINSI ;
* SI ( EGA IPAS 10 ) ;MESS 'menage';MENAGE ; IPAS = 0 ; FINSI ;
RPT= RPX + RPY ;
FIN BOUE ;
*
FINPROC RFOR RPT ;
**** INDUCTIO derniere modif fevrier/92
******************************************************************
DEBPROC INDUCTIO GEO
*MAILLAGE SOL1
*CHPOINT AXI
*LOGIQUE
; ****************************************************************
* 2D UNIQUEMENT
* calcul; de l induction en potentiel vecteur *
* GEO maillage sur lequel on recherche B *
* SOL1 solution en potentiel vecteur *
* AXI logique vrai si axi *
****************************************************************
OBJ0
= GEO
MODE THERMIQUE ISOTROPE
; GRA_ELR
= GRAD OBJ0 SOL1
; SI ( AXI ) ;
IMET = 2 ;
SI ( EGA IMET 1 ) ;
1SRAY = MUAXI2 GEO 1. 1 ;
FINSI ;
SI ( EGA IMET 2 ) ;
1SRAY = MUAXI2 GEO 1. 2 ;
FINSI ;
mess '
* axisymetrique methode 'imet
; BX
= ((EXCO DERIV 'T,Y'
) * 1SRAY
* -1.
) NOMC 'BX'
; BY
= ((EXCO DERIV 'T,X'
) * 1SRAY
) NOMC 'BY'
; SINON ;
BY
= (( EXCO DERIV 'T,X'
)* -1.
) NOMC 'BY'
; FINSI ;
BTOT = BX + BY ;
FINPROC BTOT ;
**** POT_VECT derniere modif 1/03/92
********************************************************************
* MAGETOSTATIQUE 2D EN POTENTIEL VECTEUR *
********************************************************************
* MATAB TABLE D ENTREE CONTENANT
* MATAB.'MU0' PERMEABILITE DE L AIR (PAR DEFAUT UNITE METRE *
* MATAB.'MUREL' MU RELATIF DEPART 2900 PAR DEFAUT *
* MATAB.'AIR' PARTIE AIR NON REDUITE A UN SUPER ELEMENT *
* MATAB.'FER' FER *
* MATAB.'MAITRES' POINT MAITRES SI SUPER ELEMENT *
* MATAB.'AIRSUP' PARTIE AIR TRAITEE EN SUPER (NON OBLIGATOIRE)*
* MATAB.'ENCS ' LIMITE A A NULL SUR LE SUPER ELEMENT (MAILL) *
* MATAB.'BLOCAGE' LIMITE A A NULL SUR LA ZONE STANDARD( MAILL) *
* MATAB.'COUR' TABLE DE TABLES CONTENANT LA DESCRIPTION DES *
* BLOCS DE COURANTS CONSTITUEE PAR UN OU DES *
* APPEL(S) A LA PROCEDURE DESCOUR *
* MATAB.'AXI' = VRAI SI PROBLEME AXISYMETRIQUE *
* SOLIN MOT OPTIONNNEL POUR LE CALCUL DU PREMIER PAS LINEAIRE*
********************************************************************
* EN SORTIE MATAB CONTIENT LES OBJETS NECESSAIRES *
* AU CALCUL NON LINEAIRE *
* ET LA SOLUION DU PREMIER PAS SI DEMANDEE DS MATAB.'POTENTIEL *
********************************************************************
AXI= FAUX ;
SI ( EXISTE MATAB 'AXI' ); AXI = MATAB.'AXI' ; FINSI ;
MUAIR = 4 * PI * 1.E-7 ;
SI ( EXISTE MATAB 'MU0') ;MUAIR = MATAB.'MU0' ;FINSI ;
SI ( EXISTE MATAB 'MUREL' ) ;
MUFER = MUAIR * (MATAB.'MUREL') ;
SINON ; MUFER = MUAIR * 2900 ;
FINSI ;
MATAB.'MUAIR'= MUAIR ;
AIR = MATAB.'AIR' ;
FER = MATAB.'FER' ;
OBJ1
=MODE AIR THERMIQUE ISOTROPE
; OBJ2
=MODE FER THERMIQUE ISOTROPE
; SI ( AXI ) ;
MAT1= MUAXI2 AIR MUAIR 1;
MAT2= MUAXI2 FER MUFER 1;
SINON ;
* rectification conductibilites
MAT1
= MATE OBJ1 'K'
( 1.
/ MUAIR
) ; MAT2
= MATE OBJ2 'K'
( 1.
/ MUFER
) ; FINSI ;
SI ( EXISTE MATAB 'AIRSUP') ;
AIRSUP = MATAB.'AIRSUP' ;
OBJ3
=MODE AIRSUP THERMIQUE ISOTROPE
; SI ( AXI ) ;
MAT3 = MUAXI2 AIRSUP MUAIR 1 ;
SINON;
MAT3
= MATE OBJ3 'K'
( 1.
/ MUAIR
) ; FINSI ;
SI ( EXISTE MATAB 'ENCS' );
RIGB= (CONDUC OBJ3 MAT3 ) ET ( BLOQUER (MATAB.'ENCS' ) T ) ;
SFAC = MATAB.'MAITRES';
SUP1 = SUPER 'RIGIDITE' RIGB SFAC ;
MATAB.'SUPER' = SUP1 ;
FINSI ;
FINSI ;
RIGA= CONDUC OBJ1 MAT1 ;
RIGF= CONDUC OBJ2 MAT2 ;
*
SI ( EXISTE MATAB 'MAITRES') ;
RIGCON
= RIGA
ET ( EXTRAI SUP1 '
RIGI'
); SINON ;
RIGCON = RIGA ;
FINSI ;
* charge
TABCOUR = TABLE ;
III = INDEX TABCOUR ;
IZ= 'ENTIER' 0 ;
REPETER BOUC ;
IZ= IZ + 1 ;
SI ( 'NON' ('EXISTE' III IZ )) ;QUITTER BOUC ; FINSI ;
STN = TABCOUR.IZ ;GEO = STN.'GEO' ;
FEIZ = SOURCE OBJ1 1. GEO ;
*
SI ( EXISTE STN 'AMP' ) ;
J = STN.'AMP' ;
STN.'AT' = SSS * J ;
SINON ;
SDO = STN.'AT' ;
J = SDO / SSS ;
STN.'AMP'= J ;
FINSI ;
*
FEIZ = FEIZ * J ;
*
MESS ' BLOC ' IZ ' JAMP ' J ' NI' STN.'AT'
; SI ( EGA IZ 1 ) ; FE = FEIZ ; SINON ;
FE = FE + FEIZ ;
FINSI ;
FIN BOUC ;
MATAB.'RHS'= FE ;
MATAB.'RIGCON'= RIGCON;
MATAB.'RIGFER'= RIGF;
SI ( EXISTE SOLIN ) ;
MESS '
*****************************************************'
; MESS '
* CALCUL DE LA SOLUTION LINEAIRE
*'
; MESS '
*****************************************************'
; SI ( EXISTE MATAB 'BLOCAGE' );
BBB = BLOQUER ( MATAB.'BLOCAGE') T ;
MATAB.'BLOCAGE'= BBB ;
SOL1= RESOU ( RIGF ET RIGCON ET BBB ) (MATAB.'RHS') ;
SINON ;
SOL1= RESOU ( RIGF ET RIGCON ) (MATAB.'RHS') ;
FINSI ;
MATAB.'POTENTIEL'= SOL1 ;
FINSI ;
*
FINPROC ;
**** DESCOUR derniere modif 16/04/91
DEBPROC DESCOUR TAB
*TABLE I
*ENTIER BLOCI
*MAILLAGE MM
*MOT J
*FLOTTANT
; *******************************************************************
* DESCRIPTION D UNE ZONE DE COURANTS *
* TAB TABLE QUI CONTIENDRA LE DESCIPTIF DE TOUTES LES *
* ZONES DE COURANTS *
* I NUMERO D ORDRE DE LA ZONE DE COURANT *
* BLOCI ZONE DE COURANT TYPE MAILLAGE *
* MM MOT 'AMP' OU 'AT' *
* J FLOTTANT DENSITE DE COURANT OU AMPERES TOURS *
*******************************************************************
STN= TABLE ;
STN.'GEO'= BLOCI ;
SI ( EGA MM 'AMP') ;
STN.'AMP' = J ;
SINON ;
STN.'AT' = J ;
FINSI ;
TAB.I= STN ;
FINPROC ;
**** MAG_NLIN derniere modif 16/04/91
*----------------------------------------------------------------------*
* *
* INSPIRE DE TRANSIT1 *
* POUR TENIR COMPTE DE PLUSIEURS MATERIAUX DONT UN NON LINEAIRE *
* POUR TRAITER PB MAGNETOSTATIQUE *
* --------------- *
* *
* RESOLUTION D'UN PROBLEME DE MAGNETOSTATIQUE NON-LINEAIRE *
* EN REGIME PERMANENT,A L'AIDE DE LA METHODE DU POINT FIXE *
* ETAB, TABLE CONTENANT EN ENTREE : *
* OBLIGATOIRE *
* INDICE 'SOUSTYPE' THERMIQUE *
* INDICE 'AXI ' LOGIQUE VRAI EN 2D SI AXISYM ( PLAN DEFAUT) *
* *
* INDICE 'EVOCOND' EVOLUTION DE Mu CREE PAR LA PROCEDURE H_B *
* QUI REND LA COURBE AD HOC POUR POT VECT OU POT SCALAIRE *
* OPTIONNEL *
* INDICE 'CRITERE' CRITERE DE CONVERGENCE *
* INDICE 'OME' COEFF AMORTISSEMENT OSCI 0< OME < 1. *
* (10E-5 PAR DEFAUT) *
* INDICE 'NITER' REACTUALISATION DE LA CONDUCTIVITE TOUTES *
* LES NITER ITERATIONS (NITER=1 PAR DEFAUT) *
* INDICE 'NIVEAU' NIVEAU DE MESSAGES (NIVEAU=0 PAR DEFAUT) *
* INDICE 'ITERMAX' NOMBRE D'ITERATIONS MAXIMUM *
* (ITERMAX=10 PAR DEFAUT) *
************************************************************************
* arguments fabriques dans les passages soit ds pot_vect ou pot_scal *
* INDICE 'FLUX' FLUX EQUIVALENTS *
* INDICE 'BLOCAGE' MATRICE DE BLOCAGE (CREEE PAR "BLOQUE") *
* INDICE 'IMPOSE' VALEURS IMPOSEES (CREE PAR "DEPI") *
* INDICE 'RIGCON ' RAIDEUR CONSTANTE *
* INDICE 'RIGFER ' RAIDEUR VARIABLE *
* ETAB CONTENANT EN SORTIE : *
* *
* INDICE 'POTENTIEL' POTENTIEL RESULTAT *
* *
* D.R., LE 7 JUILLET 1988.VERSION DU 18 JANVIER 1989. *
* MODIFIE PAR BAZE MAI 90
*----------------------------------------------------------------------*
CONVERGE = FAUX ;ETAB.CONVERGE= FAUX ;
'REPETER' PROC 1 ;
'SI' ( 'NEG' ( ETAB.'SOUSTYPE' ) 'THERMIQUE' ) ;
'
MESS' 'SOUS TYPAGE INCORRECT DE LA TABLE EN ENTREE|'
; 'QUITTER' PROC ;
'FINSI' ;
'SI' ( 'EXISTE' ETAB 'NIVEAU' ) ;
NIV_MESS = ETAB.'NIVEAU' ;
'SINON' ;
NIV_MESS = 0 ;
'FINSI' ;
'SI' ( NIV_MESS '>EG' 1 ) ;
'SAUTER' 1 'LIGNE' ;
'
MESS' '
*** DEBUT DE LA PROCEDURE "MAG_NONLIN"
***'
;'FINSI' ;
*
*--- RECUPERATION DE L'INFORMATION CONTENUE DANS "ETAB"
*
'SI' ('EXISTE' ETAB BLOCAGE );
MAT_BLO = ETAB.'BLOCAGE' ;
'FINSI';
RIG_CON = ETAB.'RIGCON';
'SI' ( 'EXISTE' ETAB 'IMPOSE' );
VAL_IMPO = ETAB.'IMPOSE' ;
'FINSI' ;
* IL FAUT EXTRAIRE LE FER ;
FER = EXTRA ( ETAB.RIGFER ) MAIL;
AXI = FAUX ;
SI ( EXISTE ETAB 'AXI') ; AXI = ETAB.'AXI' ;FINSI ;
SI AXI ;
obmod
= MODE FER THERMIQUE ISOTROPE
; cp_rpoa
= (coor 1 FER
) ; ce_rpoa
= CHAN 'CHAM' CP_RPOA OBMOD 'GRAVITE'
; FINSI ;
* SI ( EXISTE ETAB 'SUPER' ) ;
MAIL_CHP= FER ET ( EXTRA RIG_CON MAIL );
* SINON ;
* MAIL_CHP= ETAB.'GEORED' ;
* FINSI ;
NBRE_NOE
= '
NBNO' MAIL_CHP
; QTE_FLUX = ETAB.'RHS' ;
EVO_COND = ETAB.'EVOCOND' ;
LIS_COND = 'EXTRAIRE' EVO_COND 'CONDUCTIVITE' ;
LIS_TEMP = 'EXTRAIRE' EVO_COND 'TEMPERATURE' ;
VAL_COND
=EXTR LIS_COND
1 ;* SAUTER 3 LIGNES ;
* MESS ' CONDUCTIVITE INITIALE DU FER ' VAL_COND ;
SAUTER 3 LIGNES ;
'SI' ( 'EXISTE' ETAB 'CRITERE' ) ;
EPSILON = ETAB.'CRITERE' ;
'SINON' ;
EPSILON = 1.E-5 ;
'FINSI' ;
'SI' ( 'EXISTE' ETAB 'NITER' ) ;
NBRE_ITE = ETAB.'NITER' ;
'SI' ( NIV_MESS '>EG' 1 ) ;
'SAUTER' 1 'LIGNE' ;
'
MESS' 'REACTUALISATION DE LA MATRICE DE CONDUCTIVITE A L ENTREE ' 'PUIS TOUTES LES ' NBRE_ITE 'ITERATIONS'
; 'FINSI' ;
'SINON' ;
NBRE_ITE = 1 ;
'FINSI' ;
'SI' ( 'EXISTE' ETAB 'ITERMAX' ) ;
ITER_MAX = ETAB.'ITERMAX' ;
'SINON' ;
ITER_MAX = 10 ;
'FINSI' ;
**************************
OBJ_MFER
= '
MODE' FER 'THERMIQUE' 'ISOTROPE'
;'SI' ( 'EXISTE' ETAB 'IMPOSE');
FF1 = QTE_FLUX 'ET' VAL_IMPO ;
'SINON';
FF1 = QTE_FLUX;
'FINSI';
ome= ETAB.'OME' ;
'SI' ('NON' ( 'EXISTE' ETAB 'POTENTIEL')) ;
MESS '
*************************************************************'
; MESS '
************** CALCUL INITIAL
*******************************'
; MESS '
*************************************************************'
; SI ( AXI ) ;
KLAST = (KLAST * ( RFER ** -1. )) ;
CHAM_CND
= CHAMELEM FER
(KLAST '
NOMC' 'K'
) 'CARACTERISTIQUES'
; SINON ;
CHAM_CND
='
MATE' OBJ_MFER 'K' VAL_COND
; FINSI ;
CND1 = 'CONDUCTIVITE' OBJ_MFER CHAM_CND ;
'SI' ( 'EXISTE' ETAB BLOCAGE ) ;
RIG1 = CND1 ET RIG_CON ET MAT_BLO ;
'SINON';
RIG1 = CND1 ET RIG_CON ;
'FINSI' ;
U1_T = 'RESOUDRE' RIG1 FF1 ;
ETAB.'POTENTIEL'= U1_T ENLEVER LX ;
* CI= (LUMP RIG1 ) * VEC1 ; C2= (LUMP RIG1 ( MOTS T )) * VEC1 ;
* CI = (C2 - CI ) NOMC 'SCAL';
SINON ;
MESS '
******************************************************'
; MESS '
****************** REPRISE
*****************'
; MESS '
******************************************************'
; SI (EXISTE ETAB 'KLAST') ;
KLAST= ETAB.'KLAST' ;
SINON ;
FINSI ;
U1_T
= '
EXCO'
( ETAB.'POTENTIEL'
) 'T' 'NOID' 'T'
;* CI = ETAB.'CI' ;
MESS ' menage '
; MENAGE
; FINSI ;
'SI' ( NIV_MESS '>EG' 2 ) ;
'SAUTER' 1 'LIGNE' ;
'
MESS' 'CHAMP THERMIQUE AVANT ITERATION '
; 'LISTE' U1_T ;
'FINSI' ;
DAN= 1.;
*
MOESP='REA' ;
*
*
***********************************************************
*--- ... ITERATIONS ...
***********************************************************
NUM_ITE = 0 ;
IFOIS = 0 ;
'REPETER' BOUC_1 ;
NUM_ITE = NUM_ITE + 1 ;
IFOIS = IFOIS + 1 ;
*
* calcul du champ dans le fer -----> modif de mufer
SI ( AXI ) ;
DERIV = DERIV / RFER ;
FINSI ;
SI (EXISTE DERIV 'T,Z' ) ;
BB= (( DAY * DAY ) + ( DAX * DAX ) +( DAZ * DAZ )) ** .5 ;
SINON ;
BB
= ((( DAY
* DAY
) + ( DAX
* DAX
) ) ** .5
) NOMC T
; FINSI ;
BMAX
= MAXIMUM BB
;BMIN
= MINI BB
;* SAUTER 1 LIGNE ;
K1
= '
IPOL' BB LIS_TEMP LIS_COND
; K1
= COLI (K1
NOMC 'SCAL'
) OME KLAST
(1.
- OME
) ; KLAST = K1 ;
SI ( AXI ) ;
K2
= (K2
* ( RFER
** -1.
)) NOMC 'K'
; CHAM_CND = CHAMELEM FER K2 'CARACTERISTIQUES';
SINON ;
CHAM_CND = 'CHAMELEM' FER K2 'CARACTERISTIQUES' ;
FINSI ;
CND2 = 'CONDUCTIVITE' OBJ_MFER CHAM_CND ;
RR2= CND2 ET RIG_CON ;
RESID= ( FF1 - ( RR2 * U1_T ) ) ENLEVER 'FLX' ;
*
* tests de convergence
*
RESID
= RESID
NOMC 'SCAL'
; NORES
= (XTX RESID
) ** .5
; ERRMAX
= MAXI ( ABS RESID
) ; MESS IFOIS MAXA MIXA DAN
; *
*
'SI' (( NUM_ITE 'EGA' NBRE_ITE ) 'OU' ( IFOIS 'EGA' 1 ) );
*****************************************************************
* --- REACTUALISATION DE LA MATRICE DE CONDUCTIVITE
*****************************************************************
MOESP='REA' ;
* CI= (LUMP RR2 ) * VEC1 ; C2= (LUMP RR2 ( MOTS T )) * VEC1 ;
* CI = (C2 - CI ) NOMC 'SCAL';
'SI' ( 'EXISTE' ETAB BLOCAGE );
RIG1 = RR2 ET MAT_BLO ;
'SINON';
RIG1 = RR2 ;
'FINSI' ;
U2 = 'RESOUDRE' RIG1 FF1 ;
NUM_ITE = 0 ;
'SINON' ;
*****************************************************************
* --- RE-EQUILIBRAGE DU SECOND MEMBRE
*****************************************************************
MOESP=' ' ;
FF2 = ( RIG1 * U1_T ) - ( RR2 * U1_T ) ;
FF3 = FF1 + FF2 ;
U2 = 'RESOUDRE' RIG1 FF3 ;
* 'DETR' CND2 ;DETR RR1 ; DETR RR2 ;
'FINSI' ;
*****************************************************************
*****************************************************************
U2_T
= '
EXCO' U2 'T' 'NOID' 'T'
;*
'SI' ( NIV_MESS '>EG' 2 ) ;
'SAUTER' 1 'LIGNE' ;
'
MESS' 'CHAMP THERMIQUE A L ITERATION :' IFOIS
; 'LISTE' U2_T ;
'FINSI' ;
*
CDIF= U2_T - U1_T ;
DAN
= (XTX CDIF
) / ( XTX U1_T
) ; DAN = DAN ** .5 ;
*
* 'SI' ( ERROR < EPSILON ) ;
'SI' ( DAN < EPSILON ) ;
CONVERGE = VRAI ;
'SINON' ;
CONVERGE = FAUX ;
'FINSI' ;
*
*--- LE CRITERE DE CONVERGENCE EST-IL SATISFAIT ?
MENAGE ;
'SI' ( CONVERGE ) ;
'SI' ( NIV_MESS '>EG' 1 ) ;
* 'SAUTER' 1 'LIGNE' ;
'
MESS' 'CONVERGENCE A L ITERATION :' IFOIS
; '
MESS' 'CRITERE DE CONVERGENCE :' EPSILON
; 'FINSI' ;
'QUITTER' BOUC_1 ;
'FINSI' ;
U1_T = U2_T ;
'SI' ( 'EGA' IFOIS ITER_MAX ) ;
* 'SAUTER' 1 'LIGNE' ;
'
MESS' 'PAS DE CONVERGENCE A L ITERATION :' ITER_MAX
; 'QUITTER' BOUC_1 ;
'FINSI' ;
* ON FAIT LE MENAGE
'FIN' BOUC_1 ;
ETAB.NBITER= IFOIS;
*
*--- ARCHIVAGE DES RESULTATS DANS "ETAB"
*
ETAB.'KLAST'= KLAST ;
ETAB.'POTENTIEL' = U2_T ;
* ETAB.'CI'= CI ;
'SI' ( NIV_MESS '>EG' 1 ) ;
'SAUTER' 1 'LIGNE' ;
'
MESS' '
*** FIN DE LA PROCEDURE "MAG_NLIN"
***'
;'FINSI' ;
'FIN' PROC ;
'FINPROC' ETAB ;
************************
**** H_B derniere modif 16/04/91
* definition de la courbe mu de b ou h
* mu0 systeme mksa 4 pi 10-7 ;
MUVRA = 4. * 3.14159 * 1.E-7 ;RAP= MU0 / MUVRA ;
* B= PROG 0. 1.09 1.5 1.57 1.67 1.81 1.92 2.01 20.1 ;
* H= PROG 0. 300 800 1250 3000 8000 13000 20000 200000 ;
B
= PROG 0. .8
1.2 1.4 1.5 PAS .05
2.15 2.175 2.2 2.25 2.28 2.3 2.3443 2.3996 2.4905 2.5627 2.6706 2.8498 3.2074 3.5644 4.2782 4.8134 5.7052 6.4186 7.4887 17.48 27.48 200.
400.
600.
10000.
30000.
; H
= PROG 0.
159.2 294.4 501.3 795.8 1154.
1795.
2862.
4383.
6044.
8122.
10590.
13610.
17220.
21170.
26750.
33760.
43800.
52440.
66000.
99470.
120960.
141210.
169600.
212170.
283130.
339890.
425040.
566950.
850760.
1134600.
1702300.
2128000.
2837700.
3405100.
4256700.
12215578.
20174457.
155800000.
311600000.
467400000. 7.32E9 21.
E9 ;* TITRE ' COURBE H B A/M TESLAS ****** ';
* BHEVO=EVOL MANU 'H' H 'B' B ;
* DESS BHEVO;
* RECTIF POUR COHERENCE UNITES
H= H / RAP ;
H_1= ENLEVER H 1 ;B_1= ENLEVER B 1 ;
MUV
= H_1
/ B_1
;TU
= EXTRA MUV
1;MUV
= ( PROG TU
) ET MUV
; BOBO= TEXTE ' MU F(H) POT SCAL ' ;
TITRE BOBO ;
REVOL
= EVOL MANU 'TEMPERATURE ' H 'CONDUCTIVITE '
( MUV
** -1.
) ; SINON ;
BOBO
= TEXTE ' MU F
(B
) POT
VECT '
; TITRE BOBO ;
REVOL
=EVOL '
MANU' 'TEMPERATURE' B 'CONDUCTIVITE' MUV
; FINSI ;
SAUTER 3 LIGNES ;
SAUTER 3 LIGNES ;
FINPROC REVOL ;
*
**** POT_SCAL derniere modif 10/02/92
*********************************************************************
* procedure de mise en place des elements d un calcul 3d *
* magnetostatique potentiel scalaire reduit et total *
* DPHI zone de potentiel reduit *
* DPsI zone de potentiel total
***** desciption du domaine dphi ( pas de super pour le moment)****
* TABGEO.'DPHI' = geometrie DPHI *
* TABGEO.'SEPPHI'= surface de separation appartient a DPHI
* attention pour le moment on doit verifier l orientation de la *
* normale a sepphi ( exterieure ) en attendant extension de flux *
* TABGEO.'B_ANTI' = partie de sepphi appartenant a la limite *
* TABGEO.'MUAIR' = mu0 *
* d antisymetrie pour B *
*******description du domaine dpsi **********************************
* on donne la descprition du fer puis une table tdolin de tables *
* contenant chacune la descrition d un sous domaine *
* TABGEO.'FER' =zone du fer appartient a DPSI
* TABGEO.'MUFER' = mufer ( mu0 * murelatif) valeur de depart *
* TABGEO.'TDOLIN'
* TDOLIN.I = TABLE STN *
* STN.'GEO' = maillage du sous domaine *
* STN.'MU' = permeabilite
* eventuellement *
* STN.'BLOCAGE'= type maillage *
* STN.'IMPOSE' = type chpoint *
* STN.'MAITRES' = type maillage *
* *
* TABGEO.'SEPPSI'= surface de separation appartient a DPSI *
* TABGEO.'ORIG' = point ou on impose PHI = PSI *
* TABGEO.'BLOQUE' = condition limite generale (sauf super elements) *
* TABGEO.'BIOT' = table contenant le champ de la bobine sur DPHI *
* TABGEO.'MAILSEG' = elements d aretes de sep_phi (optionnel) *
* la routine l etablira si il n existe pas *
* TABGEO.'LISMO1' = listmot de elements de volumes utilises *
* TABGEO.'LISMO2' = listmot de elements de surface utilises *
* SOLIN si present on calcule un la solution lineaire *
* si absent le premier pas sera fait dans MAG_NLIN *
* jm baze aout 90 *
*********************************************************************
MU0 = TABGEO.'MUAIR' ;
SI ( EXISTE TABGEO 'DPHI' ) ;
MESS '
*************************************************************'
; MESS '
*********** POTENTIEL REDUIT
---- POTENTIEL TOTAL
*********'
; MESS '
*************************************************************'
; DPHI = TABGEO.'DPHI' ;
SEP_PHI= TABGEO.'SEPPHI';
B_ANTI = TABGEO.'B_ANTI';
SEP_PSI= TABGEO.'SEPPSI';
ORIG = TABGEO.'ORIG' ;
LIMO1= TABGEO.'LISMO1';
LIMO2= TABGEO.'LISMO2';
* reduction de biot et savart sur sep_phi
TABHS= TABLE ;
TABHS.1
= REDU ( TABHT.1
) SEP_PHI
; TABHS.2
= REDU ( TABHT.2
) SEP_PHI
; TABHS.3
= REDU ( TABHT.3
) SEP_PHI
; sauter 5 lignes ;
MMM= TEXTE ' THERMIQUE ISOTROPE ';
MATPHI
= MATE OBJPHI 'K' MU0
; RIGCON
=CONDUC OBJPHI MATPHI
; MESS ' COORD POINT ORIGINE INTEGRATION DE V '
; sauter 5 lignes ;
MESS ' CALCUL DU
FLUX DE HS SUR LES ELEMENTS FRONTIERE '
; NBLD= DIMENSION LIMO2 ;
TTTT
= EXTR LIMO2
1 ;TTTI
= EXTR LIMO1
1 ; SEP_PHI1
=SEP_PHI
ELEM TTTI
; FLHS = FL_HS SEP_PHI1 TABHS TTTT OBJPHI ;
SI ( EGA NBLD 2 ) ;
TTTT
= EXTR LIMO2
2 ;TTTI
= EXTR LIMO1
2 ; SEP_PHI2
=SEP_PHI
ELEM TTTI
; FLHS2 = FL_HS SEP_PHI2 TABHS TTTT OBJPHI;
FLHS = FLHS + FLHS2 ;
FINSI ;
* TEMPS PLACE ;
FLHS= FLHS * MU0 ;
sauter 5 lignes ;
* integration sur la surface de separation de l equation de
* de continuite tangentielle
SI ( 'EXISTE' TABGEO 'MAILSEG' ) ;
MAILSEG= TABGEO.'MAILSEG';
SINON ;
* decomposition de la surface de separation en element d aretes
MESS ' CALCUL DES ELEMENTS ARETES DE LA SEPARATION '
; imena = 50 ;
MAILSEG
= ARBRE
RESEAU IMENA
; TABGEO.'MAILSEG'= MAILSEG ;
FINSI;
* TEMPS PLACE ;
METHOD = 1 ;
SAUTER 4 LIGNES ;
IMENA= 3 ;
SI (EGA METHOD 1) ;
MESS ' CALCUL PAR MINIMISATION '
; LLLL
= IN_MINI MAILSEG TABHS ORIG B_ANTI
; SINON;
MESS ' CALCUL PAR INTEGRATION '
; LLLL = ARBRE_IN SEP_PHI TABHS ORIG ;
FINSI ;
*****************!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
TABGEO.'LLLL'=LLLL ;
MESS '
FIN DE CALCUL DU
SAUT DE POTENTIEL '
; *
SEP_PHI
= CHAN POI1 SEP_PHI
; SEP_RED
= DIFF SEP_PHI B_ANTI
; LRED
= REDU LLLL SEP_RED
;
RELT FDEPI= SAUT_POT SEP_RED SEP_PSI LRED ORIG ;
MESS '
FIN D APPLICATION DU
SAUT DE POTENTIEL '
; *****************
RIGCON = RIGCON ET RELT ;RHS = FLHS ET FDEPI ;
*****************
* LIST FSAUT ;
sauter 5 lignes ;
* TEMPS PLACE ;
SINON ;
SAUTER 5 LIGNES ;
MESS '
*************************************************************'
; MESS '
*********** DPHI N EXISTE PAS
--> POTENTIEL TOTAL
*********'
; MESS '
*************************************************************'
; SAUTER 5 LIGNES ;
FINSI ;
**
MUFER = TABGEO.'MUFER' ;
MAT2
= MATE OBJ2 'K' MUFER
; RIGFER
=CONDUC OBJ2 MAT2
;* boucle sur les domaines lineaires non contenus dans dphi
SI ('EXISTE' TABGEO 'DOLIN' );
TDOLIN = TABGEO.'DOLIN' ;
III = INDEX TDOLIN ;
IDOM = 0 ;
REPETER BOUCDOM ;
IDOM = IDOM + 1 ;
SI ( 'NON' ( 'EXISTE' III IDOM )) ; QUITTER BOUCDOM ;FINSI ;
STN = TDOLIN.IDOM ;
GEO
= STN.'GEO'
;OBJI
= MODE GEO MMM
; MUI = STN.'MU' ;
MATI
= MATE OBJI 'K' MUI
; RIGO
=CONDUC OBJI MATI
;*
SI ( EXISTE STN 'BLOQUE' ) ;
ENC1 = BLOQUER (STN.'BLOQUE') 'T';
RIGO = RIGO ET ENC1 ;
FINSI ;
SI ( EXISTE STN 'IMPOSE' ) ;
CHIMP
= (STN.'IMPOSE'
) NOMC 'T'
; MAII
= EXTR CHIMP MAILLAGE
; RIMP = BLOQUER MAII 'T'
; FPOTI
= DEPIMP
RIMP CHIMP
; RIGO
= RIGO
ET RIMP ;RHS
= RHS
ET FPOTI
; FINSI ;
SI ( EXISTE STN 'MAITRES');
******************************************************************
* construction eventuelle du super element
******************************************************************
* attention ici si il y a une charge OU UN IMPOSE
SUP1 = SUPER 'RIGIDITE' RIGO ( STN.'MAITRES' ) ;
RIGCON
= RIGCON
ET ( EXTRA SUP1 '
RIGI'
) ; SINON ;
RIGCON = RIGCON ET RIGO ;
FINSI ;
FIN BOUCDOM ;
* fin de la boucle sur les table de domaines lineaires de dpsi
FINSI ;
*
SI( EXISTE TABGEO 'IMPOSE') ;
MESS ' CONDITION GENERALE IMPOSEE '
; CHIMG
= (TABGEO.'IMPOSE'
) NOMC 'T'
; MAIG
= EXTR CHIMG MAILLAGE
; RIMG = BLOQUER MAIG 'T' ; FPOTG = DEPIMP RIMG CHIMG ;
RIGCON = RIGCON ET RIMG ;RHS = RHS ET FPOTG ;
FINSI ;
*
SI (EXISTE TABGEO 'BLOQUE') ;
MESS ' CONDITION GENERALE BLOQUEE '
; ENCG = BLOQUER (TABGEO.'BLOQUE') 'T';
RIGCON= RIGCON ET ENCG ;
TABGEO.'BLOCAGE' = ENCG ;
FINSI ;
*
*
SI ( EXISTE SOLIN ) ;
MESS '
********************************************************* '
; MESS '
***************** CALCUL LINEAIRE
******************** '
; MESS '
********************************************************* '
;
RIGT = RIGCON ET RIGFER ;
TABGEO.'RHS'= RHS ;
TABGEO.'RIGCON'= RIGCON ;
TABGEO.'RIGFER'= RIGFER ;
SOL0= RESOU RIGT RHS ;
TABGEO.'POTENTIEL'=(ENLEVER SOL0 LX) ;
FINSI ;
*
FINPROC ;
**** A_HOMO derniere modif 10/02/92
DEBPROC A_HOMO AKN*LISTREEL RHARM*FLOTTANT RCIRC*FLOTTANT NHARM*ENTIER;
SAUTER 2 LIGNES ;
BDIP
= EXTR AKN
1;BQUAD
= EXTR AKN
2 ;G0
= BQUAD
/ RHARM
; SAUTER 2 LIGNES ;
MESS '
******************* BDIP ' BDIP
; MESS '
******************* BQUAD' BQUAD
; MESS '
******************* G0 ' G0
; SAUTER 2 LIGNES ;
K= 0 ;
REPETER BLOCC NHARM ;
K
= K
+ 1; COK
= EXTR AKN K
; AKM= COK / ( RHARM ** (K - 1)) ;
CQUA= COK / C2R ;
CDIP = COK / BDIP;
FIN BLOCC ;
SAUTER 2 LIGNES ;
* ON CONSTRUIT UN CHPO SUR LE RAYON ANALYSE CE QUI SERA PRATIQUE POUR
* TRACER DES EVOLUTIONS ;
OP = RCIRC 0.;OO= 0. 0. ;
LSUP= D 10 OO OP;
NN= 11 ;
DX =2.;
X= -2. ;
IP=0 ;
REPETER BLOCA 11 ;
IP= IP + 1 ;
X =X + DX ; Z = X / RHARM ;
B = 0 ; G = G0 ; BQUAD = C2R * Z ;
K= 0 ;
REPETER BLOCB NHARM ;
K
= K
+ 1 ; COK
= EXTR AKN K
; SI ( K EGA 1 ) ; B = B + COK ;SINON ;TERM= COK * ( Z ** (K - 1 ));
B= B + TERM ;
SI ( (K >EG 3 ) ET ( (ABS X ) >EG 1.E-4 ) );
G = G + (( TERM / X ) * (K - 1)) ;
FINSI ;
FINSI ;
FIN BLOCB ;
* SI (( ABS X ) >EG 1.E-4 ) ;
HQUAD= (B - BDIP - BQUAD ) /C2R ;
GQUAD= (G - G0 ) / G0 ;
HDIP = (B - BDIP) / BDIP ;
* FINSI;
SI ( IP EGA 1 ) ;
SINON ;
LHQ
= LHQ
ET (PROG HQUAD
) ;LG
= LG
ET ( PROG G
); LGQ
= LGQ
ET (PROG GQUAD
);LB
= LB
ET (PROG B
); FINSI ;
FIN BLOCA ;
SAUTER 2 LIGNES ;
TUTU
= MANU CHPO LSUP
4 'B' LB 'DB
/B' LHQ 'G' LG 'DG
/G' LGQ
; SAUTER 2 LIGNES ;
MESS ' ANALYSE CONFORME A HARMBIS '
; SAUTER 2 LIGNES ;
RECAP = CX ET TUTU ;
FINPROC ;
*
**** INT_COMP derniere modif janvier /92
'
DEBPROC'
INT_COMP GEOP
*MAILLAGE CCCC
*CHPOINT GEOF
*MAILLAGE
;************************************************************************
* interpolation d une composante sur un maillage *
* TYEL TYPE D ELEMENTS *
* entree cccc chpoint original a 1 composante de support geop *
* sortie chpo de support geof *
************************************************************************
SI ( NON ( EGA TYT 'TRI3'));
MESS 'ON PASSE EN TRI3 POUR UTLISER
PROI ( DEGUEULASSE EN TRI6....
)'
; FINSI ;
OBS1 = AFFECT GEOP ( MODELE STANDARD ) TRI3 ;
CEL1 = PRCH CCCC OBS1 'NOEUD' ;
FINPROC CRES ;
*
**** IDE_ELE derniere modif fevrier/92
DEBPROC IDE_ELE ;
**********************************************************************
* IDENTIFICATION DU TYPE D ELEMENTS UTILISES
**********************************************************************
SI ( EGA TIDIM 2 ) ;
SI (( EGA TVAL 'QUA8') 'OU' (EGA TVAL 'TRI6')) ;
TYEL = TEXTE 'QUA8' 'TRI6' ;
SINON ;
TYEL = TEXTE 'QUA4' 'TRI3' ;
FINSI ;
SINON ;
SI (( EGA TVAL 'CU20') 'OU' (EGA TVAL 'PRI16')) ;
TYEL = TEXTE 'CU20' 'PR15' 'TET10';
SINON ;
TYEL = TEXTE 'CUB8' 'PRI6' 'TET4';
FINSI ;
FINSI ;
FINPROC TYEL ;
**** MUAXI2 MODIFIE FEVRIER 92
DEBPROC MUAXI2 GEO*MAILLAGE MU*FLOTTANT IDI*ENTIER ;
***********************************************************************
* SORTIE De CONDUCTIBILITE = 1/(MU*R) EN AXISYMETRIQUE *
* IDI = 1 sortie chamelem 'caracteristique au noeuds DEFAUT*
* IDI = 2 sortie chpo aux noeuds scalaire *
* IDI = 3 sortie chamelem au CDG *
* MODIFIEE FEVRIER 92 POUR P2 *
***********************************************************************
IMET = 2 ;
SI ( EGA IMET 1 ) ;
* estimation de mu au noeuds en trichant sur l axe
AXE= GEO POINTS DROITE (0. 0) (0. 10.) .05 ;
MUPO
= (((RGEO
+ ((COOR 1 AXE
) + 1.
E-8
)) ** -1.
) / MU
) NOMC 'K'
; MATT= CHAMELEM GEO MUPO 'CARACTERISTIQUE' ;
FINSI ;
SI ( EGA IMET 2 ) ;
* estimation de mu aux cdg sans tricher sur l axe
OBMOD
= MODE GEO THERMIQUE ISOTROPE
; cp_rpoa
= (coor 1 GEO
) ;* chamelem des rayons aux cdg
ce_rpoa
= CHAN 'CHAM' CP_RPOA OBMOD 'GRAVITE'
;* chamelem des cdg reportes aux noeuds
RGEO
= (CHAN CHPO OBMOD
(CHAN 'NOEUD' OBMOD ce_rpoa
)) ** -1.
; SI ( EGA IDI 1 ) ;
CHPMUGEO
= ( (1.
/ MU
) * RGEO
)NOMC 'K'
; MATT= CHAMELEM GEO CHPMUGEO 'CARACTERISTIQUE' ;
* MESS ' 1/MU CHAMP ELEM TYPE CARACTERISTIQUE K ';
FINSI ;
SI (EGA IDI 2 ) ;
MESS '
1/R AUX CDG REPORTES AUX NOEUDS SCALAIRE '
; MATT = RGEO ;
FINSI ;
SI (EGA IDI 3 ) ;
MATT = CE_RPOA ;
FINSI ;
FINSI ;
FINPROC MATT ;
**** REMONT derniere modif 14 08 91
DEBPROC REMONT ETAB*TABLE POT*CHPOINT GEON*MAILLAGE FE/CHPOINT GEOMAIT*MAILLAGE ;
* POT SOLUTION
* GEON MAILLAGE AUTRE QUE LE SUPER
* GEOMAIT POINTS MAITRES
SI ( EXISTE ETAB 'SUPER' ) ;
SUPP= ETAB.'SUPER' ;
DSUP = SUPER 'DEPLA' SUPP POT ;
* ATTENTION SI IL Y AVAIT DES CHARGES DANS LE SUPER
RIGS = EXTRAI SUPP 'RIGT' ;
SI ( EXISTE FE ) ;
SOLSUP = RESOU RIGS ( DSUP ET FE ) ;
SINON ;
SOLSUP = RESOU RIGS DSUP ;
FINSI ;
GEOSUP
= EXTR SOLSUP MAILLAGE 'NOMU'
; SINON ;
********************************************************
* autre methode eventuelle
********************************************************
* TAIR2 = REDU SOL1 CAIR1 ;
* NN= CAIR1 NBNO ;CAIR1 = CHAN CAIR1 POI1 ;
* IP = 0 ;
* REPETER BBBB NN ;
* IP = IP + 1 ;PP = CAIR1 POINT IP ;
* CLIM = BLOQUER 'T' PP ; FP = DEPIMP CLIM ( EXTR TAIR2 'T' PP ) ;
* SI ( EGA IP 1 ); CLIMT = CLIM ;FPT = FP ;
* SINON ; CLIMT = CLIMT ET CLIM ; FPT = FPT ET FP ;FINSI ;
* FIN BBBB ;
* TIAIR2 = RESOU (RIGA ET CLIMT) ( FPT ET FE ) ;
FINSI ;
*
SOLSU
= REDU SOLSUP AAA
; SOLT= ( POT + SOLSU ) ;
FINPROC SOLT ;
**** F_S2PI derniere modif 30/3/92
DEBPROC F_S2PI CHARM
*MAILLAGE SCIRC
*CHPOINT NN
*ENTIER OO
*POINT
; VALIN
= REDU SCIRC
( CHARM POINT INITIAL
) ; VALFI
= REDU SCIRC
( CHARM POINT FINAL
) ; K = -1 ;
SI (( V1 < V2 ) ET ( NUM NEG 1 )) ;
CHARM
= INVE CHARM
;K
= 1 ; FINSI ;
1P = CHARM POINT INITIAL ;2P = CHARM POINT FINAL ;
IP = 0 ;
REPETER BOUC (NN - 1 );
IP = IP + 1 ;
SI ( EGA IP 1 ) ;
SOL2
= (SCIRC
PLUS (0.
0.
)) * K
; SINON ;
SOL2
= (SOL2
PLUS (0.
0.
)) * K
; FINSI ;
MAI2
= EXTR SOL2 MAILLAGE
; PDOU = CHARM POINT FINAL ;
VALDOU
= REDU SCIRC PDOU
;
MAI2
= DEPLACER MAI2
SYME DROITE OO PDOU
; SI ( EGA IP 1 ) ;
CHARM2
= ( INVE (CHARM
SYME DROITE OO PDOU
)) ; SINON ;
CHARM2
= ( INVE (CHARM2
SYME DROITE OO PDOU
)) ; FINSI ;
CONFONDRE ( CHARM POINT FINAL) ( CHARM2 POINT INITIAL ) ;
CHARM = CHARM ET CHARM2 ;
SCIRC = SCIRC + SOL2 - VALDOU ;
K = K * -1 ;
FIN BOUC ;
*
SUPO = CHARM ;
* TITRE ' SOLUTION SUR 2PI ';
* EVV1 = EVOL ROUG CHPO SCIRC 'T' CHARM ;
* titre ' evo '( dime evv1 ) 'supp ' ( supo nbno ) ;
* trac supo ;
* dess evv1 ;
FINPROC SCIRC SUPO ;
**** DDFOUR derniere modif 30/3/92
DEBPROC DDFOUR GEO
*MAILLAGE CHARM
*MAILLAGE NHARM
*ENTIER SOL
*CHPOINT RHARM
*FLOTTANT ORIG
/POINT LIS
*LOGIQUE
; *********************************************************************
* ANALYSE HARMONIQUE DU POTENTIEL VECTEUR
* GEO MAILLAGE SUPPORT SOLUTION GENERALE *
* CHARM ARC DE CERCLE SUR LEQUEL ON A LE POTENTIEL *
* NHARM NOMBRE D HARMONIQUES A CALCULER *
* SOL SOLUTION EN POTENTIEL *
* RHARM RAYON DE NORMALISATION *
* ORIG ORIGINE CERCLE D ANALYSE
* LIS LOGIQUE FAUX SI PAS DE LISSAGE POLYNOMIAL *
*********************************************************************
1P = CHARM POINT INITIAL ;2P= CHARM POINT FINAL ;
SI ( EXISTE ORIG ) ;
RCIRC
= NORM ( 1P MOINS ORIG
) ; SINON ;
RCIRC
= NORM 1P
;ORIG
= 0.
0.
; FINSI ;
X1 Y1
= COOR ( 1P MOINS ORIG
);X2 Y2
= COOR 2P
; PT = 2P PROJETER (( Y1 * -1. ) X1 ) DROITE ORIG 1P ;
H
= NORM ( 2P MOINS PT
) ; SI ( (X1 + X2 ) < 1.E-3 ) ;
NUM = 2 ;
MESS 'SOLUTION DONNEE SUR
180 DEGRES '
; SINON ;
ANG
= ATG H
( NORM ( PT MOINS ORIG
)) ; NUM = ( ENTI ( 360.1 / ANG )) ;
MESS 'SOLUTION DONNEE SUR ' ANG ' DEGRES '
; FINSI ;
SI ( NON ( LIS )) ;
SINON ;
* lissage polynomial
CHLI = LISS GEO CHARM SOL 2 PLAN ;
FINSI ;
RRAP = RHARM / RCIRC ;
CQTT RTOT
= F_S2PI CHARM SCIRC NUM ORIG
;* QTOT= EXTR EQTT 'ORDO' ;
* LIST QTOT ;
* NI1= (DIME AAAA ) - 1 ;
* IVAL = VALE ELEM ;
* OPTION ELEM SEG2 ;I1 = 0. 0. ; I2 = 360. 0. ;
* RTOT = DROI NI1 I1 I2 ;
OBA_RMA= AFFECTE RTOT (MODELE STANDARD) COQ2;
* MESS ' PERIODE ' PERIOD ;
N=0;
MESS ' ANALYSE CONFORME A POISSON HARMON '
; MESS ' HARMONIQUE POTENTIEL CHAMP '
; MESS ' NOMBRE DE SEGMENTS DE DR ' NI1
; * CQTT = MANU CHPO RTOT 1 'POT' QTOT ;
REPETER BLOCIT NHARM ;
N= N + 1 ;
RAN= RRAP ** N ;
ANGLEN= CHPA * N ;
CNX= COS ANGLEN ;
SNX= SIN ANGLEN ;
EVREL= CQTT * CNX ;EVIMA= CQTT * SNX ;
CEVREL = PRCH EVREL OBA_RMA 'RIGIDITE' ;
CEVIMA = PRCH EVIMA OBA_RMA 'RIGIDITE' ;
AK
= (( INTG CEVREL
) / PERIOD
) * 2.
* RAN
; BK
= (( INTG CEVIMA
) / PERIOD
) * 2.
* RAN
; CK= (( AK * AK ) + ( BK * BK ) ) ** .5 ;
FF= ( FLOT N) / RHARM ;
AKK= AK * FF ;
BKK= BK * FF ;
CKK= CK * FF ;
SI (N
EGA 1 );AKN
= PROG AKK
; SINON ;AKN
= AKN
ET (PROG AKK
) ; FINSI ; SAUTER 1 LIGNE ;
* MESS N AK BK CK AKK BKK CKK ;
FIN BLOCIT ;
* OPTION ELEM IVAL ;
FINPROC AKN ANGVEC ;
*****
**** @DEFMAT
DEBPROC @DEFMAT TAB1*TABLE ;
*23456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
************************************************************************
MESS '
---------------------------------> Entree
dans DEFMAT '
;
* on initialise des evol nuls
CHP_TM1 = TAB1.>CHP_TM1 ;
TAB1.TETMAT = TABLE ;
TAB1.MODL_MAT = TABLE ;
TAB1.MAT_MAT = TABLE ;
I1 = 0 ;
REPETER BOMA11 ;
I1 = I1 + 1 ;
*>1
SI ( EXISTE (TAB1.ZONE_MAT) I1 ) ;
NOM_MAT1 = TAB1.NOM_MAT.I1 ;
MESS '
>>>> MATERIAU ' I1 NOM_MAT1
; TMECA_I1
= TEXT TAB1.
TEXTMECA.
I1 ; MO1
= MODE TAB1.
ZONE_MAT.
I1 TMECA_I1
; TAB1.MODL_MAT. I1 = MO1 ;
TITRE NOM_MAT1 ' YOUN MODULUS ' ;
TAB1.TETMAT.MO1 = TABLE ;
*>>2*************** orthotropie
SI ( EGA TAB1.TEXTMECA.I1 ' MECANIQUE ELASTIQUE ORTHOTROPE') ;
CHAYGI= CHAINE TAB1 . TEXTMECA .(I1 + 100) ;
MESS '
>>> ORTHOTROPIE' TAB1.
TEXTMECA.
I1 ; MESS '
>>> DIRECTIONS D ORTHOTROPIE' CHAYGI
;
* P1 = TAB1.DIRECT1 ;
* P2 = TAB1.DIRECT2 ;
* CHAYGI = 'DIRECTION P1 P2 ' ;
* CHADIR = 'DIRECTION TAB1.DIRECT1 TAB1.DIRECT2' ;
SI ( NON ( EXISTE TAB1 'MOMATR')) ;
TAB1.'MOMATR' = TABLE ;
FINSI ;
TAB1.'MOMATR'.MO1 = TAB1.TEXTMECA.(I1 + 100) ;
* CHAYG1 = CHAINE CHADIR ' YG1 ' ;
* CHAYG2 = CHAINE CHADIR ' YG2 ' ;
* CHAYG3 = CHAINE CHADIR ' YG3 ' ;
* CHAG12 = CHAINE CHADIR ' G12 ' ;
* CHAG23 = CHAINE CHADIR ' G23 ' ;
* CHAG13 = CHAINE CHADIR ' G13 ' ;
* CHANU12 = CHAINE CHADIR ' NU12 ' ;
* CHANU23 = CHAINE CHADIR ' NU23 ' ;
* CHANU13 = CHAINE CHADIR ' NU13 ' ;
* CHAALP12 = CHAINE CHADIR ' ALP1 ' ;
* CHAALP23 = CHAINE CHADIR ' ALP2 ' ;
* CHAALP13 = CHAINE CHADIR ' ALP3 ' ;
*>>3*************** orthotropie 333333333333333DDDDDDDDDD
SI (EGA (VALEUR DIMENSION) 3 ) ;
TAB1.TETMAT.MO1.YG1 = @EVMAT TAB1.NOM_MAT.I1 'YG1' TAB1 ;
TAB1.TETMAT.MO1.YG2 = @EVMAT TAB1.NOM_MAT.I1 'YG2' TAB1 ;
TAB1.TETMAT.MO1.YG3 = @EVMAT TAB1.NOM_MAT.I1 'YG3' TAB1 ;
EVMA1 = EVMA1 ET TAB1.TETMAT.MO1.YG1 ET TAB1.TETMAT.MO1.YG2 ET TAB1.TETMAT.MO1.YG3 ;
TITRE NOM_MAT1 ' POISSON COEFFICIENT ' ;
TAB1.TETMAT.MO1.NU12 = @EVMAT TAB1.NOM_MAT.I1 'NU12' TAB1 ;
TAB1.TETMAT.MO1.NU23 = @EVMAT TAB1.NOM_MAT.I1 'NU23' TAB1 ;
TAB1.TETMAT.MO1.NU13 = @EVMAT TAB1.NOM_MAT.I1 'NU13' TAB1 ;
EVMA2 = EVMA2 ET TAB1.TETMAT.MO1.NU12 ET TAB1.TETMAT.MO1.NU23 ET TAB1.TETMAT.MO1.NU13 ;
TITRE NOM_MAT1 ' THERMAL EXPANSION ' ;
TAB1.TETMAT.MO1.ALP1 = @EVMAT TAB1.NOM_MAT.I1 'ALP1' TAB1 ;
TAB1.TETMAT.MO1.ALP2 = @EVMAT TAB1.NOM_MAT.I1 'ALP2' TAB1 ;
TAB1.TETMAT.MO1.ALP3 = @EVMAT TAB1.NOM_MAT.I1 'ALP3' TAB1 ;
EVMA3 = EVMA3 ET TAB1.TETMAT.MO1.ALP1 ET TAB1.TETMAT.MO1.ALP2 ET TAB1.TETMAT.MO1.ALP3;
TAB1.TETMAT.MO1.G12 = @EVMAT TAB1.NOM_MAT.I1 'G12' TAB1 ;
TAB1.TETMAT.MO1.G23 = @EVMAT TAB1.NOM_MAT.I1 'G23' TAB1 ;
TAB1.TETMAT.MO1.G13 = @EVMAT TAB1.NOM_MAT.I1 'G13' TAB1 ;
TM_1
= ( REDU CHP_TM1 TAB1.
ZONE_MAT.
I1 ) ;*
*** DIRECTION 1
*
Y_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
YG1 YG1
; G_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
G12 G12
; N_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
NU12 NU12
; A_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALP1 ALP1
;*
N_1 = CHANGER CHAM N_1 MO1 'RIGIDITE' ;
Y_1 = CHANGER CHAM Y_1 MO1 'RIGIDITE' ;
G_1 = CHANGER CHAM G_1 MO1 'RIGIDITE' ;
A_1 = CHANGER CHAM A_1 MO1 'RIGIDITE' ;
*
*** DIRECTION 2
*
Y_2
= VARI TM_1 TAB1.
TETMAT.
MO1.
YG2 YG2
; G_2
= VARI TM_1 TAB1.
TETMAT.
MO1.
G23 G23
; N_2
= VARI TM_1 TAB1.
TETMAT.
MO1.
NU23 NU23
; A_2
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALP2 ALP2
;*
N_2 = CHANGER CHAM N_2 MO1 'RIGIDITE' ;
Y_2 = CHANGER CHAM Y_2 MO1 'RIGIDITE' ;
G_2 = CHANGER CHAM G_2 MO1 'RIGIDITE' ;
A_2 = CHANGER CHAM A_2 MO1 'RIGIDITE' ;
*
*** DIRECTION 3
*
Y_3
= VARI TM_1 TAB1.
TETMAT.
MO1.
YG3 YG3
; G_3
= VARI TM_1 TAB1.
TETMAT.
MO1.
G13 G13
; N_3
= VARI TM_1 TAB1.
TETMAT.
MO1.
NU13 NU13
; A_3
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALP3 ALP3
;*
N_3 = CHANGER CHAM N_3 MO1 'RIGIDITE' ;
Y_3 = CHANGER CHAM Y_3 MO1 'RIGIDITE' ;
G_3 = CHANGER CHAM G_3 MO1 'RIGIDITE' ;
A_3 = CHANGER CHAM A_3 MO1 'RIGIDITE' ;
*
TEX1
= TEXT CHAYGI ' YG1 Y_1 YG2 Y_2 YG3 Y_3'
; TEX2
= TEXT CHAYGI ' G12 G_1 G23 G_2 G13 G_3'
; TEX3
= TEXT CHAYGI ' NU12 N_1 NU23 N_2 NU13 N_3'
; TEX4
= TEXT CHAYGI ' ALP1 A_1 ALP2 A_2 ALP3 A_3'
; SINON ;
*>>3*************** orthotropie 222222222222222 DDDDDDDDDD
TAB1.TETMAT.MO1.YG1 = @EVMAT TAB1.NOM_MAT.I1 'YG1' TAB1 ;
TAB1.TETMAT.MO1.YG2 = @EVMAT TAB1.NOM_MAT.I1 'YG2' TAB1 ;
EVMA1 = EVMA1 ET TAB1.TETMAT.MO1.YG1 ET TAB1.TETMAT.MO1.YG2 ;
TITRE NOM_MAT1 ' POISSON COEFFICIENT ' ;
TAB1.TETMAT.MO1.NU12 = @EVMAT TAB1.NOM_MAT.I1 'NU12' TAB1 ;
EVMA2 = EVMA2 ET TAB1.TETMAT.MO1.NU12 ;
TITRE NOM_MAT1 ' THERMAL EXPANSION ' ;
TAB1.TETMAT.MO1.ALP1 = @EVMAT TAB1.NOM_MAT.I1 'ALP1' TAB1 ;
TAB1.TETMAT.MO1.ALP2 = @EVMAT TAB1.NOM_MAT.I1 'ALP2' TAB1 ;
EVMA3 = EVMA3 ET TAB1.TETMAT.MO1.ALP1 ET TAB1.TETMAT.MO1.ALP2 ;
TAB1.TETMAT.MO1.G12 = @EVMAT TAB1.NOM_MAT.I1 'G12' TAB1 ;
TM_1
= ( REDU CHP_TM1 TAB1.
ZONE_MAT.
I1 ) ;*
*** DIRECTION 1
*
Y_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
YG1 YG1
; G_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
G12 G12
; N_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
NU12 NU12
; A_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALP1 ALP1
;*
N_1 = CHANGER CHAM N_1 MO1 'RIGIDITE' ;
Y_1 = CHANGER CHAM Y_1 MO1 'RIGIDITE' ;
G_1 = CHANGER CHAM G_1 MO1 'RIGIDITE' ;
A_1 = CHANGER CHAM A_1 MO1 'RIGIDITE' ;
*
*** DIRECTION 2
*
Y_2
= VARI TM_1 TAB1.
TETMAT.
MO1.
YG2 YG2
; A_2
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALP2 ALP2
; Y_2 = CHANGER CHAM Y_2 MO1 'RIGIDITE' ;
A_2 = CHANGER CHAM A_2 MO1 'RIGIDITE' ;
TEX1
= TEXT CHAYGI ' YG1 Y_1 YG2 Y_2 '
; TEX2
= TEXT CHAYGI ' G12 G_1 '
; TEX3
= TEXT CHAYGI ' NU12 N_1 '
; TEX4
= TEXT CHAYGI ' ALP1 A_1 ALP2 A_2 '
; FINSI ;
** MA1 = MATE MO1 (TEXT CHAYG1 ' Y_1 ' ) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYG2 ' Y_2 ')) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYG3 ' Y_3 ')) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYG12 ' G_1' )) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYG23 ' G_2' )) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYG13 ' G_3' )) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYNU12 ' N_1' )) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYNU23 ' N_2' )) ;
** MA1 = MA1 ET (MATE MO1 (TEXT CHAYNU13 ' N_3' )) ;
;
MA1
= MATE MO1 TEX1
(TEXT TAB1 .
TEXTMECA .
101 ) ; MA2
= MATE MO1 TEX2
(TEXT TAB1 .
TEXTMECA .
101 ) ; MA3
= MATE MO1 TEX3
(TEXT TAB1 .
TEXTMECA .
101 ) ; MA4
= MATE MO1 TEX4
(TEXT TAB1 .
TEXTMECA .
101 ) ; MA1 = MA1 ET MA2 ET MA3 ET MA4 ;
*>>2 ************* Isotropie
SINON ;
MESS '
>>> NON ORTHO' TAB1.
TEXTMECA.
I1 ; TITRE NOM_MAT1 ' YOUNG MODULUS ' ;
TAB1.TETMAT.MO1.YOUN = @EVMAT TAB1.NOM_MAT.I1 'YOUN' TAB1 ;
EVMA1 = EVMA1 ET TAB1.TETMAT.MO1.YOUN ;
TITRE NOM_MAT1 ' POISSON COEFFICIENT ' ;
TAB1.TETMAT.MO1.NU = @EVMAT TAB1.NOM_MAT.I1 'NU' TAB1;
EVMA2 = EVMA2 ET TAB1.TETMAT.MO1.NU ;
TITRE NOM_MAT1 ' THERMAL EXPANSION ' ;
TAB1.TETMAT.MO1.ALPH = @EVMAT TAB1.NOM_MAT.I1 'ALPH' TAB1;
EVMA3 = EVMA3 ET TAB1.TETMAT.MO1.ALPH ;
TM_1
= ( REDU CHP_TM1 TAB1.
ZONE_MAT.
I1 ) ; Y_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
YOUN YOUN
; NU_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
NU NU
; AL_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALPH ALPH
; NU_1 = CHANGER CHAM NU_1 MO1 'RIGIDITE' ;
Y_1 = CHANGER CHAM Y_1 MO1 'RIGIDITE' ;
AL_1 = CHANGER CHAM AL_1 MO1 'RIGIDITE' ;
TEX1 = TEXTE ' YOUN Y_1 NU NU_1 ALPH AL_1 ' ;
FINSI ;
*>>2
SI ( IMOTM1 EGA 5 ) ;
TITRE NOM_MAT1 ' YIELD STRESS ' ;
TAB1.TETMAT.MO1.SIGY = @EVMAT TAB1.NOM_MAT.I1 'SIGY' TAB1 ;
EVMA4 = EVMA4 ET TAB1.TETMAT.MO1.SIGY ;
TEX1 = TEXTE TEX1 ' SIGY YM_1 ' ;
TITRE NOM_MAT1 ' YIELD MODULUS' ;
YM_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
SIGY SIGY
; YM_1 = CHANGER CHAM YM_1 MO1 'RIGIDITE' ;
TAB1.TETMAT.MO1.H = @EVMAT TAB1.NOM_MAT.I1 'H' TAB1 ;
EVMA5 = EVMA5 ET TAB1.TETMAT.MO1.H ;
H_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
H H
; H_1 = CHANGER CHAM H_1 MO1 'RIGIDITE' ;
TEX1 = TEXTE TEX1 'H H_1 ' ;
* TEMP IMPR PLACE ;
* MENAGE ;
@TRCPLAS TAB1 MO1 I1 ;
* TEX5 TEX1 TEX2 TEX3 TEX4 ;
FINSI;
*>1
SINON ;
QUITTER BOMA11 ;
FINSI ;
*>1
SI ( I1 EGA 1 ) ;
MOD_1 = MO1 ;
MAT_1 = MA1 ;
SINON ;
MOD_1 = MOD_1 ET MO1 ;
MAT_1 = MAT_1 ET MA1 ;
FINSI ;
TAB1.MAT_MAT.I1 = MA1 ;
FIN BOMA11 ;
TAB1.MATTOT = MAT_1 ;
TAB1.MODTOT = MOD_1 ;
TAC8 = TABLE ;
TAC8.1 = ' NOLI ' ;
TAC8.2
= 'MARQ
PLUS REGU'
; TAC8.3 = 'MARQ ETOI REGU' ;
TAC8.4 = 'MARQ LOSA REGU' ;
TAC8.5 = 'MARQ CARR REGU' ;
TAC8.6
= 'MARQ
TRIA REGU'
; TAC8.7 = 'MARQ TRIB REGU' ;
TAC8.8
= 'MARQ
PLUS REGU'
; TAC8.9 = 'MARQ ETOI REGU' ;
TAC8.10 = 'MARQ CROI REGU' ;
DESS EVMA1 XBOR
0.
2000.
LEGE MIMA
DATE TAC8
; DESS EVMA2 XBOR
0.
2000.
LEGE MIMA
DATE TAC8
; DESS EVMA3 XBOR
0.
2000.
LEGE MIMA
DATE TAC8
; DESS EVMA4 XBOR
0.
2000.
LEGE MIMA
DATE TAC8
; DESS EVMA5 XBOR
0.
2000.
LEGE MIMA
DATE TAC8
; MESS '
>>>>>>> fin materiaux'
; MO1 = TAB1.MODL_MAT.1 ;
MA1 = TAB1.MAT_MAT.1 ;
CHAEPXX
= MANU 'CHML' MO1 EPXX
0.001 EPYY
0.
EPZZ 0.
GAXY 0.
GAXZ 0.
GAYZ 0.
TYPE 'DEFORMATIONS' 'STRESSES'
;CHASIXX = MO1 HO11 * CHAEPXX ;
CHAEEXX = MO1 HO11 * CHASIXX ;
MESS '
---------------------------------> sortie de DEFMAT'
; FINPROC ;
* *
* *
* *
* *
DEBPROC DEFORAPH LIGN_1*MAILLAGE INSTEVOL*FLOTTANT MOD1*MMODEL TAB1*TABLE SM1/EVOLUTION EM1/EVOLUTION VAL1/FLOTTANT VAL2/FLOTTANT;
MESS '
-----------------------------------> entree
dans DEFORAPH '
; *
* !!! NON ENCORE OPERATIONNEL !!!
*
MESS ' !!!
NON ENCORE OPERATIONNEL !!! '
;
* test sur la dimension
SI (EGA DIM1 2);
MESS ' attention contraph ne tourne pas en 3D'
; QUITTER CONTRAPH ;
* malgre le probleme de PROI en 3D, qui n a pas ete regle
* mais qu on accepte faute de mieux
FINSI;
SI (NON (EXISTE TAB1 RESUCONT)) ;
MESS ' TAB1 NE CONTIENT PAS DE CONTRAINTES '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
* test sur la dimension de LIGN_1*MAILLAGE : a faire
LCONFON = FAUX ;
MAIL_1
= MOD1
EXTR 'MAIL'
;N_2
= NBNO (MAIL_1
ET LIGN_1
) ;
SI ( EGA N_1 N_2 ) ;
LCONFON = VRAI ;
FINSI ;
SI (NON(EXISTE TAB1 TETMAT)) ;
MESS ' TAB1 NE CONTIENT PAS DE TETMAT '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
SI (NON(EXISTE (TAB1.TETMAT) MOD1)) ;
MESS ' TAB1.
TETMAT NE CONTIENT PAS DE MODELE '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
SI (NON(EXISTE (TAB1.TETMAT.MOD1) SIGY)) ;
MESS ' LE MATERIAU DEMANDE N EST PAS PLASTIQUE '
; MESS ' SORTIE DE CONTRAPH '
; QUITTER CONTRAPH ;
FINSI ;
TITR ' DEPOUILLEMENT LE LONG DE LA LIGNE '
; *
* --- Depouillement en deformation
*
DEPL1 = TAB1.RESUDEPL.INSTEVOL ;
PLAS1
= EXCO ( TAB1.
RESUVARI.
INSTEVOL) EPSE
;
* --- METHODE 1
* evaluation de la deformation ELASTIQUE PAR ELAS
* caract pris contant egal a sa moyenne sur l'intervalle de T considere
* deduction de EPStherm
CONT1
= REDU (TAB1.
RESUCONT.
INSTEVOL) MOD1
;ELAS1_1
= ELAS MOD1 CONT1
(TAB1.
MAT_MAT.3
) ;
* --- METHODE 2
* evaluation de la deformation du a la thermique
* alpha pris contant egal a sa moyenne sur l'intervalle de T considere
* deduction de EPS elas
ID1
= INDE (TAB1.'CHPOTHETA'
) ;CHT1 = TAB1.CHPOTHETA . INSTEVOL - (TAB1.CHPOTHETA. (ID1 . 1)) ;
CHT2 = (TAB1.CHPOTHETA. (ID1 . 1)) + (CHT1 / 2.) ;
ALPHA1
= VARI CHT2 TAB1.
TETMAT.
MOD1.'ALPH'
;THER2_1
= ALPHA1
* (EXCO CHT1 'T'
) ;THER2_2
= (CHAN CHAM THER2_1
(EXTR MOD1 MAIL
) NOEUD
) * -1.
;THER2_2
= (CHAN CHAM THER2_1
(EXTR MOD1 MAIL
) NOEUD
) ;
* evaluation de la limite elastique exprimee en epsilon
* cette limite est egale a Re/E c'est a dire SIGY / YOUN en langage CASTEM
* le tout dependant de la temperature du point considere
CHYOUN1
= VARI TAB1.
CHPOTHETA.
INSTEVOL TAB1.
TETMAT.
MOD1.'YOUN'
;CHSIGY1
= VARI TAB1.
CHPOTHETA.
INSTEVOL TAB1.
TETMAT.
MOD1.'SIGY'
;
CHYOUN2 = CHYOUN1 ** (-1) ;
CHSIGY2
= CHAN CHAM CHSIGY1
(EXTR MOD1 MAIL
) NOEUD
;
CHYOUN3
= CHAN CHAM CHYOUN2
(EXTR MOD1 MAIL
) NOEUD
;CHSIGY3 = CHSIGY2 ;
LIMELAS1 = CHSIGY3 * CHYOUN3 ;
SI LCONFON ;
SI (EXISTE EM1 ) ;
FINSI ;
SINON ;
TOTA2
= PROI LIGN_1
(CHAN NOEUD MOD1 TOTA1
) ; LIMELAS2
= PROI LIGN_1 LIMELAS1
; ELAS1_2
= PROI LIGN_1
(CHAN NOEUD MOD1 ELAS1_1
) ; THER2_3
= PROI LIGN_1 THER2_2
; SI (EXISTE EM1) ;
FINSI ;
FINSI ;
SI (EGA DIM1 2) ;
EXX1
= EXCO EPSETOT2 EPXX
; EYY1
= EXCO EPSETOT2 EPYY
; GXY1
= EXCO EPSETOT2 GAXY
; EPSETOT2 = ((2. ** .5 ) / 3.) * (( ((EXX1 - EYY1 ) ** 2) + 6 * ((GXY1 * 2. ) ** 2) ) ** .5);
SINON ;
TOTA3 = ((2. ** .5 ) / 3.) * ( ( ((EXX1 - EYY1 ) ** 2) + ((EXX1 - EZZ1 ) ** 2) + ((EYY1 - EZZ1 ) ** 2) + 6. * ( ((GXY1 / 2.) ** 2) + ((GXZ1 / 2.) ** 2) + ((GYZ1 / 2.)** 2) ) ) ** .5);
EXX1
= EXCO ELAS1_2 EPXX
; EYY1
= EXCO ELAS1_2 EPYY
; EZZ1
= EXCO ELAS1_2 EPZZ
; GXY1
= EXCO ELAS1_2 GAXY
; GXZ1
= EXCO ELAS1_2 GAXZ
; GYZ1
= EXCO ELAS1_2 GAYZ
; ELAS1_3 = ((2. ** .5 ) / 3.) * ( ( ((EXX1 - EYY1 ) ** 2) + ((EXX1 - EZZ1 ) ** 2) + ((EYY1 - EZZ1 ) ** 2) + 6. * (( (GXY1 / 2.) ** 2) + ((GXZ1 / 2.)** 2) + ((GYZ1 / 2.)** 2)) ) ** .5);
FINSI ;
THER1_1
= (EXCO TOTA3 SCAL
) - (EXCO PLAS2 EPSE
) - (EXCO ELAS1_3 SCAL
) ;
TAC1 = TABLE ;
TAC1.1
= 'MARQ LOSA REGU
TITR METH1'
;TAC1.3
= 'MARQ CROI REGU
TITR METH2'
;EVELL = EVEL1 ET EVEL2 ;
TAC1 = TABLE ;
TAC1.1
= 'MARQ LOSA REGU
TITR METH1'
;TAC1.3
= 'MARQ CROI REGU
TITR METH2'
;EVETT = EVET1 ET EVET2 ;
TITRE 'EPS_TOT' ;
TITRE 'EPS_PLAS' ;
TITRE 'EPS_THER' ;
TITRE 'LIM_ELAS' ;
TAD1 = TABLE ;
TAD1.1
= CHAI 'MARQ CROI REGU
TITR EPS_TOT'
;TAD1.3
= CHAI 'MARQ ETOI REGU
TITR EPS_PLAS '
;TAD1.5
= CHAI 'MARQ LOSA REGU
TITR EPS_THER '
;EVEPS1 = EVTOT1 ET EVPLAS1 ET EVTHER1 ET EVLIEL1 ;
DESS EVEPS1 LEGE MIMA TAD1
;
MESS '
-----------------------------------> sortie de DEFORAPH '
;
FINPROC ;
**** @DEFO_EQ
DEBPROC @DEFO_EQ EPSE1*MCHAML MOD1*MMODEL ;
MESS '
----------------------------> calling @DEFO_EQ'
;
EX1
= EXCO EPSE1 EPXX NOID SCAL
; EY1
= EXCO EPSE1 EPYY NOID SCAL
; EZ1
= EXCO EPSE1 EPZZ NOID SCAL
; EG1
= EXCO EPSE1 GAXY NOID SCAL
; EG2
= EXCO EPSE1 GAXZ NOID SCAL
; EG3
= EXCO EPSE1 GAYZ NOID SCAL
;
TERM1 = (EX1 - EY1 ) ** 2 ;
TERM2 = (EY1 - EZ1 ) ** 2 ;
TERM3 = (EZ1 - EX1 ) ** 2 ;
TERM4 = 6. *( ((ABS (EG1/2.) ) ** 2.) + ((ABS (EG2/2.) ) ** 2.) + ((ABS (EG3/2.) ) ** 2.) );
EPS_ETOI = ((2. ** .5 )/3.) * ((TERM1 + TERM2 + TERM3 + TERM4 ) ** .5 );
* MIN1 = MINI EPS_ETOI ;
* MAX1 = MAXI EPS_ETOI ;
* RM 30/08/95 suppression du trace du champ
*
* SI (EGA MIN1 MAX1 1.E-6) ;
* MESS ' epsilon equivalent constant egal a ' MAX1;
* SINON ;
* TITR1 = CHAIN 'mini maxi epsilon equivalent : 'MIN1 MAX1;
* TITR TITR1 ;
* TRAC EPS_ETOI MOD1 (EXTR MOD1 'MAIL');
* FINSI ;
*
MESS '
----------------------------> exiting @DEFO_EQ'
; FINPROC EPS_ETOI;
**** @DEMATH1
DEBPROC @DEMATH1 TAB1*TABLE ;
NIVEAU = TAB1.'NIVEAU' ;
* modification RMITTEAU le 6 juin 96 pour avoir les bonnes legendes
* dans lestraces
* avec la version 96
SI (NIVEAU >EG 4) ;
MESS '
---------------------------------> calling @DEMATH1'
; FINSI ;
TACC1 = TABLE ;
TACC1.TITRE = TABLE ;
TAB1.DEF_MO = TABLE;
IC1 = 0 ;
SI ( EXISTE (TAB1.ZONE_MAT) 1 ) ;
MESS '
>@DEMATH1
> Materiau
----> 1 '
; MESS '
>@DEMATH1
> Definition of the conductivity of ' TAB1.
NOM_MAT.1
; TITRE 'MATERIAL CONDUCTIVITY OR CAPACITY' ;
TAB1.'MAILLAG1' = TAB1. ZONE_MAT.1 ;
TAB1.'MAILLAGE' = TAB1. ZONE_MAT.1 ;
SI ( EXISTE (TAB1.NOM_MAT) 1.1 ) ;
MESS '
>@DEMATH1
> ' TAB1.
NOM_MAT.1 ' est orthotrope'
; SI ( NON ( EXISTE (TAB1.NOM_MAT) 1) ) ;
TAB1.
NOM_MAT .
1 = TEXT '_ORTHOTROPE'
; FINSI ;
TAB1.'EVOKX1' = @EVMAT (TAB1.NOM_MAT. 1.1) 'CONDUCTIVITE' TAB1 ;
TAB1.'EVOKY1' = @EVMAT (TAB1.NOM_MAT. 1.2) 'CONDUCTIVITE' TAB1 ;
TAB1.'EVOKZ1' = @EVMAT (TAB1.NOM_MAT. 1.3) 'CONDUCTIVITE' TAB1 ;
TAB1.'CONDUCT1' = @EVMAT (TAB1.NOM_MAT. 1.1) 'CONDUCTIVITE' TIN TAB1;
si (ega v1 2) ;
EVMA1 = ( TAB1.'EVOKX1') ET ( TAB1.'EVOKY1') ;
IC1 = IC1 + 1;
TACC1.IC1 = 'MARQ CARR ' ;
TACC1.TITRE.IC1 = TAB1.NOM_MAT.1.1 ;
IC1 = IC1 + 1 ;
TACC1.
IC1 = 'MARQ
TRIA '
; TACC1.TITRE.IC1 = TAB1.NOM_MAT.1.2 ;
sinon ;
EVMA1 = ( TAB1.'EVOKX1') ET ( TAB1.'EVOKY1') ET TAB1.'EVOKZ1' ;
IC1 = IC1 + 1;
TACC1.IC1 = 'MARQ CARR ' ;
TACC1.TITRE.IC1 = TAB1.NOM_MAT.1.1 ;
IC1 = IC1 + 1 ;
TACC1.
IC1 = 'MARQ
TRIA '
; TACC1.TITRE.IC1 = TAB1.NOM_MAT.1.2 ;
IC1 = IC1 + 1 ;
TACC1.
IC1 = 'MARQ
TRIA '
; TACC1.TITRE.IC1 = TAB1.NOM_MAT.1.3 ;
finsi ;
TAB1.
DEF_MO.1
= MODE TAB1.
ZONE_MAT.1 'THERMIQUE' 'ORTHOTROPE'
;
SINON ;
MESS '
>@DEMATH1
> ' TAB1.
NOM_MAT.1 ' est isotrope'
; TAB1.'EVOCON1' = @EVMAT (TAB1.NOM_MAT.1) 'CONDUCTIVITE' TAB1;
TAB1.'CONDUCT1' = @EVMAT (TAB1.NOM_MAT.1) 'CONDUCTIVITE' TIN TAB1;
TAB1.'EVOCOND' = @EVMAT (TAB1.NOM_MAT.1) 'CONDUCTIVITE' TAB1 ;
EVMA1 = TAB1.'EVOCON1' ;
TAB1.
DEF_MO.1
= MODE TAB1.
ZONE_MAT.1 'THERMIQUE' 'ISOTROPE'
; IC1 = IC1 + 1 ;
TACC1.
IC1 = 'MARQ
TRIA '
; TACC1.TITRE.IC1 = TAB1.NOM_MAT.1;
FINSI ;
SI ( TAB1.TRANSITOIRE ) ;
MESS '
>@DEMATH1
> Definition of the capacity of ' TAB1.
NOM_MAT.1
; TAB1.'EVOCAPA' = @EVMAT (TAB1. NOM_MAT.1) 'CAPACITE' TAB1;
EVCA1 = TAB1.'EVOCAPA' ;
FINSI ;
FINSI ;
SI ( EXISTE (TAB1.ZONE_MAT) 2 ) ;
MESS '
>@DEMATH1
> Materiau
----> 2 '
; MESS '
>@DEMATH1
> Definition of the conductivity of ' TAB1.
NOM_MAT.2
; TAB1.'MAILLAG2' = TAB1. ZONE_MAT.2 ;
* TAB1.'EVOCON2' = @EVMAT (TAB1. NOM_MAT.2) 'CONDUCTIVITE' TAB1 ;
* TAB1.'CONDUCT2' = @EVMAT (TAB1. NOM_MAT.2) 'CONDUCTIVITE' TIN TAB1 ;
* EVMA1 = EVMA1 ET ( TAB1.'EVOCON2') ;
* IC1 = IC1 + 1 ;
* TACC1.IC1 = ET 'MARQ CARR TITRE' ' ' TAB1.NOM_MAT.2;
* TAB1.DEF_MO.2 = MODE TAB1.ZONE_MAT.2 'THERMIQUE' 'ISOTROPE' ;
*> js 050296
SI ( EXISTE (TAB1.NOM_MAT) 2.1 ) ;
MESS '
>@DEMATH1
> ' TAB1.
NOM_MAT.2 ' est orthotrope'
; SI ( NON ( EXISTE (TAB1.NOM_MAT) 2) ) ;
TAB1.
NOM_MAT .
2 = TEXT '_ORTHOTROPE'
; FINSI ;
TAB1.'EVOKX2' = @EVMAT (TAB1.NOM_MAT. 2.1) 'CONDUCTIVITE' TAB1 ;
TAB1.'EVOKY2' = @EVMAT (TAB1.NOM_MAT. 2.2) 'CONDUCTIVITE' TAB1 ;
TAB1.'EVOKZ2' = @EVMAT (TAB1.NOM_MAT. 2.3) 'CONDUCTIVITE' TAB1 ;
TAB1.'CONDUCT2' =@EVMAT (TAB1.NOM_MAT. 2.1) 'CONDUCTIVITE' TIN TAB1;
EVMA1 = EVMA1 ET ( TAB1.'EVOKX2') ET ( TAB1.'EVOKY2');
IC1 = IC1 + 1;
TACC1.IC1 = 'MARQ CROI ' ;
TACC1.TITRE.IC1 = (TAB1.NOM_MAT.2.1);
* MESS TACC1.IC1 ;
IC1 = IC1 + 1 ;
TACC1.
IC1 = 'MARQ
TRIA '
; TACC1.TITRE.IC1 = (TAB1.NOM_MAT.2.2);
* MESS TACC1.IC1 ;
TAB1.
DEF_MO.2
= MODE TAB1.
ZONE_MAT.2 'THERMIQUE' 'ORTHOTROPE'
; SINON ;
TAB1.'EVOCON2' = @EVMAT (TAB1.NOM_MAT.2) 'CONDUCTIVITE' TAB1;
TAB1.'CONDUCT2' = @EVMAT (TAB1.NOM_MAT.2) 'CONDUCTIVITE' TIN TAB1;
TAB1.'EVOCON2' = @EVMAT (TAB1.NOM_MAT.2) 'CONDUCTIVITE' TAB1 ;
EVMA1 = EVMA1 ET TAB1.'EVOCON2' ;
TAB1.
DEF_MO.2
= MODE TAB1.
ZONE_MAT.2 'THERMIQUE' 'ISOTROPE'
; IC1 = IC1 + 1 ;
TACC1.IC1 = 'MARQ TRIB ' ;
TACC1.TITRE.IC1 = (TAB1.NOM_MAT.2);
* MESS TACC1.IC1 ;
FINSI ;
*>
SI ( TAB1.TRANSITOIRE ) ;
MESS '
>@DEMATH1
> Definition of the capacity of ' TAB1.
NOM_MAT.2
; TAB1.'EVOCAP2' = @EVMAT (TAB1. NOM_MAT.2) 'CAPACITE' TAB1 ;
EVCA1 = EVCA1 ET ( TAB1.'EVOCAP2') ;
FINSI ;
FINSI ;
SI ( EXISTE (TAB1.ZONE_MAT) 3 ) ;
MESS '
>@DEMATH1
> Materiau
----> 3 '
; MESS '
>@DEMATH1
> Definition of the conductivity of ' TAB1.
NOM_MAT.3
; TAB1.'MAILLAG3' = TAB1. ZONE_MAT.3 ;
TAB1.'EVOCON3' = @EVMAT (TAB1. NOM_MAT.3) 'CONDUCTIVITE' TAB1 ;
TAB1.'CONDUCT3' = @EVMAT (TAB1. NOM_MAT.3) 'CONDUCTIVITE' TIN TAB1 ;
EVMA1 = EVMA1 ET ( TAB1.'EVOCON3') ;
IC1 = IC1 + 1 ;
TACC1.IC1 = 'MARQ ETOI ' ;
TACC1.TITRE.IC1=TAB1.NOM_MAT.3;
TAB1.
DEF_MO.3
= MODE TAB1.
ZONE_MAT.3 'THERMIQUE' 'ISOTROPE'
; SI ( TAB1.TRANSITOIRE ) ;
MESS '
>@DEMATH1
> Definition of the capacity of ' TAB1.
NOM_MAT.3
; TAB1.'EVOCAP3' = @EVMAT (TAB1. NOM_MAT.3) 'CAPACITE' TAB1 ;
EVCA1 = EVCA1 ET ( TAB1.'EVOCAP3') ;
FINSI ;
FINSI ;
SI ( EXISTE (TAB1.ZONE_MAT) 4 ) ;
MESS '
>@DEMATH1
> Material
----> 4 '
; MESS '
>@DEMATH1
> Definition of the conductivity of ' TAB1.
NOM_MAT.4
; TAB1.'MAILLAG4' = TAB1. ZONE_MAT.4 ;
TAB1.'EVOCON4' = @EVMAT (TAB1. NOM_MAT.4) 'CONDUCTIVITE' TAB1 ;
TAB1.'CONDUCT4' = @EVMAT (TAB1. NOM_MAT.4) 'CONDUCTIVITE' TIN TAB1 ;
EVMA1 = EVMA1 ET ( TAB1.'EVOCON4') ;
IC1 = IC1 + 1 ;
TACC1.IC1 = 'MARQ LOSA ' ;
TACC1.TITRE.IC1 = TAB1.NOM_MAT.4 ;
TAB1.
DEF_MO.4
= MODE TAB1.
ZONE_MAT.4 'THERMIQUE' 'ISOTROPE'
; SI ( TAB1.TRANSITOIRE ) ;
MESS '
>@DEMATH1
> Definition of the capacity of ' TAB1.
NOM_MAT.4
; TAB1.'EVOCAP4' = @EVMAT (TAB1. NOM_MAT.4) 'CAPACITE' TAB1 ;
EVCA1 = EVCA1 ET ( TAB1.'EVOCAP4') ;
FINSI ;
FINSI ;
SI (NIVEAU >EG 4) ;
MESS '
---------------------------------> exiting @DEMATH1'
; FINSI ;
FINPROC EVMA1 EVCA1 TACC1 ;
**** @DEMATH2
DEBPROC @DEMATH2 TAB1*TABLE ;
TAB1.TABCON = TABLE ;
IPP1 = 0 ;
REPETER BOUCM7 ;
IPP1 = IPP1 + 1 ;
SI ( EXISTE (TAB1.ZONE_MAT) IPP1 ) ;
* MO_1 = MODE TAB1.ZONE_MAT.IPP1 'THERMIQUE' 'ISOTROPE';
MO_1 = TAB1.DEF_MO.IPP1 ;
TAB1.
ZONE_MAT.
IPP1 = EXTR 'MAIL' TAB1.
DEF_MO.
IPP1 ; TAB1.TABCON.MO_1 =@EVMAT (TAB1.NOM_MAT.IPP1) 'CONDUCTIVITE' TAB1;
SINON ;
QUITTER BOUCM7 ;
FINSI ;
FIN BOUCM7 ;
FINPROC EVMA1 EVCA1 TACC1 ;
DEBPROC DEPOMIMA TAB1*TABLE ;
OPTION ECHO
1 IMPR
99 TRAC BENS
;MOD_1 = TAB1.MODTOT ;
MAT_1 = TAB1.MATTOT ;
SI (EXISTE TAB1 L_ADEPOU ) ;
L_1 = TAB1.L_ADEPOU ;
FINSI ;
SI ( NON (EXISTE TAB1 MO_ADEPOU )) ;
MOTOT1 = MOD_1 ;
SINON ;
MOTOT1 = TAB1.MO_ADEPOU ;
FINSI ;
N_MAIL
= EXTR 'MAIL' MOTOT1
;*SI ( NON (EXISTE TAB1 NMAIL_ADEPOU )) ;
* N_MAIL = 'MAIL TOT' ;
*SINON ;
* N_MAIL = TAB1.NMAIL_ADEPOU ;
*FINSI ;
I1 = 0 ;
MESS '
>>>>>>>> ' N_MAIL ' :'
; MESS '
===================================='
; MESS '
******************************'
; MESS '
*** CONTRAINTES
**'
; MESS '
******************************'
; REPETER BDEPO1
( DIME TAB1.
L_CASADEPOU ) ; I1 = I1 + 1 ;
XIT1
= EXTR I1 TAB1.
L_CASADEPOU ; VMI1
= VMIS MOD_1 TAB1.
RESUCONT.
XIT1 ; SIRESU1 = TAB1.RESUCONT.XIT1 ET VMI1 ;
SIRESUA = TAB1.RESUVARI.XIT1 ET VMI1 ;
I2 = 0 ;
REPETER BDEPO2
( DIME TAB1.
LM_SIGCOMP) ; I2 = I2 + 1 ;
MOCOMP
= EXTR TAB1.
LM_SIGCOMP I2
; SI (( EGA MOCOMP '
VMIS'
) OU ( EGA MOCOMP 'VONM'
) ) ; MOCOMP = 'SCAL' ;
FINSI ;
SBID1
= REDU ( EXCO SIRESU1 MOCOMP
) MOTOT1
; MAXSB1
= ((MAXI SBID1
)/1.
E6) ; MINSB1
= ((MINI SBID1
)/1.
E6) ; MESS TMOCOMP '
(MPa
) : ' MINSB1 '
* ' MAXSB1
; FIN BDEPO2 ;
SI (EXISTE TAB1 L_ADEPOU ) ;
DEPOULI L_1 'CONTRAINTES' MOD_1 TAB1.RESUCONT.XIT1 GLOBAL MASSIF ;
FINSI ;
FIN BDEPO1 ;
I3 = 0 ;
MESS '
******************************'
; MESS '
*** DEFORMATIONS
**'
; MESS '
******************************'
; REPETER BDEPO3
( DIME TAB1.
L_CASADEPOU ) ; I3 = I3 + 1 ;
XIT1
= EXTR I3 TAB1.
L_CASADEPOU ; DEPL_1 = TAB1.RESUDEPL.XIT1 ;
SI_1 = TAB1.RESUCONT.XIT1 ;
EPS_0
= EPSI MOD_1 DEPL_1
; EPS_1
= EPS_0
ET ( EXCO EPSE TAB1.
RESUVARI.
XIT1) ; I4 = 0 ;
REPETER BDEPO4
( DIME TAB1.
LM_EPSCOMP) ; I4 = I4 + 1 ;
MOCOMP
= EXTR TAB1.
LM_EPSCOMP I4
; SI (( EGA MOCOMP 'EPZZ'
) ET ( EGA (VALE MODE) 'PLANCONT'
)) ; EPS_2 = TAB1.RESUDEFI.XIT1 + (EPSCHL MOD_1 SI_1 (TAB1.CHPOTHETA. 0.) (TAB1.CHPOTHETA.XIT1) TAB1 ) ;
EPSB2
= REDU ( EXCO EPS_2 MOCOMP
) MOTOT1
; MAXEB2
= ((MAXI EPSB2
) * 1.
E2) ; MINEB2
= ((MINI EPSB2
) * 1.
E2) ; MESS TMOCOMP '
( %
) : ' MINEB2 '
* ' MAXEB2
; SINON ;
EPSB1
= REDU ( EXCO EPS_1 MOCOMP
) MOTOT1
; MAXEB1
= ((MAXI EPSB1
) * 1.
E2) ; MINEB1
= ((MINI EPSB1
) * 1.
E2) ; MESS TMOCOMP '
( %
) : ' MINEB1 '
* ' MAXEB1
; FINSI ;
FIN BDEPO4 ;
SI (EXISTE TAB1 L_ADEPOU ) ;
DEPOULI L_1 'DEFORMATIONS' MOD_1 EPS_0 GLOBAL MASSIF ;
FINSI ;
FIN BDEPO3 ;
FINPROC ;
*****************************************************************
* *
* Procedure DEPOULI : trace des contraintes ou des deformations *
* le long d'un ligne quelconque *
* *
*****************************************************************
'DEBPROC' FRENETT LIGN_1*MAILLAGE ;
MESS '
----------------------> entree
dans FRENETT '
; SI( V1 EGA 2 ) ;
CHT CHN CHB = FRENET LIGN_1 'TRACE' ;
CHPP = CHT ET CHN ;
SINON ;
CHT CHN CHB = FRENET LIGN_1 'TRACE' (0. 0. 1000.);
CHPP = CHT ET CHN ET CHB ;
FINSI ;
MESS '
----------------------> sortie de FRENETT '
; 'FINPROC' CHPP;
'
DEBPROC' DEPOULI LIGN_1
*MAILLAGE M_IND1
*MOT MOD_L
*MMODEL MCHA_E2
*MCHAML M_REP2
*MOT M_ELEM
*MOT VECT1
/POINT VECT2
/POINT MCHA_E3
/MCHAML
;
MESS '
----------------------> entree
dans DEPOULI'
;
TAB1 = TABLE;
TAC1 = TABLE ;
SI (( NON (EGA M_ELEM 'MASSIF'
)) ET (NON (EGA M_ELEM 'INFE'
)) ET (NON (EGA M_ELEM 'MOYE'
)) ET (NON (EGA M_ELEM '
SUPE'
))); MESS '
>>>DEPOULI
>>>> OPTION
NON PREVU :' M_ELEM
; MESS '
>>>DEPOULI
>>>> ON STOPPE ICI ....'
; ERREUR 'MAUVAIS_INDIC_ELEMENT_DANS_DEPOULI';
FINSI ;
SI (( NON (EGA M_REP2 'FIXE')) ET (NON (EGA M_REP2 'GLOBAL')) ET (NON (EGA M_REP2 'LOCAL')));
MESS '
>>>DEPOULI
>>>> OPTION
NON PREVU :' M_REP2
; MESS '
>>>DEPOULI
>>>> ON STOPPE ICI ....'
; ERREUR 'MAUVAIS_INDIC_REPERE_DANS_DEPOULI';
SINON;
M_REPE = M_REP2 ;
FINSI ;
SI (( NON (EGA M_IND1 'CONTRAINTES')) ET ( NON (EGA M_IND1 'DEFORMATIONS')) );
MESS '
>>>DEPOULI
>>>> OPTION
NON PREVU :' M_IND1
; MESS '
>>>DEPOULI
>>>> ON STOPPE ICI ....'
; ERREUR 'MAUVAIS_INDIC_DANS_DEPOULI';
FINSI ;
LCONFON = FAUX ;
MAIL_1
= MOD_L
EXTR 'MAIL'
;N_2
= NBNO (MAIL_1
ET LIGN_1
);
SI ( EGA N_1 N_2 ) ;
LCONFON = VRAI;
FINSI ;
SI (EXISTE MCHA_E3);
SI (EGA M_IND1 'CONTRAINTES');
CAR1 = MCHA_E3;
FINSI ;
SI (EGA M_IND1 'DEFORMATIONS');
MCHA_EP = MCHA_E3;
FINSI ;
FINSI;
SI (EGA M_IND1 'CONTRAINTES');
MO_TI1
= MOT 'STRESSES ALONG THE LINE '
;FINSI ;
SI (EGA M_IND1 'DEFORMATIONS');
MO_TI1
= MOT 'STRAINS ALONG THE LINE '
;FINSI ;
SI (EGA M_REPE 'FIXE');
MO_TI2
= MOT '
(REPERE FIXE DONNE
)'
;SINON;
SI (EGA M_REPE 'GLOBAL');
MO_TI2
= MOT '
(REPERE GLOBAL
)'
; SINON;
MO_TI2
= MOT '
(REPERE LOCAL DE FRENET
)'
; FINSI;
FINSI;
SI(NON (EXISTE L_COQ2 ));
L_COQ1 = FAUX ;
SINON ;
L_COQ1 = L_COQ2 ;
FINSI;
SI (EGA M_REPE 'FIXE');
SI ((VALEUR
DIME) EGA 3); MCHA_E11 = RTENS MCHA_E2 MOD_L VECT1 VECT2;
MCHA_E1 = MCHA_E11;
SINON;
MCHA_E11 = RTENS MCHA_E2 MOD_L VECT1;
MCHA_E1 = MCHA_E11;
FINSI;
SINON;
MCHA_E1 = MCHA_E2;
FINSI;
***CHTT1 CHPOINT sur la ligne
***EV_OTT evolution globale
CHM1
= REDU MCHA_E1 MOD_L
;LIST1
= MOTS CROI
TRIA PLUS LOSA CARR TRIB ETOI TRIB CARR LOSA
;
SI ( (EGA M_REPE 'FIXE') OU (EGA M_REPE 'GLOBAL') );
SI (EGA M_IND1 'CONTRAINTES');
SI (EGA (VALEUR
DIME) 2); SINON;
LIST2
= MOTS SMXX SMYY SMZZ SMXY SMXZ SMYZ
VMIS TRES TREI TREE
; FINSI;
SINON;
SI (EGA (VALEUR
DIME) 2); SINON;
LIST2
= MOTS EPXX EPYY EPZZ GAXY GAXZ GAYZ
PLAS; FINSI;
FINSI;
I1 = 1;
REPETER BOUC1
(DIME TC1
); SSI1
= EXCO MOC1 CHM1 'SCAL'
; SI LCONFON;
SINON ;
FINSI;
TAB1.MOC1 = EV_I1;
TITRE MO_TI1 MO_TI2;
SI ( I1 EGA 1 );
* TAC1.1 = CHAINE ' MARQ' ' ' MARQ1 ' REGU ' ' TITR' ' ' COMP1;
EV_OTT = EV_I1;
SINON ;
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU ' ' TITR' ' ' COMP1;
EV_OTT = EV_OTT ET EV_I1 ;
FINSI ;
I1 = I1 + 1;
FIN BOUC1;
FINSI ;
SI (EGA M_REPE 'LOCAL');
SI (EGA M_IND1 'CONTRAINTES');
SI (EGA (VALEUR
DIME) 2); SINON;
LIST2
= MOTS SMTT SMNN SMBB SMTN SMTB SMNB
VMIS TRES TREI TREE
; FINSI;
SINON;
SI (EGA (VALEUR
DIME) 2); SINON;
LIST2
= MOTS EPTT EPNN EPBB GATN GATB GANB
PLAS; FINSI;
FINSI;
I1 = 1;
REPETER BOUC3
(DIME TC1
); SSI1
= EXCO MOC1 CHM1 'SCAL'
; SI LCONFON;
SINON ;
FINSI;
TAB1.MOC1 = EV_I1;
SI ( I1 EGA 1 );
SINON ;
FINSI ;
I1 = I1 + 1;
FIN BOUC3;
CHPP = FRENETT LIGN_1 ;
CHTT2 = CHREP M_IND1 CHTT1 CHPP ;
MENAGE ;
I1 = 1 ;
REPETER BOUC2
(DIME TC1
) ; TITRE MO_TI1 MO_TI2 ;
MENAGE ;
SI ( I1 EGA 1 ) ;
* TAC1.1 = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
EV_OTT = EV_I1;
SINON;
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
EV_OTT = EV_OTT ET EV_I1;
FINSI;
I1 = I1 + 1;
TAB1.MOC1 = EV_I1;
FIN BOUC2;
FINSI;
SI (EGA M_IND1 'CONTRAINTES');
SI ((EGA M_ELEM 'MASSIF') OU (EGA M_ELEM 'MOYE'));
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
I1 = I1 + 1;
SI (EXISTE MCHA_E3);
VMI1
= VMIS MOD_L CHM1 CAR1
; SINON ;
FINSI;
SI LCONFON;
SINON ;
CHVM
= PROI LIGN_1
( CHAN NOEUD MOD_L VMI1
); FINSI;
EVVM
= EVOL ROUGE
CHPO CHVM SCAL LIGN_1
; EV_OTT = EV_OTT ET EVVM ;
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
I1 = I1 + 1;
SI (EXISTE MCHA_E3);
TRE1 = TRESCA MOD_L CHM1 CAR1 MOYE;
SINON ;
SI (EGA M_ELEM 'MASSIF');
TRE1 = TRESCA MOD_L CHM1 ;
SINON ;
TRE1 = TRESCA MOD_L CHM1 MOYE;
FINSI ;
FINSI;
SI LCONFON;
SINON ;
CHTR1
= PROI LIGN_1
( CHAN NOEUD MOD_L TRE1
); FINSI;
EVTR1
= EVOL VERT
CHPO CHTR1 SCAL LIGN_1
; EV_OTT = EV_OTT ET EVTR1 ;
TAB1.TRES1 = EVTR1;
FINSI;
SI (EGA M_ELEM 'MOYE') ;
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
I1 = I1 + 1;
TRE2 = TRESCA MOD_L CHM1 CAR1 INFE;
SI LCONFON;
SINON ;
CHTR2
= PROI LIGN_1
( CHAN NOEUD MOD_L TRE2
); FINSI;
EVTR2
= EVOL ROUGE
CHPO CHTR2 SCAL LIGN_1
; EV_OTT = EV_OTT ET EVTR2 ;
TAB1.TRES2 = EVTR2;
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
TRE3
= TRESCA MOD_L CHM1 CAR1
SUPE; SI LCONFON;
SINON ;
CHTR3
= PROI LIGN_1
(CHAN NOEUD MOD_L TRE3
); FINSI;
EVTR3
= EVOL ROSE
CHPO CHTR3 SCAL LIGN_1
; EV_OTT = EV_OTT ET EVTR3 ;
FINSI;
FINSI;
SI (EGA M_IND1 'DEFORMATIONS');
SI ( EXISTE MCHA_E3 );
* I2 = I1 * 2 - 1;
* TAC1.I2 = 'MARQ ETOI TITR EPSE_PLAS';
EPSE1
= EXCO EPSE
(REDU MCHA_EP MOD_L
) ; SI LCONFON;
SINON ;
EPSEL1
= PROI LIGN_1
(CHAN NOEUD MOD_L EPSE1
) ; FINSI;
EVOSE
= EVOL ROUGE
CHPO EPSEL1 EPSE LIGN_1
;
* TAC1.(DIM1+1) = CHAINE ' MARQ' ' ' MARQ1 ' REGU TITR' ' ' COMP1 ' ';
EV_OTT = EV_OTT ET EVOSE ;
FINSI;
FINSI;
DESS EV_OTT TAC1 MIMA LEGE
;
TAB1.MARC = TAC1;
MESS '
----------------------> sortie de DEPOULI '
; FINPROC TAB1;
'DEBPROC' DEPT LIGN_1*MAILLAGE MOD_L*MMODEL MCHA_E2*CHPOINT;
MESS '
----------------------> entree
dans DEPT'
;
LCONFON = FAUX ;
MAIL_1
= MOD_L
EXTR 'MAIL'
;N_2
= NBNO (MAIL_1
ET LIGN_1
);
SI ( EGA N_1 N_2 ) ;
LCONFON = VRAI;
FINSI ;
MAIL1
= (extr MOD_L 'MAIL'
) ;LEV1
= REDU MCHA_E2 MAIL1
;
SI LCONFON ;
LEV2
= REDU LEV1 LIGN_1
;SINON ;
LEV2
= PROI (CHAN CHAM LEV1 MAIL1 NOEUD
) LIGN_1
;FINSI ;
MESS '
----------------------> sortie de DEPT '
; FINPROC ;
**** @DESCEND
DEBPROC @DESCEND CHP_X*CHPOINT CHP_Y*CHPOINT CHP_Z*CHPOINT PASB0*FLOTTANT CHSIGN0*CHPOINT TAB1*TABLE ;
*
*****************************************************
* Procedure de descente des lignes de champ par une *
* methode explicite. Alain MOAL (Fevrier 2001) *
*****************************************************
*
*MESS '---------------------------------> calling @descend';
*
*--------------- VARIABLES D'ENTREE :
MAIL0 = TAB1.<MAILLAGE_B ;
*-----------------------------------
*
*---- Calcul du champ et de sa norme
BR BZ BPHI = @MAGNB TAB1 ;
*
*---- Descente dans le plan (R,Z)
BPHI = BPHI * 0. ;
PHI
= ATG (COOR 2 MAIL0
) (COOR 1 MAIL0
) ;*AM*11/09/01*BX = BR * (COS PHI) + (BPHI * (SIN PHI));
*AM*11/09/01*BY = BR * (SIN PHI) - (BPHI * (COS PHI));
BX = BR * (COS PHI) - (BPHI * (SIN PHI));
BY = BR * (SIN PHI) + (BPHI * (COS PHI));
NORM_B = ((BX*BX) + (BY*BY) + (BZ*BZ))**0.5 ;
*
*---- Deplacements (methode explicite) affectes du signe
*---- donnant le sens de descente dans le plan (R,Z)
DEPX0 = CHSIGN0 * BX * PASB0 / NORM_B ;
DEPY0 = CHSIGN0 * BY * PASB0 / NORM_B ;
DEPZ0 = CHSIGN0 * BZ * PASB0 / NORM_B ;
*
*---- Nouvelles coordonnees
X_NEW = CHP_X + DEPX0 ;
Y_NEW = CHP_Y + DEPY0 ;
Z_NEW = CHP_Z + DEPZ0 ;
*
*---- actualisation de la position des points de la ligne
DEPX0
= NOMC UX DEPX0 NATURE DIFFUS
;DEPY0
= NOMC UY DEPY0 NATURE DIFFUS
;DEPZ0
= NOMC UZ DEPZ0 NATURE DIFFUS
;DEP0 = DEPX0 ET DEPY0 ET DEPZ0 ;
*
*MESS '---------------------------------> exiting @descend';
FINPROC X_NEW Y_NEW Z_NEW DEP0 ;
**** @DEXPJET
DEBPROC @DEXPJET CHP_X*CHPOINT CHP_Y*CHPOINT CHP_Z*CHPOINT PASB0*FLOTTANT TAB1*TABLE;
*MESS '---------------------------------> calling @DEXPJET';
*
*--------------- VARIABLES D'ENTREE :
MAIL0 = TAB1.<MAILLAGE_B ;
*-----------------------------------
*
*---- Calcul du champ et de sa norme
BR BZ BPHI = @MAGNB TAB1 ;
*
PHI
= ATG (COOR 2 MAIL0
) (COOR 1 MAIL0
) ;*AM*11/09/01*BX = BR * (COS PHI) + (BPHI * (SIN PHI));
*AM*11/09/01*BY = BR * (SIN PHI) - (BPHI * (COS PHI));
BX = BR * (COS PHI) - (BPHI * (SIN PHI));
BY = BR * (SIN PHI) + (BPHI * (COS PHI));
NORM_B = ((BX*BX) + (BY*BY) + (BZ*BZ))**0.5 ;
*
*---- Deplacements (methode explicite)
DEPX0 = BX * PASB0 / NORM_B ;
DEPY0 = BY * PASB0 / NORM_B ;
DEPZ0 = BZ * PASB0 / NORM_B ;
*MESS '---------------------------------> exiting @DEXPJET';
FINPROC DEPX0 DEPY0 DEPZ0 ;
**** @DEXPLI
DEBPROC @DEXPLI CHP_X*CHPOINT CHP_Y*CHPOINT CHP_Z*CHPOINT PASB0*FLOTTANT TAB1*TABLE;
*MESS '---------------------------------> calling @DEXPLI';
*--------------- VARIABLES D'ENTREE :
TYPCAL = TAB1.<TYPE_CALCUL ;
*------------------------------------
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
* ---- Calcul du champ dans le repere global
BXG BYG BZG FSECU = @CHAMB TAB1 CHP_X CHP_Y CHP_Z ISHIFT IRIPPLE ;
* ---- Calcul de la norme du champ
NORM_B = ((BXG*BXG) + (BYG*BYG) + (BZG*BZG))**0.5 ;
* ---- Calcul des deplacements
DEPX0 = BXG * PASB0 / NORM_B ;
DEPY0 = BYG * PASB0 / NORM_B ;
DEPZ0 = BZG * PASB0 / NORM_B ;
*MESS '---------------------------------> exiting @DEXPLI';
FINPROC DEPX0 DEPY0 DEPZ0 ;
**** @DMILIEU
DEBPROC @DMILIEU CHP_X*CHPOINT CHP_Y*CHPOINT CHP_Z*CHPOINT PASB0*FLOTTANT CHSIGN/CHPOINT TAB1*TABLE;
*MESS '---------------------------------> calling @DMILIEU';
*--------------- VARIABLES D'ENTREE :
TYPCAL = TAB1.<TYPE_CALCUL ;
RP = TAB1.<RP ;
HP = TAB1.<HP ;
*------------------------------------
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
*
* --- Cas ou l'appel vient d'une proc qui n'a pas calcule CHSIGN
CHSIGN = 1. ;
FINSI ;
*BR01/10/98 SI (EXISTE TAB1 <CHSIGN) ;
* CHSIGN = TAB1.<CHSIGN ;
* --- Cas ou l'appel vient d'une proc qui n'a pas calcule TAB1.<CHSIGN
*SINON ;
* CHSIGN = 1. ;
*FINSI ;
* ---- Lors du premier pas, calcul des points milieux
SI (NON (EXIS TAB1
<CHP_X1
)) ;
DEPX0 DEPY0 DEPZ0 = @DEXPLI CHP_X CHP_Y CHP_Z PASB0 TAB1;
CHP_X1 = CHP_X + (CHSIGN * DEPX0) ;
CHP_Y1 = CHP_Y + (CHSIGN * DEPY0) ;
CHP_Z1 = CHP_Z + (CHSIGN * DEPZ0) ;
SINON ;
CHP_X1 = TAB1.<CHP_X1 ;
CHP_Y1 = TAB1.<CHP_Y1 ;
CHP_Z1 = TAB1.<CHP_Z1 ;
MAILR
= EXTR CHP_X MAIL
; CHP_X1
= REDU CHP_X1 MAILR
; CHP_Y1
= REDU CHP_Y1 MAILR
; CHP_Z1
= REDU CHP_Z1 MAILR
;FINSI ;
* ---- Calcul du deplacement dans le repere global
* ---- (aux points milieux)
DEPX0 DEPY0 DEPZ0 = @DEXPLI CHP_X1 CHP_Y1 CHP_Z1 PASB0 TAB1 ;
* ---- Actualisation des points initiaux
X_NEW = CHP_X + (CHSIGN * DEPX0) ;
Y_NEW = CHP_Y + (CHSIGN * DEPY0) ;
Z_NEW = CHP_Z + (CHSIGN * DEPZ0) ;
* ---- Calcul du deplacement aux points initiaux remontes
DEPXI DEPYI DEPZI = @DEXPLI X_NEW Y_NEW Z_NEW PASB0 TAB1;
* ---- Calcul des nouveaux points milieux
CHP_X1 = CHP_X1 + (CHSIGN * DEPXI) ;
CHP_Y1 = CHP_Y1 + (CHSIGN * DEPYI) ;
CHP_Z1 = CHP_Z1 + (CHSIGN * DEPZI) ;
* ---- Actualisation des points milieux
TAB1.<CHP_X1 = CHP_X1 ;
TAB1.<CHP_Y1 = CHP_Y1 ;
TAB1.<CHP_Z1 = CHP_Z1 ;
*MESS '---------------------------------> exiting @DMILIEU';
FINPROC DEPX0 DEPY0 DEPZ0 ;
**** @DMOYEN
DEBPROC @DMOYEN CHP_X*CHPOINT CHP_Y*CHPOINT CHP_Z*CHPOINT PASB0*FLOTTANT CHSIGN/CHPOINT TAB1*TABLE;
*MESS '---------------------------------> calling @DMOYEN';
*--------------- VARIABLES D'ENTREE :
TYPCAL = TAB1.<TYPE_CALCUL ;
*------------------------------------
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
*
* --- Cas ou l'appel vient d'une proc qui n'a pas calcule CHSIGN
CHSIGN = 1. ;
FINSI ;
* ---- Calcul du champ dans le repere global
BXG BYG BZG FSECU = @CHAMB TAB1 CHP_X CHP_Y CHP_Z ISHIFT IRIPPLE ;
* ---- Calcul de la norme du champ
NORM_B = ((BXG*BXG) + (BYG*BYG) + (BZG*BZG))**0.5 ;
* ---- Calcul du point extremite par la methode des tangentes
XG_NEW0 = CHP_X + (CHSIGN * BXG * PASB0 / NORM_B) ;
YG_NEW0 = CHP_Y + (CHSIGN * BYG * PASB0 / NORM_B) ;
ZG_NEW0 = CHP_Z + (CHSIGN * BZG * PASB0 / NORM_B) ;
* ---- Calcul du champ magnetique dans le repere global
* ---- sur le point extremite
BXG0 BYG0 BZG0 FSECU = @CHAMB TAB1 XG_NEW0 YG_NEW0 ZG_NEW0 ISHIFT IRIPPLE ;
* ---- Moyenne des champs magnetiques
BXG1 = (BXG + BXG0)/2. ;
BYG1 = (BYG + BYG0)/2. ;
BZG1 = (BZG + BZG0)/2. ;
* ---- Calcul de la norme du champ moyenne
NORM_B1 = ((BXG1*BXG1) + (BYG1*BYG1) + (BZG1*BZG1))**0.5 ;
* ---- Calcul des deplacements
DEPX0 = BXG1 * PASB0 / NORM_B1 ;
DEPY0 = BYG1 * PASB0 / NORM_B1 ;
DEPZ0 = BZG1 * PASB0 / NORM_B1 ;
*MESS '---------------------------------> exiting @DMOYEN';
FINPROC DEPX0 DEPY0 DEPZ0 ;
**** @DPSI
DEBPROC @DPSI TAB1*TABLE ;
*************************************************************
* Procedure de calcul de dpsi en chaque point d'un maillage *
* donne. Alain MOAL (Novembre 2001) *
*************************************************************
*
MESS '
---------------------------------> calling @DPSI'
; *
*--------------- VARIABLES D'ENTREE :
CHB0 = TAB1.<CARTE_B ;
GRILB0 = TAB1.<GRILLE_B ;
MAIL1 = TAB1.<MAILLAGE_B ;
*------------------------------------
*TRAC (MAIL1 ET GRILB0) ;
CHEL1
= CHAN CHAM CHB0 GRILB0
;CHPO1
= PROI MAIL1 CHEL1 1.
E-4
;CHDPSI
= EXCO 'DPSI' CHPO1
;*
MESS '
---------------------------------> exiting @DPSI'
; FINPROC CHDPSI ;
**** @DREPROJ
DEBPROC @DREPROJ CHP_X*CHPOINT CHP_Y*CHPOINT CHP_Z*CHPOINT PASB0*FLOTTANT CHSIGN/CHPOINT TAB1*TABLE ;
****************************************************************
* Procedure de calcul du deplacement pour remonter des lignes *
* de champ magnetique, a partir des CHPOINT de coordonnees *
* methode utilisant une reprojection sur la SMF *
* ---> construit un chpoint appuye sur l'objet etudie et *
* contenant pour chaque point le deplacement sur un pas pour *
* remonter les lignes de champ *
****************************************************************
*MESS '---------------------------------> calling @DREPROJ';
*--------------- VARIABLES D'ENTREE :
TYPCAL = TAB1.<TYPE_CALCUL ;
RR = TAB1.<RR ;
EPS0 = TAB1.<EPS ;
NBOB = TAB1.<NBOB ;
COEFA = TAB1.<COEFA ;
COEFB = TAB1.<COEFB ;
COEFC = TAB1.<COEFC ;
* (pour info) TAB1.<CHSIGN ;
*------------------------------------
SI (EGA TYPCAL 'AVEC_SHIFT_AVEC_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'AVEC_SHIFT_SANS_RIPPLE') ;
ISHIFT = VRAI ;
IRIPPLE = FAUX ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_AVEC_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = VRAI ;
FINSI ;
SI (EGA TYPCAL 'SANS_SHIFT_SANS_RIPPLE') ;
ISHIFT = FAUX ;
IRIPPLE = FAUX ;
FINSI ;
SI ((NON (EXISTE ISHIFT)) OU (NON (EXISTE IRIPPLE))) ;
ERRE '
>>>> @CLIGB : check the value of TAB1.
<TYPE_CALCUL'
; FINSI ;
*
* --- Cas ou l'appel vient d'une proc qui n'a pas calcule CHSIGN
CHSIGN = 1. ;
FINSI ;
* ---- Calcul du champ dans le repere global
BXG BYG BZG FSECU = @CHAMB TAB1 CHP_X CHP_Y CHP_Z ISHIFT IRIPPLE ;
* ---- Calcul de la norme du champ
NORM_B = ((BXG*BXG) + (BYG*BYG) + (BZG*BZG))**0.5 ;
*
XG_NEW0 = CHP_X + (CHSIGN * BXG * PASB0 / NORM_B) ;
YG_NEW0 = CHP_Y + (CHSIGN * BYG * PASB0 / NORM_B) ;
ZG_NEW0 = CHP_Z + (CHSIGN * BZG * PASB0 / NORM_B) ;
* ---- Coordonnees dans le repere
* ---- pseudo-toroidal du ripple
RHOR THER PHIR = @CRGTC CHP_X CHP_Y CHP_Z RR 0. ;
RHOR_OLD = RHOR ;
KAUX = (EXP (THER ** 2 * -1. * COEFC))* ((COS (PHIR * NBOB)) * -1. + 1.) * COEFA ;
I3 = 0 ;
REPETER BOUCLE3 50 ;
* I3 =I3 + 1 ; MESS ' I3 =' I3 ;
RHOR_NEW = RHOR + (KAUX * (EXP(RHOR_OLD * COEFB)));
SI ((MAXI (ABS((RHOR_NEW
- RHOR_OLD
)/RHOR_NEW
))) <
;EG EPS0
) ; QUITTER BOUCLE3 ;
FINSI ;
RHOR_OLD = RHOR_NEW ;
FIN BOUCLE3 ;
RHOMER = RHOR_NEW ;
I2 = 0 ;
REPETER BOUCLE2 2 ;
I2 =I2 + 1 ;
* MESS ' I2 =' I2 ;
* ---- point sur la surface magnetique
RHORN THERN PHIRN = @CRGTC XG_NEW0 YG_NEW0 ZG_NEW0 RR 0. ;
DRHOMERN = (EXP (RHOMER*COEFB))*(EXP(THERN**2 *COEFC * -1.)) * COEFA ;
RHORIP = DRHOMERN * ((COS(PHIRN * NBOB)) - 1.) + RHOMER ;
XG_NEW1 YG_NEW1 ZG_NEW1 = @CRTGC RHORIP THERN PHIRN RR 0. ;
*
* ---- Calcul du champ dans le repere global
BXG0 BYG0 BZG0 FSECU0 = @CHAMB TAB1 XG_NEW1 YG_NEW1 ZG_NEW1 ISHIFT IRIPPLE ;
* ---- Moyenne des tangentes
BXG1 = (BXG + BXG0)/2. ;
BYG1 = (BYG + BYG0)/2. ;
BZG1 = (BZG + BZG0)/2. ;
NORM_B1 = ((BXG1*BXG1) + (BYG1*BYG1) + (BZG1*BZG1))**0.5 ;
XG_NEW0 = CHP_X + (CHSIGN * BXG1 * PASB0 / NORM_B1) ;
YG_NEW0 = CHP_Y + (CHSIGN * BYG1 * PASB0 / NORM_B1) ;
ZG_NEW0 = CHP_Z + (CHSIGN * BZG1 * PASB0 / NORM_B1) ;
SI (I2 EGA 2);
XG_NEW = XG_NEW0 ;
YG_NEW = YG_NEW0 ;
ZG_NEW = ZG_NEW0 ;
FINSI ;
FIN BOUCLE2 ;
* ---- Calcul des deplacements
DEPX0 = BXG1 * PASB0 / NORM_B1 ;
DEPY0 = BYG1 * PASB0 / NORM_B1 ;
DEPZ0 = BZG1 * PASB0 / NORM_B1 ;
*MESS '---------------------------------> exiting @DREPROJ';
FINPROC DEPX0 DEPY0 DEPZ0 ;
'DEBPROC' EPSCHL MOD_1*MMODEL SI_13*MCHAM TE0*CHPOINT TE1*CHPOINT TAB1/'TABLE ' ;
SI (( NON ( EXISTE MAT_1)) ET ( EXISTE TAB1)) ;
I1 = 0 ;
REPETER BOMA11 ;
I1 = I1 + 1 ;
SI ( EXISTE (TAB1.ZONE_MAT) I1 ) ;
MO1 = TAB1.MODL_MAT. I1 ;
TM_1
= ( REDU TE1 TAB1.
ZONE_MAT.
I1 ) ; Y_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
YOUN YOUN
; NU_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
NU NU
; AL_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
ALPH ALPH
; NU_1 = CHANGER CHAM NU_1 MO1 'RIGIDITE' ;
Y_1 = CHANGER CHAM Y_1 MO1 'RIGIDITE' ;
AL_1 = CHANGER CHAM AL_1 MO1 'RIGIDITE' ;
TEX1 = TEXTE 'YOUN Y_1 NU NU_1 ALPH AL_1' ;
SI ( IMOTM1 EGA 5 ) ;
TEX1 = TEXTE TEX1 'SIGY YM_1 ' ;
TITRE 'MAT' I1 ' YIELD MODULUS' ;
YM_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
SIGY SIGY
; YM_1 = CHANGER CHAM YM_1 MO1 'RIGIDITE' ;
TEX1 = TEXTE TEX1 'H H_1 ' ;
H_1
= VARI TM_1 TAB1.
TETMAT.
MO1.
H H
; H_1 = CHANGER CHAM H_1 MO1 'RIGIDITE' ;
FINSI ;
SINON ;
QUITTER BOMA11 ;
FINSI ;
SI ( I1 EGA 1 ) ;
MOD_1 = MO1 ;
MAT_1 = MA1 ;
SINON ;
MOD_1 = MOD_1 ET MO1 ;
MAT_1 = MAT_1 ET MA1 ;
FINSI ;
FIN BOMA11 ;
FINSI ;
TAB1.MATTOT = MAT_1 ;
SI_11 = THETA MAT_1 ( TE1 - TE0 ) ;
FO1 = BSIGMA SI_11 ;
SI_12 = SI_13 + SI_11 ;
EPS_1
= ELAS MOD_1 SI_12 MAT_1
FINPROC EPS_1
;**** @
EPTH DEBPROC @
EPTH CHT1
*CHPOINT EV1
*EVOLUTION MOD1
*MMODEL
;
ALP1
= VARI MOD1 CHT2 EV1
;ALP3
= NOMC ALP2 'SCAL'
;
EPS1 = ALP3 * CHT2;
GAXY1
= NOMC (0.
* EPS1
) 'GAXY'
;GAXZ1
= NOMC (0.
* EPS1
) 'GAXZ'
;GAYZ1
= NOMC (0.
* EPS1
) 'GAYZ'
;
EPX2
= CHAN CHAM EPX1 MOD1 'STRESSES'
;EPY2
= CHAN CHAM EPY1 MOD1 'STRESSES'
;EPZ2
= CHAN CHAM EPZ1 MOD1 'STRESSES'
;GAXY2
= CHAN CHAM GAXY1 MOD1 'STRESSES'
;GAXZ2
= CHAN CHAM GAXZ1 MOD1 'STRESSES'
;GAYZ2
= CHAN CHAM GAYZ1 MOD1 'STRESSES'
;
EPS_THER = EPX2 ET EPY2 ET EPZ2 ET GAXY2 ET GAXZ2 ET GAYZ2;
FINPROC EPS_THER ;
**** @ET
DEBPROC @ET CH1*CHPOINT CH2*CHPOINT ;
CHA1
= CHAN 'ATTRIBUT ' CH1 'NATURE' 'DISCRET'
;CHA2
= CHAN 'ATTRIBUT ' CH2 'NATURE' 'DISCRET'
;CHR = CHA1 ET CHA2;
FINPROC CHR ;
**** @EVMAA
DEBPROC @EVMAA
NOMM*MOT TIN1
*FLOTTANT
;
EVE2
= @EVMAT
NOMM 'ALPHA'
; LLTE1
= EXTR EVE2 'ABSC'
;
SI (KK1 EGA 0. 1. ) ;
LLTE1
= LLTE1
+ (PROG (DIME LLTE1
) * 10.
) ; PP1 = @IPOE LLTE1 EVE2 FIXE ;
EVE2
= EVOL MANU 'TEMPERATURE' LLTE1 'ALPH' PP1
; FINSI ;
EVOC700
= EVOL MANU 'TEMPERATURE' LLTE1 'ALPH'
( PROG (DIME LLTE1
) * (TIN1
- 20.
)) ;
EVOCT1
= EVOL MANU 'TEMPERATURE' LLTE1 'ALPH'
(LLTE1
- (PROG (DIME LLTE1
) * 20.
)) ;
EVOCTY1
= EVOL MANU 'TEMPERATURE' LLTE1 'ALPH'
(PROG (DIME LLTE1
) * ((TIN1
- 20.
) * (EVMAT
NOMM 'ALPHA' TIN1
)));
BETA1 = ((EVOCTY1 - (EVE2 * EVOCT1))/(EVOC700 - EVOCT1)) ;
FINPROC BETA1 ;
**** @EVMAT
'
DEBPROC' @EVMAT MOT1
*'
MOT ' MOT2
*'
MOT ' VAL1
/FLOTTANT CHP1
/CHPOINT TABTT
/TABLE
;*23456789012345678901234567890123456789012345678901234567890123456789012
* 1 2 3 4 5 6 7
* version créee 19.12.96 par R. Mitteau pour fonctionner avec PASAPAS
*modification des noms de composantes :
* 'TEMPERATURE' -> 'T'
* 'CONDUCTIVITE' -> 'K'
* 'CAPACITE' -> 'CapaVolu'
SI ( EXISTE TABTT) ;
TABT = TABLE TABTT ;
SINON ;
TABT = TABLE ;
FINSI ;
TT1 = TABLE ;
REPETER BLOC1 1 ;
SI ( EGA MOT1 'DUNLOP' ) ;
* donnees bonnal 19 avril 93
TT1.'DUNLOP' = TABLE ;
TT1.'DUNLOP' . 'K' 'T'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'K'
(PROG 459.
459.
446.
418.
390.
364.
341.
320.
302.
286.
273.
261.
250.
241.
233.
227.
220.
215.
190.
150.
110 51.
) ;*TITRE ' DUNLOP SPECIF HEAT' ;
TT1.'DUNLOP' . 'C'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'C'
(PROG 708.
708.
789.
937.
1066.
1178.
1274.
1357.
1431.
1495.4 1552.4 1603.2 1648.7 1689.7 1726.8 1760.5 1791.3 1819.6 1820.
2000.
2050.
2100.
) ;
*TITRE ' DUNLOP DENSITY' ;
TT1.'DUNLOP' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'RHO'
(PROG 1903.
1903.
1902.
1902.
1901.
1901.
1900.
1900.
1899.
1899.
1898.
1898.
1897.
1897.
1897.
1896.
1896.
1895.
1894.
1890.
1890.
1890.
);
EVRHOC = (TT1.'DUNLOP' . 'RHO') * ( TT1.'DUNLOP' . 'C') ;
TT1.'DUNLOP' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* N11 redensifie direction P
* materiau rentre par Raphael Mitteau le 6 juin 1996
* Source SEP lineaire entre 20 et 1000 C
SI ( EGA MOT1 'N11P_DENSE1' ) ;
*
* --- definition de la table
*
TT1.'N11P_DENSE1' = TABLE ;
*
* --- definition de la conductivite thermique
*
TT1.'N11P_DENSE1' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
1000.
) 'K'
(PROG 250.
250.
100.
) ;*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
* N11 redensifie direction P
* materiau rentre par Raphael Mitteau le 6 juin 1996
* Source SEP a 20 et 1000 C copie variation N11
SI ( EGA MOT1 'N11P_DENSE2' ) ;
*
* --- definition de la table
*
TT1.'N11P_DENSE2' = TABLE ;
*
* --- definition de la conductivite thermique
*
TT1.'N11P_DENSE2' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
(((((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) - (PROG 23.
* 102.6 ))/ (247.8 - 102.6))*(150.
)) + (PROG 23.
* 100.
));*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Dunlop concept 1 conductivite dana la direction X mesure par CEA
* materiau rentre par Raphael Mitteau le 5 juin 1996
* source CEA/DRN/DMT 95-495 rapport de J.P. Bonal
SI ( EGA MOT1 'DUN_C1_BONAL_X' ) ;
*
* --- definition de la table
*
TT1.'DUN_C1_BONAL_X' = TABLE ;
*
* --- definition de la conductivite thermique
*
TT1.'DUN_C1_BONAL_X' . 'K'
= EVOL MANU 'T'
(PROG -200.
25 50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
) 'K'
(PROG 430.6 430.6 425.7 406.5 382.4 358.0 335.1 314.4 295.9 279.5 264.9 252.
240.5 230.2 221.0 212.7 205.3 198.5 ) ;*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Dunlop concept 1 conductivite dana la direction X mesure par CEA
* materiau rentre par Raphael Mitteau le 5 juin 1996
* source CEA/DRN/DMT 95-495 rapport de J.P. Bonal
SI ( EGA MOT1 'DUN_C1_BONAL_Y' ) ;
*
* --- definition de la table
*
TT1.'DUN_C1_BONAL_Y' = TABLE ;
*
* --- definition de la conductivite thermique
*
TT1.'DUN_C1_BONAL_Y' . 'K'
= EVOL MANU 'T'
(PROG -200.
25 50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
) 'K'
(PROG 102.4 102.4 102.4 99.9 95.6 90.8 86.0 81.4 77.2 73.4 69.9 66.8 63.9 61.3 58.9 56.7 54.7 52.9 ) ;*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Sepcarb NB31 Version C conductivite dana la direction X
* materiau rentre par Raphael Mitteau le 5 juin 1996
* source SEP
SI ( EGA MOT1 'NB31CX' ) ;
*
* --- definition de la table
*
TT1.'NB31CX' = TABLE ;
*
* --- definition de la conductivite thermique
*
* --- approximation lineaire
TT1.'NB31CX' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
800.
1000.
2000.
) 'K'
(PROG 323.
323.
154.
145.
145.
) ;
* --- variation copiee sur celle du N11
TT1.'NB31CX' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
(((((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) - (PROG 23.
* 102.6 ))/ (247.8 - 102.6))*(323.
- 154.
)) + (PROG 23.
* 154.
));*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Sepcarb NB31 Version C conductivite dans la direction Y
* materiau rentre par Raphael Mitteau le 5 juin 1996
* source SEP
SI ( EGA MOT1 'NB31CY' ) ;
*
* --- definition de la table
*
TT1.'NB31CY' = TABLE ;
*
* --- definition de la conductivite thermique
*
* --- approximation lineaire
TT1.'NB31CY' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
800.
1000.
2000.
) 'K'
(PROG 117.
117.
58.
56.
56.
) ;
* --- variation copiee sur celle du N11
TT1.'NB31CY' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
(((((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) - (PROG 23.
* 102.6 ))/ (247.8 - 102.6))*(117.
- 58.
)) + (PROG 23.
* 58.
));*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Sepcarb NB31 Version C conductivite dans la direction Z
* materiau rentre par Raphael Mitteau le 5 juin 1996
* source SEP
SI ( EGA MOT1 'NB31CZ' ) ;
*
* --- definition de la table
*
TT1.'NB31CZ' = TABLE ;
*
* --- definition de la conductivite thermique
*
TT1.'NB31CZ' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
800.
1000.
2000.
) 'K'
(PROG 115.
115.
55.
52.
52.
) ;*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Sepcarb NS31 Version C conductivite dans la direction X
* materiau rentre par Raphael Mitteau le 10 septembre 1996
* source SEP
SI ( EGA MOT1 'NS31CX' ) ;
*
* --- definition de la table
*
TT1.'NS31CX' = TABLE ;
*
* --- definition de la conductivite thermique
*
* --- approximation lineaire
TT1.'NS31CX' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
800.
1000.
2000.
) 'K'
(PROG 304.
304.
149.
141.
141.
) ;
* --- variation copiee sur celle du N11
TT1.'NS31CX' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
(((((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) - (PROG 23.
* 102.6 ))/ (247.8 - 102.6))*(304.
- 149.
)) + (PROG 23.
* 149.
));*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Sepcarb NS31 Version C conductivite dans la direction Y
* materiau rentre par Raphael Mitteau le 10 septembre 1996
* source SEP
SI ( EGA MOT1 'NS31CY' ) ;
*
* --- definition de la table
*
TT1.'NS31CY' = TABLE ;
*
* --- definition de la conductivite thermique
*
* --- approximation lineaire
TT1.'NS31CY' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
800.
1000.
2000.
) 'K'
(PROG 100.
100.
55.
54.
54.
) ;
* --- variation copiee sur celle du N11
TT1.'NS31CY' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
(((((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) - (PROG 23.
* 102.6 ))/ (247.8 - 102.6))*(100.
- 55.
)) + (PROG 23.
* 55.
));*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* Sepcarb NB31 Version C conductivite dans la direction Z
* materiau rentre par Raphael Mitteau le 10 septembre 1996
* source SEP
SI ( EGA MOT1 'NS31CZ' ) ;
*
* --- definition de la table
*
TT1.'NS31CZ' = TABLE ;
*
* --- definition de la conductivite thermique
*
TT1.'NS31CZ' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
800.
1000.
2000.
) 'K'
(PROG 91.
91.
48.
43.
43.
) ;*
* --- variation copiee sur celle du N11
*
TT1.'NS31CZ' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
(((((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) - (PROG 23.
* 102.6 ))/ (247.8 - 102.6))*(91.
- 48.
)) + (PROG 23.
* 48.
));*
* --- tout est defini, on quitte les bloc de definition des materiaux
*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
* stands for DUNLOP CONCEPT 1
* valeurs rentrees le 04 mai 95 par J.F. Salavy
* source : DUNLOP LIMITED AVIATION DIVISION (net supply contract
* no 92-825A) envoyees par Ivi Smid le 29/03/95
* donnees entre 25 et 1200 C
* Pour cond_Z, les valeurs sont celles de la courbe et non du tableau
SI ( EGA MOT1 'DUN_CONCEPT1_X' ) ;
TT1.'DUN_CONCEPT1_X' = TABLE ;
TT1.'DUN_CONCEPT1_X' . 'K'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
2000.
5000.
) 'K'
(PROG 112.
112.
106.
92.
84.
74.
67.
64.
57.
56.
50.
49.
45.
42.
30.
10.
) ;
TT1.'DUN_CONCEPT1_X' . 'C'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
5000.
) 'C'
(PROG 710.
710.
934.
1171.
1363.
1506.
1621.
1706.
1779.
1835.
1884.
1924.
1960.
1990.
1990.
) ;
TT1.'DUN_CONCEPT1_X' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
5000.
) 'RHO'
(PROG 1910.
1910.
1907.
1905.
1903.
1900.
1896.
1893.
1890.
1887.
1885.
1883.
1880.
1880.
1880.
);
EVRHOC = ( TT1.'DUN_CONCEPT1_X' . 'RHO') * ( TT1.'DUN_CONCEPT1_X' . 'C');
TT1.'DUN_CONCEPT1_X' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
QUITTER BLOC1 ;
FINSI ;
SI ( EGA MOT1 'DUN_CONCEPT1_Y' ) ;
TT1.'DUN_CONCEPT1_Y' = TABLE ;
TT1.'DUN_CONCEPT1_Y' . 'K'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
2000.
5000.
) 'K'
(PROG 78.
78.
73.
66.
59.
53.
48.
45.
40.
39.
37.
33.
33.
31.
30.
20.
) ;
TT1.'DUN_CONCEPT1_Y' . 'C'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
5000.
) 'C'
(PROG 719.
719.
923.
1182.
1368.
1507.
1623.
1706.
1776.
1834.
1883.
1924.
1959.
1990.
1990.
);
TT1.'DUN_CONCEPT1_Y' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
5000.
) 'RHO'
(PROG 1940.
1940.
1937.
1935.
1933.
1930.
1926.
1923.
1920.
1917.
1915.
1913.
1910.
1910.
1910.
);
EVRHOC = ( TT1.'DUN_CONCEPT1_Y' . 'RHO') * ( TT1.'DUN_CONCEPT1_Y' . 'C');
TT1.'DUN_CONCEPT1_Y' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
QUITTER BLOC1 ;
FINSI ;
SI ( EGA MOT1 'DUN_CONCEPT1_Z' ) ;
TT1.'DUN_CONCEPT1_Z' = TABLE ;
TT1.'DUN_CONCEPT1_Z' . 'K'
= EVOL MANU 'T'
(PROG -5000.
20.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
2000.
5000.
) 'K'
(PROG 351.
351.
330.
300.
275.
248.
225.
211.
190.
170.
150.
140.
125.
115.
100.
100.
) ;
TT1.'DUN_CONCEPT1_Z' . 'C'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
5000.
) 'C'
(PROG 695.
695.
923.
1173.
1362.
1508.
1620.
1706.
1777.
1837.
1883.
1925.
1960.
1989.
1989.
);
TT1.'DUN_CONCEPT1_Z' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
25.
100.
200.
300.
400.
500.
600.
700.
800.
900.
1000.
1100.
1200.
5000.
) 'RHO'
(PROG 1800.
1800.
1797.
1795.
1793.
1790.
1786.
1783.
1780.
1777.
1775.
1773.
1770.
1770.
1770.
);
EVRHOC = ( TT1.'DUN_CONCEPT1_Z' . 'RHO') * ( TT1.'DUN_CONCEPT1_Z' . 'C');
TT1.'DUN_CONCEPT1_Z' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
LL1 = (( EGA MOT1 'DUNX' ) OU ( EGA MOT1 'I1DUNX' ) OU ( EGA MOT1 'DUNY' ) OU ( EGA MOT1 'I1DUNY' ));
SI LL1 ;
* Valeurs fournies par Deschamps le 12/02/93 a 20. et 1000. degres C
TT1.'DUNX' = TABLE ;
*
TT1.'DUNX' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'K'
(PROG 459.
459.
446.
418.
390.
364.
341.
320.
302.
286.
273.
261.
250.
241.
233.
227.
220.
215.
190.
150.
110 51.
) ;*
TT1.'DUNY' = TABLE ;
*
TT1.'DUNY' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'K'
(PROG 92.
92.
91.3 89.
85.8 82.2 78.5 74.9 71.6 68.5 65.6 63 60.6 58.4 56.4 54.5 52.8 51.2 45.
35.
22.
51.
) ;*
*
* Valeurs fournies par Deschamps le 12/02/93 a 20. et 1000. degres C
TT1.'I1DUNX' = TABLE ;
*
P_COEF
= prog .21 .21 .23 .26 .29 .33 .36 .39 .41 .44 .46 .48 .5 .52 .52 .52 .52 .52 .515 .51 .5 .5
; TT1.'I1DUNX' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'K'
((PROG 459.
459.
446.
418.
390.
364.
341.
320.
302.
286.
273.
261.
250.
241.
233.
227.
220.
215.
190.
150.
110 51.
)*P_COEF
) ;*
TT1.'I1DUNY' = TABLE ;
*
P_COEF
= prog .21 .21 .23 .26 .29 .33 .36 .39 .41 .44 .46 .48 .5 .52 .52 .52 .52 .52 .515 .51 .5 .5
; TT1.'I1DUNY' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 3.5E3
) 'K'
((PROG 92.
92.
91.3 89.
85.8 82.2 78.5 74.9 71.6 68.5 65.6 63 60.6 58.4 56.4 54.5 52.8 51.2 45.
35.
22.
51.
)*P_COEF
) ;*
*
QUITTER BLOC1 ;
FINSI ;
****************************************************************&*****
SI ( EGA MOT1 'N112X' ) ;
* Valeurs fournies par Deschamps le 12/02/93 a 20. et 1000. degres C
TT1.'N112X' = TABLE ;
*
TT1.'N112X' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 210.
210.
125.
111.
80.
69.
51.
51.
) ;*
TT1.'N112X' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 2.7E
-6 2.7E
-6 2.9E
-6 3.3E
-6 4.0E
-6 4.0E
-6
);QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'N112Y' ) ;
TT1.'N112Y' = TABLE ;
*
TT1.'N112Y' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 200.
200.
120.
102.
76.
62.
49.
49.
) ;*
TT1.'N112Y' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 2.4E
-6 2.4E
-6 2.6E
-6 3.0E
-6 3.7E
-6 3.7E
-6
);*
QUITTER BLOC1 ;
FINSI ;
SI ( EGA MOT1 'N112Z' ) ;
TT1.'N112Z' = TABLE ;
*
TT1.'N112Z' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 174.
174.
92.
72.
60.
50.
45.
45.
) ;*
TT1.'N112Z' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 2.2E
-6 2.2E
-6 2.4E
-6 2.8E
-6 3.5E
-6 3.5E
-6
);QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'N112P' ) ;
* donnees bonnal 19 avril 93
TT1.'N112P' = TABLE ;
TT1.'N112P' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 5.5E3
) 'K'
(PROG 220.3 220.3 222.4 214.7 201.
186.9 173.4 161.3 150.7 141.3 133.1 125.9 119.6 114.
109.
104.6 100.6 97.
90.
70.
60.
58.
) ;*TITRE ' N112P SPECIF HEAT' ;
TT1.'N112P' . 'C'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 5.5E3
) 'C'
(PROG 669.
669.
770.3 935.
1063.2 1165.8 1249.7 1319.6 1378.8 1429.4 1473.4 1511.8 1545.7 1575.8 1602.7 1627.0 1648.9 1668.8 1748.
1950.
1950.
1950.
) ;
*TITRE ' N112P DENSITY' ;
TT1.'N112P' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000. 5.5E3
) 'RHO'
(PROG 2010.
2010.
2010.
2010.
2010.
2009.
2009.
2009.
2009.
2009.
2008.
2008.
2008.
2008.
2008.
2007.
2007.
2007.
2007.
2007.
2007.
2007.
);
EVRHOC = (TT1.'N112P' . 'RHO') * ( TT1.'N112P' . 'C') ;
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'N112H' ) ;
TT1.'N112H' = TABLE ;
*
* TITRE ' N112 H CONDUCTIVITY' ;
TT1.'N112H' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 210.
210.
123.
105.
76.
62.
52.
52.
) ;QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'N112' ) ;
TT1.'N112' = TABLE ;
*
TT1.'N112' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 210.
210.
123.
105.
76.
62.
52.
52.
) ;
*TITRE ' N112 SPECIF HEAT' ;
TT1.'N112' . 'C'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'C'
(PROG 780.
780.
1430.
1580.
1890.
2030.
2060.
2060.
) ;
*TITRE ' N112 DENSITY' ;
TT1.'N112' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'RHO'
(PROG 1820.
1820.
1820.
1820.
1820.
1820.
1820.
1820.
);
EVRHOC = (TT1.'N112' . 'RHO') * ( TT1.'N112' . 'C') ;
* valeurs donnee par Deschamps 28 le 16.02.93
TT1.'N112' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(PROG 28.
E9 28.
E9 31.
E9 34.
E9 37.
E9 37.
E9);*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'N11' ) ;
TT1.'N11' = TABLE ;
*
*js 190296 TT1.'N11' . 'K' = EVOL MANU
*js 190296 'T' (PROG -500. 23. 350. 500. 1000. 1500. 2000. 4.5E3)
*js 190296 'K'(PROG 210. 210. 123. 105. 76. 62. 52. 52.) ;
TT1.'N11' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) * ( 210.
/247.
) );
*TITRE ' N11 SPECIF HEAT' ;
TT1.'N11' . 'C'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'C'
(PROG 780.
780.
1430.
1580.
1890.
2030.
2060.
2060.
) ;
*TITRE ' N11 DENSITY' ;
TT1.'N11' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'RHO'
(PROG 1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
);
EVRHOC = (TT1.'N11' . 'RHO') * ( TT1.'N11' . 'C') ;
* valeurs donnee par Deschamps 28 le 16.02.93
TT1.'N11' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(PROG 28.
E9 28.
E9 31.
E9 34.
E9 37.
E9 37.
E9);*
QUITTER BLOC1 ;
FINSI ;
***************************************************************************
SI ( EGA MOT1 'N11_PPI' ) ;
TT1.'N11_PPI' = TABLE ;
* ....Lipa...actualise les valeurs le 28.3.95..suivant mesures PPI.
TT1.'N11_PPI' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 246.
246.
165.
141.
94.
72.
52.
52.
) ;
*TITRE ' N11_PPI SPECIF HEAT' ;
TT1.'N11_PPI' . 'C'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'C'
(PROG 780.
780.
1430.
1580.
1890.
2030.
2060.
2060.
) ;
*TITRE ' N11_PPI DENSITY' ;
TT1.'N11_PPI' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'RHO'
(PROG 1750.
1750.
1750.
1750.
1750.
1750.
1750.
1750.
);
EVRHOC = (TT1.'N11_PPI' . 'RHO') * ( TT1.'N11_PPI' . 'C') ;
TT1.'N11_PPI' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;* valeurs donnee par Deschamps 28 le 16.02.93
TT1.'N11_PPI' . 'YOUN'
= EVOL MANU 'T'
(PROG -500.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(PROG 28.
E9 28.
E9 31.
E9 34.
E9 37.
E9 37.
E9);
TT1.'N11_PPI' . 'ALPH'
= EVOL MANU 'T'
(PROG -500.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 1.5E
-6 1.5E
-6 1.6E
-6 1.7E
-6 1.8E
-6 1.9E
-6
);
TT1.'N11_PPI' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
3500.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );*
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'I1N112P' ) ;
* creation de ce materiau par J. SCHLOS le 22/09/94
* valeurs dans le plan, moyenne des directions x et y
* N112 // irradie at 640 deg C / 1.25 dpa.g
TT1.'I1N112P' = TABLE ;
*
TT1.'I1N112P' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
3500.
) 'K'
((PROG 45.6 45.6 48.7 53.1 55.8 57.2 57.9 58.
57.8 57.4 56.8 56.1 55.4 54.7 54.
53.6 52.9 51.3 37.2 21.
11.3 6.2 1.9) );* Source :Bonnal telecopie a Deschamps le 21 09 94
* extrapole au dessus de 600.
*TITRE ' I1N112P SPECIF HEAT' ;
TT1.'I1N112P' . 'C'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
3500.
) 'C'
((PROG 666.
666.
750.
901.
1031.
1142.
1237.
1320.
1391.8 1455.
1511.
1561.
1605.
1645.
1651.4 1680.6 1707.1 1731.3 1865.8 2098.4 2281.
2433.4 2682.6 ) );
*TITRE ' I1N112P DENSITY' ;
TT1.'I1N112P' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
3500.
) 'RHO'
(PROG 2026.
2026.
2026.
2026.
2025.
2025.
2025.
2024.
2024.
2024.
2023.
2023.
2023.
2023.
2022.
2022.
2022.
2022.
2022.
2022.
2022.
2022.
2022.
);EVRHOC = (TT1.'I1N112P' . 'RHO') * ( TT1.'I1N112P' . 'C') ;
TT1.'I1N112P' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;QUITTER BLOC1 ;
FINSI ;
**************************************************************************************
SI ( EGA MOT1 'N11P' ) ;
* creation de ce materiau par R. MITTEAU le 20/01/94
* valeurs dans le plan, moyenne des directions x et y
* MODIF Fred.ESC. le 28/10/95 *****
* But de la manoeuvre :ameliorer la conductivite a haute temperature
* MODIF 1 : otpimisation au dela de 800 degC
TT1.'N11P' = TABLE ;
TT1.'N11P' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
((PROG 247.8 247.8 243.4 228.0 210.2 193.2 178.1 165.
153.8 144.2 136.
129.
122.9 117.7 113.2 109.2 105.7 102.6 91.69 75.17 65.28 58.52 43.95) * ( 240.
/247.
) );
*ESC 153.8 144.2 136. 129. 122.9 117.7 113.2 109.2 105.7 102.6 74.5 41.
*ESC 41. 41. 41.) * ( 240./247.) );
* MODIF 2 : MODIF 1 * ( 240./247.)
* 153.8 144.2 136. 129. 122.9 117.7 113.2 109.2 105.7 102.6 94.36 77.36
* 67.19 60.23 45.23) * ( 240./247.) );
* MODIF 3 : MODIF 2 * ( 1.05 )
* 153.8 144.2 136. 129. 122.9 117.7 113.2 109.2 105.7 102.6 99.08 81.23
* 70.54 63.25 47.5) * ( 240./247.) );
* MODIF 4 : ORIGINAL * ( 1.1 )
*153.8 144.2 136. 129. 122.9 117.7 113.2 109.2 105.7 102.6 74.5 41.
* 41. 41. 41.) * ( 240./247.*1.1) );
* FIN MODIF Fred. ESC le 28/10/95 *****
* Source : Valeur a 25 C donnee par Chappuis selon mesures SEP
* (registre de controle individuel)2129043
* extrapolees pour les temperatures superieures selon valeurs
* du rapport DMT/93-265, J.P. BONAL, Elements pour la constitution
* d'une base de donnee sur les composites carbone-carboneA05 A035
* N11 N112 envisages pour la fusion thermonucleaire
* Aout 1993, extrapollee exponentiellement au dela de 800 C
*TITRE ' N11P SPECIF HEAT' ;
TT1.'N11P' . 'C'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'C'
(PROG 672.8 672.8 763.9 920.5 1049.4 1156.6 1247.
1324.
1390.4 1448.2 1498.8 1543.6 1583.5 1619.2 1651.4 1680.6 1707.1 1731.3 1865.8 2098.4 2281.
2433.4 2682.6 ) ;* source: rapport DMT/93-265, J.P. BONAL, Elements pour la constitution
* d'une base de donnee sur les composites carbone-carboneA05 A035
* N11 N112 envisages pour la fusion thermonucleaire
* Aout 1993, extrapollee exponentiellement au dela de 800 C
*TITRE ' N11P DENSITY' ;
TT1.'N11P' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'RHO'
(PROG 1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
);
EVRHOC = (TT1.'N11P' . 'RHO') * ( TT1.'N11P' . 'C') ;
TT1.'N11P' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 9.5E3
) 'ALPH'
((1.42/6.
)*(PROG 6.
E-6 6.
E-6 6.6E
-6 7.8E
-6 9.
E-6 9.0E
-6
));* Source : Valeur a 20 C donnee par Chappuis selon mesures SEP
* extrapolees pour les temperatures superieures selon lois precedentes
TT1.'N11P' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
((24.5/22.
)*(PROG 22.
E9 22.
E9 24.3E9 26.7E9 29.
E9 29.
E9));* Source : Valeur a 20 C donnee par Chappuis selon mesures SEP
* extrapolees pour les temperatures superieures selon lois precedentes
*
TT1.'N11P' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );* Pris egal a celui de A05 par defaut d'autre valeur
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 'N11H' ) ;
* creation de ce materiau par R. MITTEAU le 20/01/94
TT1.'N11H' = TABLE ;
*
TT1.'N11H' . 'K'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'K'
((PROG 170.1 170.1 168.1 159.
147.9 137.0 127.2 118.5 111.
104.5 98.9 94.1 89.9 86.2 82.9 80.1 77.6 75.3 56.3 32.3 18.6 10.7 3.5 ) * (149.4/170.1));* Source : Valeur a 25 C donnee par Chappuis selon mesures SEP
* (registre de controle individuel) 2129043
* extrapolees pour les temperatures superieures selon valeurs
* du rapport DMT/93-265, J.P. BONAL, Elements pour la constitution
* d'une base de donnee sur les composites carbone-carbone A05 A035
* N11 N112 envisages pour la fusion thermonucleaire
* Aout 1993, extrapollee exponentiellement au dela de 800 C
*TITRE ' N11H SPECIF HEAT' ;
TT1.'N11H' . 'C'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'C'
(PROG 672.8 672.8 763.9 920.5 1049.4 1156.6 1247.
1324.
1390.4 1448.2 1498.8 1543.6 1583.5 1619.2 1651.4 1680.6 1707.1 1731.3 1865.8 2098.4 2281.
2433.4 2682.6 ) ;* source rapport DMT/93-265, J.P. BONAL, Elements pour la constitution
* d'une base de donnee sur les composites carbone-carbone A05 A035
* N11 N112 envisages pour la fusion thermonucleaire
* Aout 1993, extrapollee y=a*(x**b) au dela de 800 C
*TITRE ' N11H DENSITY' ;
TT1.'N11H' . 'RHO'
= EVOL MANU 'T'
(PROG -500.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
1000.
1500.
2000.
2500.
4500.
) 'RHO'
(PROG 1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
1720.
);
EVRHOC = (TT1.'N11H' . 'RHO') * ( TT1.'N11H' . 'C') ;
TT1.'N11H' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 9.5E3
) 'ALPH'
((PROG 6.
E-6 6.
E-6 6.6E
-6 7.8E
-6 9.
E-6 9.0E
-6
) * (2.67/6));* Source : Valeur a 25 C donnee par Chappuis selon mesures SEP
* (registre de controle individuel)2129043
* extrapolee en T suivant loi ?
TT1.'N11H' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(PROG 28.
E9 28.
E9 31.
E9 34.
E9 37.
E9 37.
E9);* source : valeurs donnees par Deschamps le 16.02.93
TT1.'N11H' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );* Pris egal a celui de A05 par defaut d'autre valeur
QUITTER BLOC1 ;
FINSI ;
***********************************************************************
SI ( EGA MOT1 '5890PT' ) ;
TT1.'5890PT' = TABLE ;
*
*TITRE ' 5890PT CONDUCTIVITY' ;
TT1.'5890PT' . 'K'
= EVOL MANU 'T'
(PROG -200.
27.
200.
600.
800.
1000.
1500.
2000. 9.5E3
) 'K'
( PROG 76.
76.
73.5 54.7 49.0 44.0 36.5 31.7 31.7);
TT1.'5890PT' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 9.5E3
) 'RHO'
(PROG 1820.
1820.
1820.
1820.
1820.
1820.
1820.
);
TT1.'5890PT' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 9.5E3
) 'C'
(PROG 880.
880.
1520.
1940.
2110.
2280.
2280.
);
EVRHOC = (TT1.'5890PT' . 'RHO') * ( TT1.'5890PT' . 'C');
TT1.'5890PT' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;*
* caracteristiques mecaniques ajoutees par R. MITTEAU le 30 mars 1994
TT1.'5890PT' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
200.
700.
1200.
1700.
2200. 9.5E3
) 'YOUN'
(PROG 12.
E9 12.
E9 13.
E9 14.
E9 15.
E9 15.5E9 14.4E9 14.4E9
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
TT1.'5890PT' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
100.
700.
1200.
1700.
2200. 9.5E3
) 'ALPH'
(PROG 4.2E
-6 4.2E
-6 4.3E
-6 4.8E
-6 5.2E
-6 5.6E
-6 6.
E-6 6.
E-6
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
TT1.'5890PT' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
200.
700.
1200.
1700.
2200. 9.5E3
) 'NU'
(PROG .09 .09 .09 .1 .11 .12 .12 .12
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
QUITTER BLOC1 ;
FINSI ;
*********************************************************************
SI ( EGA MOT1 'PYRO_GP' ) ;
TT1.'PYRO_GP' = TABLE ;
*
*TITRE ' PYRO_GP CONDUCTIVITY' ;
TT1.'PYRO_GP' . 'K'
= EVOL MANU 'T'
(PROG -200.
27.
200.
400.
600.
800.
1000.
1200.
1400.
1600.
2000. 9.5E3
) 'K'
( PROG 500.
500.
408.
350.
294.
260.
238.
220.
203.
190.
190.
190.
);
TT1.'PYRO_GP' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 9.5E3
) 'RHO'
(PROG 2200.
2200.
2200.
2200.
2200.
2200.
2200.
);
TT1.'PYRO_GP' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 9.5E3
) 'C'
(PROG 880.
880.
1520.
1940.
2110.
2280.
2280.
);
EVRHOC = (TT1.'PYRO_GP' . 'RHO') * ( TT1.'PYRO_GP' . 'C');
TT1.'PYRO_GP' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'PYRO_GH' ) ;
*
TT1.'PYRO_GH' = TABLE ;
*
*TITRE ' PYRO_GH CONDUCTIVITY' ;
TT1.'PYRO_GH' . 'K'
= EVOL MANU 'T'
(PROG -200.
27.
200.
400.
600.
800.
1000.
1200.
1400.
1600.
2000. 9.5E3
) 'K'
( PROG 1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
1.
);
TT1.'PYRO_GH' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 9.5E3
) 'RHO'
(PROG 2200.
2200.
2200.
2200.
2200.
2200.
2200.
);
TT1.'PYRO_GH' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 9.5E3
) 'C'
(PROG 880.
880.
1520.
1940.
2110.
2280.
2280.
);
EVRHOC = (TT1.'PYRO_GP' . 'RHO') * ( TT1.'PYRO_GP' . 'C');
TT1.'PYRO_GH' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;*
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'TOYOTANSO' ) ;
TT1.'TOYOTANSO' = TABLE ;
*
LR1
= PROG 0.
20.
25.
50.
100.
150.
200.
250.
300.
350.
400.
450.
500.
550.
600.
650.
700.
750.
800.
4500.
; LR2
= PROG 149.6 149.6 150.1 150.5 145.7 137.9 129.4 121.3 113.8 107.0 100.8 95.3 90.4 86.0 82.0 78.5 75.2 72.2 69.5 69.5 ;*TITRE ' TOYOTANSO CONDUCTIVITY' ;
TT1.'TOYOTANSO' . 'K'
= EVOL MANU 'T' LR1 'K' LR2
;
LD
= PROG 1838 1838 1838 1837 1836 1835 1833 1832 1831 1829 1828 1827 1825 1824 1823 1821 1820 1819 1817 1817 ; TT1.'TOYOTANSO' . 'RHO'
= EVOL MANU 'T' LR1 'RHO' LD
;
LR4
= PROG 666.8 666.8 686.4 778.0 933.3 1059.2 1162.9 1249.7 1323.3 1386.5 1441.2 1489.1 1531.4 1568.9 1602.5 1632.6 1659.9 1684.7 1707.3 1707.3 ; TT1.'TOYOTANSO' . 'C'
= EVOL MANU 'T' LR1 'C'LR4
;
EVRHOC = (TT1.'TOYOTANSO' . 'RHO') * ( TT1.'TOYOTANSO' . 'C');
TT1.'TOYOTANSO' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'A05P' ) ;
TT1.'A05P' = TABLE ;
* 31/7/92 diminution de la conduc A05
*TITRE ' A05 // CONDUCTIVITY' ;
TT1.'A05P' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 9.5E3
) 'K'
(PROG 200.
200.
117.
97.
68.
55.
45.
45.
) ;
*
TT1.'A05P' . 'C'
= EVOL MANU 'T'
(PROG -5000.
20.
500.
1000.
2000. 9.5E3
) 'C'
( PROG 880.
880.
1500.
1900.
2070.
2070.
);
TT1.'A05P' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
20.
500.
1000.
2000. 9.5E3
) 'RHO'
(PROG 1770.
1770.
1770.
1770.
1770.
1770.
);
EVRHOC = (TT1.'A05P' . 'RHO') * ( TT1.'A05P' . 'C');
TT1.'A05P' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 9.5E3
) 'YOUN'
(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9);
TT1.'A05P' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 9.5E3
) 'ALPH'
(PROG 1.
E-6 1.
E-6 1.1E
-6 1.3E
-6 1.5E
-6 1.5E
-6
);
TT1.'A05P' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'A05H' ) ;
TT1.'A05H' = TABLE ;
*
*TITRE ' A05 H CONDUCTIVITY' ;
TT1.'A05H' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 9.5E3
) 'K'
(PROG 95.
95.
60.
47.
30.
28.
26.
26.
) ;
* alpha pris egal a 6 * alpha de A05P le 3 decembre 1993
* R.MITTEAU - J. SCHLOSSER
TT1.'A05H' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 9.5E3
) 'ALPH'
(PROG 6.
E-6 6.
E-6 6.6E
-6 7.8E
-6 9.
E-6 9.0E
-6
);
* toutes evolutions suivantes de A05 H prises egales a celle
* de A05P le 3 decembre 1993 R.MITTEAU - J. SCHLOSSER
TT1.'A05H' . 'C'
= EVOL MANU 'T'
(PROG -5000.
20.
500.
1000.
2000. 9.5E3
) 'C'
( PROG 880.
880.
1500.
1900.
2070.
2070.
);
TT1.'A05H' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
20.
500.
1000.
2000. 9.5E3
) 'RHO'
(PROG 1770.
1770.
1770.
1770.
1770.
1770.
);
EVRHOC = (TT1.'A05H' . 'RHO') * ( TT1.'A05H' . 'C');
TT1.'A05H' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 9.5E3
) 'YOUN'
(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9);
TT1.'A05H' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );QUITTER BLOC1 ;
FINSI ;
********************************************************************************
SI ( EGA MOT1 'A05ORT3D' ) ;
* ce materiau est de l A05 orthotrope en 3 dimensions
* plans conducteurs dans la direction 2 - 3
* mis a jour le 22/12/93 par R. MITTEAU
TT1.'A05ORT3D' = TABLE ;
*------------------------ Donnees thermiques
TT1.'A05ORT3D' . 'K1'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 9.5E3
) 'K'
(PROG 95.
95.
60.
47.
30.
28.
26.
26.
) ;* ref : inconnue
TT1.'A05ORT3D' . 'K2'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 200.
200.
117.
97.
68.
55.
45.
45.
) ;* ref Le Carbone Lorraine
TT1.'A05ORT3D' . 'K3'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 200.
200.
117.
97.
68.
55.
45.
45.
) ;* reference Le Carbone Lorraine
TT1.'A05ORT3D' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
2000. 4.5E3
) 'C'
( PROG 880.
880.
1500.
1900.
2070.
2070.
);* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
TT1.'A05ORT3D' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
2000. 4.5E3
) 'RHO'
(PROG 1770.
1770.
1770.
1770.
1770.
1770.
);* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
EVRHOC = (TT1.'A05ORT3D' . 'RHO') * ( TT1.'A05ORT3D' . 'C');
TT1.'A05ORT3D' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
*------------------------ Donnees mecaniques
TT1.'A05ORT3D' . 'YG1'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'YOUN'
(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9 26.
E9);* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
TT1.'A05ORT3D' . 'YG2'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'YOUN'
(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9 26.
E9) ;* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
TT1.'A05ORT3D' . 'YG3'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'YOUN'
(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9 26.
E9);* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
TT1.'A05ORT3D' . 'NU12'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );* ref : Le Carbone Lorraine, generalise pour toutes les T et directions
TT1.'A05ORT3D' . 'NU23'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );* ref : Le Carbone Lorraine, generalise pour toutes les T et directions
TT1.'A05ORT3D' . 'NU13'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );* ref : Le Carbone Lorraine, generalise pour toutes les T et directions
1PLUS
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 1.
1.
1.
1.
1.
1.
1.
);
TT1.'A05ORT3D' . 'G12' = TT1.'A05ORT3D' . 'YG3' /(2* (1PLUS + TT1.'A05ORT3D' . 'NU12' ));
* ref : formule G = E / (2 * (1 + nu)), a verifier en orthotrope
TT1.'A05ORT3D' . 'G23' = TT1.'A05ORT3D' . 'YG1' /(2* (1PLUS + TT1.'A05ORT3D' . 'NU23' ));
* ref : formule G = E / (2 * (1 + nu)), a verifier en orthotrope
TT1.'A05ORT3D' . 'G13' = TT1.'A05ORT3D' . 'YG2' /(2* (1PLUS + TT1.'A05ORT3D' . 'NU13' ));
* ref : formule G = E / (2 * (1 + nu)), a verifier en orthotrope
* TT1.'A05ORT3D' . 'G12' = EVOL MANU
*'T' (PROG 0. 20. 500. 1000. 2000. 4.5E3 )
* 'COULOMB' (1.6*(PROG 20.E9 20.E9 22.E9 24.E9 26.E9 26.E9));
* TT1.'A05ORT3D' . 'G23' = EVOL MANU
*'T' (PROG 0. 20. 500. 1000. 2000. 4.5E3 )
* 'COULOMB' (1.7*(PROG 20.E9 20.E9 22.E9 24.E9 26.E9 26.E9));
* TT1.'A05ORT3D' . 'G13' = EVOL MANU
*'T' (PROG 0. 20. 500. 1000. 2000. 4.5E3 )
* 'COULOMB' (1.8*(PROG 20.E9 20.E9 22.E9 24.E9 26.E9 26.E9));
TT1.'A05ORT3D' . 'ALP1'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 7.
E-6 7.
E-6 7.5E
-6 8.0E
-6 9.0E
-6 10.0E
-6
) ;* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
* interpole a partir des valeurs a 20 C et 2000 C
TT1.'A05ORT3D' . 'ALP2'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 0.7E
-6 0.7E
-6 0.9E
-6 1.1E
-6 1.5E
-6 2.3E
-6
);* interpole a partir des valeurs a 20 C et 2000 C
* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
TT1.'A05ORT3D' . 'ALP3'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 0.7E
-6 0.7E
-6 0.9E
-6 1.1E
-6 1.5E
-6 2.3E
-6
);* ref : Principales caracteristiques des materiaux NET NT TS 51-90-06
* interpole a partir des valeurs a 20 C et 2000 C
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'A05ORT2D' ) ;
* ce materiau est de l A05 orthotrope en 2 dimensions
* plans conducteurs dans la direction
TT1.'A05ORT2D' = TABLE ;
*------------------------ Donnees thermiques
TT1.'A05ORT2D' . 'K'
= EVOL MANU 'T'
(PROG -500.
23.
350.
500.
1000.
1500.
2000. 4.5E3
) 'K'
(PROG 200.
200.
117.
97.
68.
55.
45.
45.
) ;
TT1.'A05ORT2D' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
2000. 4.5E3
) 'C'
( PROG 880.
880.
1500.
1900.
2070.
2070.
);
TT1.'A05ORT2D' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
2000. 4.5E3
) 'RHO'
(PROG 1770.
1770.
1770.
1770.
1770.
1770.
);
EVRHOC = (TT1.'A05ORT2D' . 'RHO') * ( TT1.'A05ORT2D' . 'C');
TT1.'A05ORT2D' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
*------------------------ Donnees mecaniques
* le 6/12/93, tout est bidon et ne sert qu a verifier
* que l orthotropie passe
TT1.'A05ORT2D' . 'YG1'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9);
TT1.'A05ORT2D' . 'YG2'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(1.3*(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9));
TT1.'A05ORT2D' . 'YG3'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'YOUN'
(1.5*(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9));
TT1.'A05ORT2D' . 'G12'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'COULOMB'
(1.6*(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9));
TT1.'A05ORT2D' . 'G23'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'COULOMB'
(1.7*(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9));
TT1.'A05ORT2D' . 'G13'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'COULOMB'
(1.8*(PROG 20.
E9 20.
E9 22.
E9 24.
E9 26.
E9 26.
E9));
TT1.'A05ORT2D' . 'ALP1'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(PROG 1.
E-6 1.
E-6 1.1E
-6 1.3E
-6 1.5E
-6 1.5E
-6
);*
TT1.'A05ORT2D' . 'ALP2'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(1.3*(PROG 1.
E-6 1.
E-6 1.1E
-6 1.3E
-6 1.5E
-6 1.5E
-6
));
TT1.'A05ORT2D' . 'ALP3'
= EVOL MANU 'T'
(PROG 0.
20.
500.
1000.
2000. 4.5E3
) 'ALPH'
(1.5*(PROG 1.
E-6 1.
E-6 1.1E
-6 1.3E
-6 1.5E
-6 1.5E
-6
));
TT1.'A05ORT2D' . 'NU12'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );*
TT1.'A05ORT2D' . 'NU23'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );*
TT1.'A05ORT2D' . 'NU13'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG 0.4 0.4 0.4 0.4 0.4 0.4 0.4 );
QUITTER BLOC1 ;
FINSI ;
******************************************************************************
SI ( EGA MOT1 'B4C' ) ;
TT1.'B4C' = TABLE ;
TT1.'B4C' . 'K'
=EVOL MANU 'T'
(PROG -200.
0.
50.
75.
100.
150.
200.
300.
400.
500.
600.
650.
700.
750.
1000.
2000. 2.5E3
) 'K'
(PROG 0.5 .5
1.
1.1 1.15 1.1 1.
0.8 0.78 0.87 1.12 1.4 1.75 2.2 4.45 13.45 18.
);
* Valeurs rentrees le 30.01.1995 par R. Mitteau, d'apres le rapport
*'Determination de la conductivite thermique d'un depot de B4C sur
* un substrat cuivre' par D. Gosset, Rapport LEMA.DG.AD/95-003
* du 06.01.1995, valeurs extrapolees lineairement au dessus de 800C
* Valeurs representatives d'echantillons SNMI
TT1.'B4C' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
100.
200.
300.
400.
500.
600.
800.
1000.
1500.
2000. 2.5E3
) 'RHO'
(PROG 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3 1.3E3
);
* Valeurs rentrees le 30.01.1995 par R. Mitteau, d'apres le rapport
*'Determination de la conductivite thermique d'un depot de B4C sur
* un substrat cuivre' par D. Gosset, Rapport LEMA.DG.AD/95-003
* du 06.01.1995, valeurs extrapolees lineairement au dessus de 800C
* Valeurs representatives d'echantillons SNMI
TT1.'B4C' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
100.
200.
300.
400.
500.
600.
800.
1000.
1500.
2000. 2.5E3
) 'C'
(PROG .5E3 .85E3 1.15E3 1.35E3 1.5E3 1.6E3 1.65E3 1.65E3 1.63E3 1.58E3 1.5E3 1.5E3 1.5E3
) ;
* Valeurs rentrees le 30.01.1995 par R. Mitteau, d'apres le rapport
*'Determination de la conductivite thermique d'un depot de B4C sur
* un substrat cuivre' par D. Gosset, Rapport LEMA.DG.AD/95-003
* du 06.01.1995, valeurs extrapolees lineairement au dessus de 800C
* Valeurs representatives d'echantillons SNMI
EVRHOC = (TT1.'B4C' . 'RHO') * ( TT1.'B4C' . 'C');
*
TT1.'B4C' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
600.
2000.
) 'YOUN'
(PROG 450.
E9 450.
E9 450.
E9 450.
E9 450.
E9 450.
E9);
TT1.'B4C' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
2000.
) 'ALPH'
(PROG 5.
E-6 5.
E-6 5.
E-6 5.
E-6 5.
E-6 5.
E-6 5.
E-6
);
TT1.'B4C' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
* valeurs non connues prises identiques AU CUCRZR
TT1.'B4C' . 'SIGY'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
2000.
) 'SIGY'
(PROG 10.
E6 10.
E6 10.
E6 10.
E6 10.
E6 10.
E6 2.
E6 0.
);
* TT1.'B4C' . 'H' = EVOL MANU
*'T'(PROG 0. 20. 200. 400. 500. 600.
* 800. 1000.)
* 'H' (PROG 1190.5E6 1190.5E6 1041.7E6 875.E6 729.2E6 500.E6
* 312.5E6 10.E6 );
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'BEHP' ) ;
* stands for BEryllium Hot Pressed
* valeurs rentrees le 18 mars 1994 par raphael MITTEAU
TT1.'BEHP' = TABLE ;
TT1.'BEHP' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
100.
300.
500.
600.
800.
1000.
2000.
4000.
) 'K'
(PROG 187.
187.
149.
130.
108.
103.
99.
93.
77.
60.
) ;* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeurs pour 20 300 500 600, Best Fit pour les autres (log)
* donnee en Watt/ metre * Kelvin
TT1.'BEHP' . 'ALPH'
= EVOL MANU 'T'
(PROG -200.
20.
100.
500.
1000.
4000.
) 'ALPH'
(PROG 11.3E
-6 11.3E
-6 13.5E
-6 19.
E-6 22.7E
-6 27.9E
-6
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeurs pour 20 100 500 1000, Best Fit pour les autres (puiss)
* donnee en [.]
TT1.'BEHP' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
100.
500.
1000.
1500.
4000.
) 'C'
(PROG 1700.
1700.
2090.
2250.
2920.
3590.
3590.
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeurs pour 20 100 500 1000 1500 C
* donnee en Joule par Kelvin et par Kilo
* ce jeu de valeurs montre sans doute un PB vers 100 C
TT1.'BEHP' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
100.
500.
1000.
1500.
4000.
) 'RHO'
(PROG 1850.
1850.
1826.
1711.
1565.
1420.
1420.
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeurs pour 20 et 1500 C, linearise pour les autres valeurs
* donnee en Kilo par metre cube
EVRHOC = (TT1.'BEHP' . 'RHO') * ( TT1.'BEHP' . 'C');
TT1.'BEHP' . 'YOUN'
= EVOL MANU 'T'
(PROG -200.
20.
300.
500.
800.
4000.
) 'YOUN'
(PROG 297.
E9 297.
E9 281.
E9 270.
E9 253.
E9 72.
E9 );* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeurs pour 20 600 et 800 C, Best Fit pour les autres (lineaire)
* donnee Pascal
TT1.'BEHP' . 'NU'
= EVOL MANU 'T'
(PROG -200.
20.
300.
500.
700.
900.
4000.
) 'NU'
(PROG .08 .08 .08 .08 .08 .08 .08
);* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
TT1.'BEHP' . 'SIGY'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600.
800.
1100.
) 'SIGY'
(PROG 275.
E6 275.
E6 245.
E6 210.
E6 150.
E6 25.
E6 1.
E6 );* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeurs pour 20 a 800 C corrigees,
* extrapolees a vue au dessus en fonction de Temp Fusion
* donnees exprimees en Pascal
TT1.'BEHP' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
4000.
) 'H'
(PROG 8.
* 400.
E6 );* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeur moyenne prise cste pour tout T
* donnees exprimees en Pascal
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'BE_ITER' ) ;
* stands for BEryllium hot pressed and sintered, fitted values
* valeurs rentrees le 29 mars 95 par J.F. Salavy
* source : ITER MATERIAL PROPERTIES HANDBOOK
* (draft, file code ITER-AL01-2101)
* envoyees par Ivi Schmid le 29/03/95 (excepte pour H)
* Pour Young, Poisson et yield, les polynomes donnent des valeurs
* de 0 a 800C. Les valeurs suivantes sont intuitees mais
* non exactes.
TT1.'BE_ITER' = TABLE ;
LTEMC1
= (PROG 20.
PAS 39.
800.
) ;
I1 = 0 ;
REPE BOUC1
(DIME LTEMC1
) ; I1 = I1 + 1 ;
TEMPC1
= EXTR LTEMC1 I1
; VALCON1 = (-1.0104E-07 * (TEMPC1 ** 3.)) + ( 2.5429E-04 * (TEMPC1 ** 2.)) + (-2.6939E-01 * TEMPC1 ) + ( 1.8980E+02 ) ;
LCON1
= LCON1
ET (PROG VALCON1
) ;
VALCSP1 = ( 1.2748E-06 * (TEMPC1 ** 3.)) + (-3.1125E-03 * (TEMPC1 ** 2.)) + ( 3.3358E+00 * TEMPC1 ) + ( 1.7418E+03 ) ;
LCSP1
= LCSP1
ET (PROG VALCSP1
) ;
VALRHO1 = (-1.5139E-05 * (TEMPC1 ** 2.)) + (-6.9336E-02 * TEMPC1 ) + ( 1.8230E+03 ) ;
LRHO1
= LRHO1
ET (PROG VALRHO1
) ;
VALALP1 = ( 3.4457E-15 * (TEMPC1 ** 3.)) + (-1.3462E-11 * (TEMPC1 ** 2.)) + ( 2.1892E-08 * TEMPC1 ) + ( 1.0822E-05 ) ;
LALP1
= LALP1
ET (PROG VALALP1
) ;
VALYOU1 = (-7.6042E+02 * (TEMPC1 ** 3.)) + ( 3.8393E+05 * (TEMPC1 ** 2.)) + (-8.6726E+07 * TEMPC1 ) + ( 3.0961E+11 ) ;
LYOU1
= LYOU1
ET (PROG VALYOU1
) ;
VALPOI1 = (-2.5E-05 * TEMPC1 ) + ( 0.0715 ) ;
LPOI1
= LPOI1
ET (PROG VALPOI1
) ;
VALYIE1 = ( 8.5157E-02 * (TEMPC1 ** 3.)) + (-4.1428E+02 * (TEMPC1 ** 2.)) + ( 4.4811E+04 * TEMPC1 ) + ( 2.2464E+08 ) ;
LYIE1
= LYIE1
ET (PROG VALYIE1
) ;
FIN BOUC1 ;
LTEMPT
= (PROG -200.
) ET LTEMC1
ET (PROG 1250.
10000.
) ;
LCSP1T
= (PROG (EXTR LCSP1
1)) ET LCSP1
ET (PROG 3540.
3540.
) ;LRHO1T
= (PROG (EXTR LRHO1
1)) ET LRHO1
ET (PROG 1713.
1713.
) ;LALP1T
= (PROG (EXTR LALP1
1)) ET LALP1
ET (PROG 2.4E
-5 2.4E
-5
) ;LYOU1T
= (PROG (EXTR LYOU1
1)) ET LYOU1
ET (PROG 98.
E+9 98.
E+9
) ;LPOI1T
= (PROG (EXTR LPOI1
1)) ET LPOI1
ET (PROG 0.0517 0.0517) ;LYIE1T
= (PROG (EXTR LYIE1
1)) ET LYIE1
ET (PROG 35.
E+6 35.
E+6
) ;
TT1.'BE_ITER' . 'K'
= EVOL MANU 'T'
(LTEMPT
) 'K'
(LCON1T
) ;
TT1.'BE_ITER' . 'C'
= EVOL MANU 'T'
(LTEMPT
) 'C'
(LCSP1T
) ;
TT1.'BE_ITER' . 'RHO'
= EVOL MANU 'T'
(LTEMPT
) 'RHO'
(LRHO1T
) ;
TT1.'BE_ITER' . 'ALPH'
= EVOL MANU 'T'
(LTEMPT
) 'ALPH'
(LALP1T
) ;
TT1.'BE_ITER' . 'YOUN'
= EVOL MANU 'T'
(LTEMPT
) 'YOUN'
(LYOU1T
) ;
TT1.'BE_ITER' . 'NU'
= EVOL MANU 'T'
(LTEMPT
) 'NU'
(LPOI1T
) ;
TT1.'BE_ITER' . 'SIGY'
= EVOL MANU 'T'
(LTEMPT
) 'SIGY'
(LYIE1T
) ;
EVRHOC = (TT1.'BE_ITER' . 'RHO') * ( TT1.'BE_ITER' . 'C');
TT1.'BE_ITER' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
TT1.'BE_ITER' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
4000.
) 'H'
(PROG 8.
* 400.
E6 );* source : MATERIAL DATA for predesign Analysis of In Vessel Components
* compiled by E. Zolti The NET TEAM, internal Note, Revised 14.9.90
* valeur moyenne prise cste pour tout T
* donnees exprimees en Pascal
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'MOLY' ) ;
TT1.'MOLY' = TABLE ;
*
TT1.'MOLY' . 'K'
= EVOL MANU 'T'
(PROG -100.
20.
500.
1000.
1500.
2000.
2500. 2.5E3
) 'K'
(PROG 60.
60.
50.
35.
22.
10.
2.
2.
) ;*
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'TZM' ) ;
TT1.'TZM' = TABLE ;
*
TT1.'TZM'.'K'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500. 2.5E3
) 'K'
(PROG 125.
125.
115.
100.
87.
75.
67.
67.
) ; TT1.'TZM' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500. 2.5E3
) 'C'
( PROG 240.
240.
250.
290.
330.
400.
500.
500.
);
TT1.'TZM' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500. 2.5E3
) 'RHO'
(PROG 10200.
10200.
10200.
10200.
10200.
10200.
10200.
10200.
);
EVRHOC = (TT1.'TZM'.'RHO') * ( TT1.'TZM'.'C');
TT1.'TZM' . 'YOUN'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000. 2.5E3
) 'YOUN'
(PROG 300.
E9 300.
E9 260.
E9 220.
E9 140.
E9 40.
E9 40.
E9);
TT1.'TZM' . 'ALPH'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500. 2.5E3
) 'ALPH'
(PROG 5.3E
-6 5.3E
-6 5.6E
-6 6.0E
-6 6.5E
-6 7.2E
-6 8.0E
-6 8.0E
-6
);
TT1.'TZM' . 'NU'
= EVOL MANU 'T'
(PROG -200.
20.
300.
500.
700.
900.
2000. 2.5E3
) 'NU'
(PROG 0.32 0.32 0.32 0.32 0.32 0.32 0.32 0.32 );
TT1.'TZM' . 'SIGY'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600.
800.
1000. 2.5E3
) 'SIGY'
(PROG 6.
E8 6.
E8 4.5E8 4.25E8 3.5E8 3.
E8 2.5E8 2.5E8
);
TT1.'TZM' . 'H'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600.
800.
1000. 2.5E3
) 'H'
(PROG 1.1E9 1.1E9 1.1E9 1.1E9 1.1E9 1.1E9 1.1E9 1.1E9
);*
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'TUNGSTEN' ) ;
TT1.'TUNGSTEN' = TABLE ;
*
TT1.'TUNGSTEN'.'K'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500.
3000.
3500.
4000.
) 'K'
(PROG 130.
130.
120.
114.
105.
99.
95.
90.
85.
80.
) ;*Valeurs The NET TEAM, Valeurs de references ITER au dela
TT1.'TUNGSTEN' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500.
3000.
3500.
4000.
) 'C'
( PROG 140.
140.
150.
170.
180.
200.
220.
240.
260.
280.
);*Valeurs The NET TEAM, extrapolation lineaire au dela
TT1.'TUNGSTEN' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
1000.
1500.
2000.
2500.
3000.
3500.
4000.
) 'RHO'
(PROG 19200.
19200.
19200.
19200.
19200.
19200.
19200.
19200.
19200.
19200.
);*Valeurs The NET TEAM, extrapolation lineaire au dela
EVRHOC = (TT1.'TUNGSTEN'.'RHO') * ( TT1.'TUNGSTEN'.'C');
TT1.'TUNGSTEN' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'OFHC' ) ;
TT1.'OFHC' = TABLE ;
*
TT1.'OFHC' . 'K'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
300.
400.
600.
800.
1000. 2.5E3
) 'K'
(PROG 387.
387.
365.
351.5 338.
312.
291.
273.
273.
) ;* 'T' (PROG -500. 20. 200. 300. 400. 600. 2.5E3 )
* 'K'(PROG 387. 387. 365. 351.5 338. 312. 312.) ;
*
TT1.'OFHC' . 'C'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
400.
600. 2.5E3
) 'C'
( PROG 380.
380.
390.
400.
415.
415.
);
TT1.'OFHC' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
400.
600. 2.5E3
) 'RHO'
(PROG 8750.
8750.
8650.
8560.
8480.
8480.
);
EVRHOC = (TT1.'OFHC' . 'RHO') * ( TT1.'OFHC' . 'C');
TT1.'OFHC' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
600.
2000.
) 'YOUN'
(PROG 132.
E9 132.
E9 120.
E9 103.
E9 90.
E9 29.
E9);
TT1.'OFHC' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
2000.
) 'ALPH'
(PROG 16.6E
-6 16.7E
-6 17.3E
-6 18.1E
-6 18.45E
-6 18.7E
-6 20.0E
-6
);
TT1.'OFHC' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
TT1.'OFHC' . 'SIGY'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
2000.
) 'SIGY'
(PROG 60.
E6 60.
E6 40.
E6 20.
E6 15.
E6 10.
E6 2.
E6 0.
);
TT1.'OFHC' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
1000.
) 'H'
(PROG 1190.5E6 1190.5E6 1041.7E6 875.
E6 729.2E6 500.
E6 312.5E6 10.
E6 );QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'OFHCCYCL' ) ;
*
* Materiau entre le 19 septembre 1995 par R. Mitteau
*
* designation : Cuivre OFHC, proprietes mecaniques correspondant
* aux courbes d'ecrouissage cyclique
*
* Conductivite, rho, capacite calorifiques
* coefficient de Poisson prises identiques a OFHC
*
* Module d'young, SIGY et H d'apres
*
* High Temperature Torsional Low Cycle Fatigue of OFHC Copper
* Ahmet Aran and Dogan Erdun Gucer, Material Research Division,
* Marmara Research Institute...
* in Z. Metallkunde
*
* retravaille suivant CFP ...
*
*
*
TT1.'OFHCCYCL' = TABLE ;
*
TT1.'OFHCCYCL' . 'K'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
300.
400.
600.
800.
1000. 2.5E3
) 'K'
(PROG 387.
387.
365.
351.5 338.
312.
291.
273.
273.
) ;
TT1.'OFHCCYCL' . 'C'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
400.
600. 2.5E3
) 'C'
( PROG 380.
380.
390.
400.
415.
415.
);
TT1.'OFHCCYCL' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
400.
600. 2.5E3
) 'RHO'
(PROG 8750.
8750.
8650.
8560.
8480.
8480.
);
EVRHOC = (TT1.'OFHCCYCL' . 'RHO') * ( TT1.'OFHCCYCL' . 'C');
TT1.'OFHCCYCL' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
TT1.'OFHCCYCL' . 'YOUN'
= EVOL MANU 'T'
(PROG -150.
20.
100.
200.
300.
400.
450.
500.
600.
) 'YOUN'
(1.
E9*(PROG 5.
5.
5.
5.
4.6 4.
2.5 1.2 .5
));
TT1.'OFHCCYCL' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
2000.
) 'ALPH'
(PROG 16.6E
-6 16.7E
-6 17.3E
-6 18.1E
-6 18.45E
-6 18.7E
-6 20.0E
-6
);
TT1.'OFHCCYCL' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
TT1.'OFHCCYCL' . 'SIGY'
= EVOL MANU 'T'
(PROG -150.
20.
100.
200.
300.
400.
450.
500.
600.
) 'SIGY'
(1.
E6 *(PROG 116.
116.
112.
100.
86.
65.
33.
14.
5.
));
TT1.'OFHCCYCL' . 'H'
= EVOL MANU 'T'
(PROG -150.
20.
100.
200.
300.
400.
450.
500.
600.
) 'H'
(1.
E6 *(PROG 190.
190.
176.
154.
132.
110.
86.
62.
16.
));QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'INOX316L' ) ;
TT1.'INOX316L' = TABLE ;
*
TT1.'INOX316L' . 'K'
= EVOL MANU 'T'
(PROG -200.
20.
500.
800.
1000. 4.5E3
) 'K'
(PROG 15.
15.
21.
26.
28.
28.
) ;
TT1.'INOX316L' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
500.
800.
1000. 2.5E3
) 'C'
( PROG 480.
480.
560.
610.
650.
650.
);
TT1.'INOX316L' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
500.
800.
1000. 2.5E3
) 'RHO'
(PROG 7850.
7850.
7850.
7850.
7850.
7850.
);
EVRHOC = (TT1.'INOX316L' . 'RHO') * ( TT1.'INOX316L' . 'C');
TT1.'INOX316L' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
TT1.'INOX316L' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
650.
2000.
) 'YOUN'
(PROG 190.
E9 190.
E9 170.
E9 155.
E9 145.
E9 145.
E9 );
TT1.'INOX316L' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
400.
500.
700.
2000.
) 'ALPH'
(PROG 16.2E
-6 16.2E
-6 17.8E
-6 18.1E
-6 18.7E
-6 20.5E
-6
);
TT1.'INOX316L' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
TT1.'INOX316L' . 'SIGY'
= EVOL MANU *'T'
(PROG 0.
20.
300.
500.
700.
2000.
) * 'SIGY'
(PROG 250.
E6 250.
E6 160.
E6 140.
E6 120.
E6 120.
E6 );'T'
(PROG 0.
20.
100.
200.
300.
400.
500.
600.
900.
2000.
) 'SIGY'
(PROG 200.
E6 200.
E6 165.
E6 132.5E6 112.5E6 100.
E6 93.8E6 85.
E6 65.
E6 65.
E6); TT1.'INOX316L' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
100.
200.
300.
400.
500.
600.
900.
2000.
) 'H'
(PROG 10.
E9 10.
E9 8.25E9 7.0E9 6.
E9 4.5E9 4.5E9 4.5E9 4.5E9 4.5E9
);QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'GLIDCOP' ) ;
TT1.'GLIDCOP' = TABLE ;
*
TT1.'GLIDCOP' . 'K'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
300.
500. 2.5E3
) 'K'
(PROG 348.
348.
325.
310.0 290.
290.
) ;* 'K'(PROG 391. 391. 385. 381. 377. 338. 312.) ;
TT1.'GLIDCOP' . 'C'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
300.
400.
500.
600. 2.5E3
) 'C'
( PROG 380.
380.
400.
410.
413.
413.
413.
413.
);
TT1.'GLIDCOP' . 'RHO'
= EVOL MANU 'T'
(PROG -5000.
20.
200.
300.
400.
500.
600. 2.5E3
) 'RHO'
(PROG 8860.
8860.
8760.
8715.
8670.
8630.
8590.
8590.
);
EVRHOC = (TT1.'GLIDCOP' . 'RHO') * ( TT1.'GLIDCOP' . 'C');
TT1.'GLIDCOP' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
TT1.'GLIDCOP' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
200.
500.
800.
2000.
) 'YOUN'
(PROG 130.
E9 130.
E9 120.
E9 98.
E9 75.
E9 75.
E9);
TT1.'GLIDCOP' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
2000.
) 'ALPH'
(PROG 17.
E-6 17.
E-6 17.5E
-6 18.5E
-6 19.5E
-6 19.5E
-6
);
TT1.'GLIDCOP' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
TT1.'GLIDCOP' . 'SIGY'
= EVOL MANU 'T'
(PROG 0.
20.
200.
300.
500.
2000.
) 'SIGY'
(PROG 424.
E6 424.
E6 313.
E6 259.
E6 169.
E6 169.
E6 );* VALeurs prises egales au OFHC a controler
TT1.'GLIDCOP' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
1000.
) 'H'
(PROG 1190.5E6 1190.5E6 1041.7E6 875.
E6 729.2E6 500.
E6 312.5E6 10.
E6 );QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'OUTOKUMPU' ) ;
***********************************************************************
TT1.'OUTOKUMPU' = TABLE ;
*
* seul valeur connue a 20 deg le reste pris proportionnellement a OFHC
TT1.'OUTOKUMPU' . 'K'
= EVOL MANU 'T'
(PROG -500.
20.
200.
300.
400.
600. 2.5E3
) 'K'
(PROG 355.
355.
335.
322.4 310.
286.
286.
) ;*OFHC
* 'T' (PROG -500. 20. 200. 300. 400. 600. 2.5E3 )
* 'K'(PROG 387. 387. 365. 351.5 338. 312. 312.) ;
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'CUCRZR' ) ;
TT1.'CUCRZR' = TABLE ;
*
*TITRE 'CUCRZR CONDUCTIVITY' ;
TT1.'CUCRZR' . 'K'
= EVOL MANU 'T'
(PROG -500.
20.
200.
300.
400.
600. 2.5E3
) 'K'
(PROG 343.
343.
351.
359.
359.
359.
312.
) ; TT1.'CUCRZR' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600. 2.5E3
) 'C'
( PROG 376.
376.
376.
376.
376.
376.
);
TT1.'CUCRZR' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600. 2.5E3
) 'RHO'
(PROG 8890.
8890.
8890.
8890.
8890.
8890.
);
EVRHOC = (TT1.'CUCRZR' . 'RHO') * ( TT1.'CUCRZR' . 'C');
TT1.'CUCRZR' . 'CapaVolu'
= EVOL MANU 'T'
( EXTR EVRHOC ABSC
1 ) 'CapaVolu'
( EXTR EVRHOC
ORDO 1 ) ;
* valeurs non connues prises identiques CU dependent de l'etat du metal
TT1.'CUCRZR' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
600.
2000.
) 'YOUN'
(PROG 132.
E9 132.
E9 120.
E9 103.
E9 90.
E9 29.
E9);
TT1.'CUCRZR' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
1000.
2000.
) 'ALPH'
(PROG 16.6E
-6 16.7E
-6 17.3E
-6 18.1E
-6 18.45E
-6 18.7E
-6 19.1E
-6 19.5E
-6 20.0E
-6
);
TT1.'CUCRZR' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
TT1.'CUCRZR' . 'SIGY'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
2000.
) 'SIGY'
(PROG 210.
E6 210.
E6 200.
E6 140.
E6 100.
E6 10.
E6 2.
E6 0.
);
TT1.'CUCRZR' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
1000.
) 'H'
(PROG 1190.5E6 1190.5E6 1041.7E6 875.
E6 729.2E6 500.
E6 312.5E6 10.
E6 );*
QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'CUZR' ) ;
TT1.'CUZR' = TABLE ;
*valeurs non connues prises -10% au OFHC
TT1.'CUZR' . 'K'
=EVOL MANU 'T'
(PROG -200.
20.
200.
600.
1200.
2500. 2.5E3
) 'K'
(PROG 335.
335.
314.
270.
270.
270.
270.
);
* valeurs non connues prises identiques au OFHC
TT1.'CUZR' . 'C'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600. 2.5E3
) 'C'
( PROG 380.
380.
390.
400.
415.
415.
);
TT1.'CUZR' . 'RHO'
= EVOL MANU 'T'
(PROG -200.
20.
200.
400.
600. 2.5E3
) 'RHO'
(PROG 8750.
8750.
8650.
8560.
8480.
8480.
);
EVRHOC = (TT1.'CUZR' . 'RHO') * ( TT1.'CUZR' . 'C');
* valeurs non connues prises identiques AU CU
TT1.'CUZR' . 'YOUN'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
600.
2000.
) 'YOUN'
(PROG 132.
E9 132.
E9 120.
E9 103.
E9 90.
E9 29.
E9);
TT1.'CUZR' . 'ALPH'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
2000.
) 'ALPH'
(PROG 16.6E
-6 16.7E
-6 17.3E
-6 18.1E
-6 18.45E
-6 18.7E
-6 20.0E
-6
);
TT1.'CUZR' . 'NU'
= EVOL MANU 'T'
(PROG 0.
20.
300.
500.
700.
900.
2000.
) 'NU'
(PROG 0.3 0.3 0.3 0.3 0.3 0.3 0.3 );
* valeurs non connues prises identiques AU CUCRZR
TT1.'CUZR' . 'SIGY'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
2000.
) 'SIGY'
(PROG 210.
E6 210.
E6 200.
E6 140.
E6 100.
E6 10.
E6 2.
E6 0.
);
TT1.'CUZR' . 'H'
= EVOL MANU 'T'
(PROG 0.
20.
200.
400.
500.
600.
800.
1000.
) 'H'
(PROG 1190.5E6 1190.5E6 1041.7E6 875.
E6 729.2E6 500.
E6 312.5E6 10.
E6 );QUITTER BLOC1 ;
FINSI ;
**********************************************************************
SI ( EGA MOT1 'AL25' ) ;
TT1.'AL25' = TABLE ;
*
*TITRE ' AL25 CONDUCTIVITY' ;
TT1.'AL25'. 'K'
= EVOL MANU 'T'
(PROG -500.
20.
100.
200.
300.
400.
600. 2.5E3
) 'K'
(PROG 350.
350.
340.
327.
317.
300.
280.
280.
) ;QUITTER BLOC1 ;
FINSI ;
**********************************************************************
FIN BLOC1 ;
**********************************************************************
*
* Fin de la table de materiaux standarts
*
* Debut de la partie de la procedure qui retourne les donnees
*
**********************************************************************
SI (EXISTE TABT MOT1 ) ;
SI ( EXISTE (TABT. MOT1) MOT2 ) ;
EV1 = TABT . MOT1 . MOT2 ;
SINON ;
SI ( EXISTE TT1 MOT1 ) ;
SI ( EXISTE (TT1. MOT1) MOT2 ) ;
EV1 = TT1 . MOT1 . MOT2 ;
SINON ;
MESS '
>>> Material ' MOT1 ' exists by you and in standard'
; MESS '
>>> the property ' MOT2 ' of the material ' MOT1 ' is not defined in your data' ' nor is it in satandard'
; MESS '
>>> Execution break
-down by lack of data '
; FINSI ;
SINON ;
MESS '
>>> MAT ' MOT1 ' exists by you but not in standard'
; MESS '
>>> the property ' MOT2 ' of the material ' MOT1 ' is not defined in your data'
; MESS '
>>> Execution break
-down by lack of data '
; FINSI ;
FINSI ;
SINON ;
SI ( EXISTE TT1 MOT1 ) ;
SI ( EXISTE (TT1. MOT1) MOT2 ) ;
EV1 = TT1 . MOT1 . MOT2 ;
SINON ;
MESS '
>>> The property ' MOT2 ' of the material ' MOT1 ' is not defined in standard'
; FINSI ;
SINON ;
MESS '
>>>> The material ' MOT1 ' is not defined in standard'
; FINSI ;
FINSI ;
SI ( EXISTE VAL1 ) ;
FINSI ;
SI ( EXISTE CHP1 ) ;
FINSI ;
*
*
* Organisation :
* --------------
*
* La procedure est organisee en deux parties.
*
* La premiere partie est une table standart contenant les
* caracteristiques des materiaux usuels du groupe premiere paroi.
* Les donnees sont regroupes dans le bloc BLOC1.
*
* d'abord : materiaux de surface
* puis : materiaux intercalaires
* enfin : materiaux de structure
*
*
* Afin de ne pas surcharger la memoire de choses inutiles, un test
* permet de ne lire les donnees du materiau que s'il est effectivement
* appelle.
* Des que le materiau a ete lu, on sort du bloc, car il n'est pas
* necessaire de passer par tout les tests qui seront negatifs.
*
* Les caracteristiques sont definies sous forme d'evolutions.
*
* La deuxieme partie est la procedure proprement dite.
* Elle est organisee sous forme de tests SI-SINON-FINSI.
*-------------------------------------------------------------------*
FINPROC EV1 ;
'
DEBPROC' TELIGNSC MAIL_1
*MAILLAGE CHP_1
*CHPOINT P_DEB
*POINT P_FIN
*POINT
CRIT*FLOTTANT
;********************************************************
*
* CETTE PROC. PERMET de reduire les valeurs du chpoint
*CHP_1 aux points les plus proche de la droite P_DEB P_FIN
* les points sont reperes suivant la distance a P_DEB
*la proc. rend une evolution donnant la valeur
*en fonction de la distance
*
* j. schlosser 8 4 92
*
********************************************************
LBRI1
= MAIL_1
POIN 'DROIT' P_DEB P_FIN
CRIT ; i1 = 0 ;
repeter bou4
(( NBNO LBRI1
) - 1 ) ; i1 = i1 + 1 ;
po2
= LBRI1
poin ( i1
+ 1 ) ; si ( i1 ega 1 ) ;
lbri2 = po1 d 1 po2 ;
sinon ;
lbri2 = lbri2 d 1 po2 ;
finsi ;
fin bou4 ;
NI1
= ( (( XLBRI1
- ( COOR 1 P_DEB
)) ** 2 ) + (( YLBRI1
- ( COOR 2 P_DEB
)) ** 2 ) ) ** 0.5 ;FINPROC EVIT1 ;
*EVIT1 = TELIGNSC VBRIQT CHT1 P01 O67 1.E-3 ;
**** @FLNORM
DEBPROC @FLNORM TAB1*TABLE ;
*
**************************************************
* Procedure (inspiree de @OMBRAGE) permettant de *
* recuperer les valeurs du flux normalise en *
* descendant les lignes de champ et en calculant *
* leur intersection avec le plan sur lequel la *
* valeur du flux normalise est connue. *
* Alain MOAL (Fevrier 2001) *
**************************************************
*
MESS '
---------------------------------> calling @FLNORM'
; *
*--------------- VARIABLES D'ENTREE :
MAIL1 = TAB1.LFLUX_EXTE ;
MAIL2 = TAB1.<MAILLAGE_FN ;
PASB1 = TAB1.<LONGUEUR_PAS_SANS_TEST ;
PASB2 = TAB1.<LONGUEUR_PAS_AVEC_TEST ;
*------------------------------------
*
*---- Champ magnetique sur le maillage "ombre"
TAB1.<MAILLAGE_B = MAIL1 ;
BR BZ BPHI = @MAGNB TAB1 ;
*
*---- signe pour descente de la ligne (+ si bz < 0)
TAB1.<CHAMP_SIGNE = BZ * (-1.) / (ABS BZ) ;
*
*---- distance a parcourir sans test d'intersection
DMAX1
= (MINI (CHZ
- Z0
) '
ABS'
) * 0.9 ;NBPAS1 = ENTIER ((DMAX1 + (PASB1/1000.))/PASB1) ;
*
*---- distance a parcourir avec test d'intersection
DMAX2
= (MAXI (CHZ
- Z0
) '
ABS'
) * 2.
- DMAX1
;NBPAS2 = ENTIER ((DMAX2 + (PASB2/1000.))/PASB2) ;
*
*---- distance a parcourir
DMAX0 = (NBPAS1 * PASB1) + (NBPAS2 * PASB2) ;
*
*---- calcul exp(-delta/lambdaQ).ABS(b.n) aux points
*---- d'intersection avec une methode analytique
TAB1.<NOMBRE_PAS_SANS_TEST = NBPAS1 ;
TAB1.<NOMBRE_PAS_AVEC_TEST = NBPAS2 ;
TAB1.<DISTANCE_SANS_TEST = DMAX1;
TAB1.<DISTANCE_AVEC_TEST = DMAX2 ;
*
CHFNORM = @ANADES TAB1 ;
*
*---- Champ magnetique sur les points d'intersection
TAB1.
<MAILLAGE_B
= EXTR CHFNORM 'MAIL'
;TITRE 'TEST : MAILLAGE INITIAL DEFORME ';
TRAC ((TAB1.
<MAILLAGE_B
) ET MAIL1
ET (TAB1.
<GRILLE_B
) ET (TAB1.
<MAILLAGE_FN
)); *
BR BZ BPHI = @MAGNB TAB1 ;
*
PHI
= ATG (COOR 2 TAB1.
<MAILLAGE_B
) (COOR 1 TAB1.
<MAILLAGE_B
) ;BX = BR * (COS PHI) - (BPHI * (SIN PHI));
BY = BR * (SIN PHI) + (BPHI * (COS PHI));
*AM*11/09/01*BX = BR * (COS PHI) + (BPHI * (SIN PHI));
*AM*11/09/01*BY = BR * (SIN PHI) - (BPHI * (COS PHI));
*
*---- Calcul de b.n sur le maillage "ombrant"
B_NORM = ((BX*BX) + (BY*BY) + (BZ*BZ))**0.5 ;
VBVN = (ABS BZ) / B_NORM ;
*
*---- calcul de exp (-delta/lambdaQ)
VAR1 = CHFNORM / VBVN ;
*
*---- on retrouve la forme initiale de TAB1.<S_OMBRE
FORM (TAB1.
<DEPLACEMENT
* (-1.
)) ; TITRE 'TEST : RETOUR FORME INITIALE' ;
TRAC ((TAB1.
<MAILLAGE_B
) ET MAIL1
ET (TAB1.
<GRILLE_B
) ET (TAB1.
<MAILLAGE_FN
));
MESS '
>@FLNORM
> distance covered :' TAB1.
<LONGUEUR_PARCOURUE
;
SI (EGA (TAB1.<LONGUEUR_CONNEXION_MAX) 0.) ;
MESS '
>@FLNORM
> no interception found'
; SINON;
MESS '
>@FLNORM
> mini - maxi connection length'
(mini TAB1.
<CHAMP_DISTANCE
) TAB1.
<LONGUEUR_CONNEXION_MAX
; FINSI;
*
MESS '
---------------------------------> exiting @FLNORM'
; FINPROC VAR1 ;
**** @FLUCRIT
DEBPROC @FLUCRIT TAB1*TABLE ;
*
* --- entrees
*
CHOIX = TAB1.'CHFCORRELATION';
NIVEAU = TAB1.'NIVEAU' ;
*
* --- racine
*
SI (NIVEAU >EG 4 ) ;
MESS '
-----------------------------------> calling @FLUCRIT'
; FINSI ;
* Calculs thermohydrauliques et bilans thermiques
* en attendant de les passer dans thersch1
*
* --- traitement
*
I1 = 1 ;
REPETER BOUC1
(DIME CHOIX
) ; LOGI1 = EGA ICHOIX 'BOWR' ;
LOGI2 = EGA ICHOIX 'TONG' ;
LOGI3 = EGA ICHOIX 'CELA' ;
LOGITOT1 = LOGI1 OU LOGI2 OU LOGI3 ;
SI (NON LOGITOT1) ;
ERRE '@FLUCRIT
mot cle different de BOWR,TONG
ou CELA'
; FINSI ;
*
* --- Bowring72
*
SI (EGA ICHOIX 'BOWR') ;
TIN1 = TAB1.'T_IN' ;
PRESS1 = TAB1.'P_IN' ;
VITESS1 = TAB1.'V_IN' ;
EL = TAB1.'L_HEATED' ;
XL1 = TAB1.'WE_HEATED' ;
D1 = TAB1.'D_MAQUETTE' ;
YTWIST = TAB1.'TWIST_RATIO' ;
TTAPE = TAB1.'T_TAPE' ;
PI = 3.14159 ;
SI ( YTWIST EGA 0. ) ;
TAB1.DHC = D1 ;
S1 = PI * D1 * D1 / 4. ;
TAB1.DH = D1 ;
FACV = 1. ;
FACS = 1. ;
SINON ;
SI ( NON ( EXISTE TAB1 'N_CANAUX' )) ;
TAB1 . N_CANAUX = 2. ;
FINSI ;
SS2 = ( ( PI * D1 * D1 / 8.) - ( TTAPE * D1 / 2. ) ) ;
S1 = SS2 * TAB1 . N_CANAUX ;
QUAS = 4. * SS2 ;
PERI = ( ( PI * D1 / 2.) - TTAPE + D1 ) ;
TAB1.DH = QUAS / PERI ;
FINSI ;
TAB1.T_IN = TIN1;
TAB1.P_IN = PRESS1;
TAB1.V_IN = VITESS1;
@BOWRI72 TAB1 ;
QCHFW = TAB1.CHF ;
FINSI ;
*
* --- Tong75
*
SI (EGA ICHOIX 'TONG') ;
@TABEAU TAB1 ;
VIN = TAB1.V_IN ;
TIN = TAB1.T_IN ;
PRES1 = TAB1.P_LOCAL ;
D1 = TAB1.D_MAQUETTE ;
EL = TAB1.L_HEATED ;
XL1 = TAB1.WE_HEATED ;
TAB1.V_LOCAL = VIN ;
SI ( NON ( EXISTE TAB1 TWIST_RATIO ) ) ;
TAB1 . TWIST_RATIO = 0. ;
FINSI ;
YTWIST = TAB1 . TWIST_RATIO ;
SI ( NON ( EXISTE TAB1 T_TAPE ) ) ;
TAB1 . T_TAPE = 0. ;
FINSI ;
TTAPE = TAB1 . T_TAPE ;
QSURFE = TAB1.V_FLUMOY1 ;
TSAT = @IPOE PRES1 TAB1.EPTSAT ;
RHOIN = @IPOE TIN TAB1.ETRHOF ;
GIN = RHOIN * VIN ;
HIN = @IPOE TIN TAB1.ETHF ;
HSAT = @IPOE TSAT TAB1.ETHF ;
PI = 3.14159 ;
SI ( ( YTWIST EGA 0. ) ET ( EGA TAB1.HYPERVAP FAUX ) ) ;
TAB1.DHC = D1 ;
S1 = PI * D1 * D1 / 4. ;
TAB1.DH = D1 ;
FACV = 1. ;
FACS = 1. ;
TAB1.
M_TONG = MOT 'TONG75'
;* FACF = 1. ;
FINSI ;
SI ( NON ( EXISTE TAB1 HELI_WIRE ) ) ;
TAB1.HELI_WIRE = FAUX ;
FINSI ;
SI ( NON ( EXISTE TAB1 HYPERVAP ) ) ;
TAB1.HYPERVAP = FAUX ;
FINSI ;
SI ( ( YTWIST EGA 0. ) ET ( EGA TAB1.HELI_WIRE VRAI )) ;
S1 = PI * D1 * D1 / 4. ;
SM = PI * TAB1.WIRE_D * TAB1.WIRE_D / 4. ;
P1 = PI * D1 ;
PM = PI * TAB1.WIRE_D ;
TAB1.DH = 4. * ( S1 - SM ) / ( P1 + PM ) ;
PIS2Y = PI / ( 2 * TAB1.PITCH_WIRE ) ;
FACV = ( 1. + ( PIS2Y ** 2 ) ) ** 0.5 ;
* FACV = 1. ;
FACF = 1. ;
TAB1.
M_TONG = MOT 'TONG75'
; FINSI ;
*
SI ( NON ( EXISTE TAB1 HYPERVAP ) ) ;
TAB1.HYPERVAP = FAUX ;
FINSI ;
SI ( ( YTWIST EGA 0. ) ET ( EGA TAB1.HYPERVAP VRAI ) ) ;
SM = ( TAB1 . LARG_CANAL * TAB1 . HMIN_CANAL ) + ( 2. * ( TAB1 . LARG_ESP * TAB1 . HFIN ) ) ;
PM = TAB1 . LARG_CANAL + ( 2.* TAB1 . HMAX_CANAL ) + ( 2. * TAB1 . LARG_ESP ) + ( 2. * TAB1 . HFIN ) + TAB1 . LFIN ;
TAB1.DH = 4. * SM / PM ;
FACV = 1. ;
FACF = 1. ;
TAB1.HYP_SM = SM ;
FINSI ;
*
SI ( YTWIST > 0. ) ;
SI ( NON ( EXISTE TAB1 'N_CANAUX' )) ;
TAB1 . N_CANAUX = 2. ;
FINSI ;
SS2 = ( ( PI * D1 * D1 / 8.) - ( TTAPE * D1 / 2. ) ) ;
S1 = SS2 * TAB1 . N_CANAUX ;
QUAS = 4. * SS2 ;
PERI = ( ( PI * D1 / 2.) - TTAPE + D1 ) ;
TAB1.DH = QUAS / PERI ;
TAB1.DHC = 4. * ( ( PI * D1 * D1 / 4.) - ( TTAPE * D1 ) ) / ( ( PI * D1 ) - ( TTAPE * 2.) ) ;
PIS2Y = PI / ( 2. * YTWIST ) ;
FACV = ( 1. + ( PIS2Y ** 2 ) ) ** 0.5 ;
FACF = 1.15 ;
FACS = 1.67 ;
TAB1.
M_TONG = MOT '
1.67*TONG75'
; FINSI ;
SI ( EGA TAB1.HYPERVAP VRAI ) ;
HLOCAL = HIN + ( QSURFE * XL1 * EL / ( GIN * TAB1.HYP_SM ) ) ;
SINON ;
HLOCAL = HIN + ( QSURFE * XL1 * EL / ( GIN * S1 ) ) ;
FINSI ;
SI ( HLOCAL < HSAT ) ;
SI ( HLOCAL >EG HIN ) ;
TLOCAL = @IPOE HLOCAL TAB1.EHFT ;
SINON ;
MESS '
>@FLUCRIT
> HLOCAL
< HIN ?????
====== '
; ERREUR '>@FLUCRIT> HLOCAL < HIN' ;
FINSI ;
SINON ;
TLOCAL = TSAT ;
* HLOCAL = HSAT ;
FINSI ;
TAB1.'HLOCAL' = HLOCAL ;
@TONG75 TAB1 ;
QCHFW = TAB1.CHF ;
FINSI ;
*
* --- Celata94
*
SI (EGA ICHOIX 'CELA') ;
@CELAT94 TAB1 ;
QCHFW = TAB1.CHF ;
FINSI ;
*
* --- fin des appels
*
SI (EGA I1 1) ;
SINON ;
L_QCHFW
= L_QCHFW
ET (PROG QCHFW
) ; FINSI ;
I1 = I1 + 1 ;
FIN BOUC1 ;
MESS '
>@FLUCRIT
> Critical Heat
Flux output'
; *
* --- sorties
*
TAB1.'L_QCHFW' = L_QCHFW ;
SI (NIVEAU >EG 4 ) ;
MESS '
-----------------------------------> exiting @FLUCRIT'
; FINSI ;
FINPROC ;
**** @FLUXH
DEBPROC @FLUXH TAB1*TABLE ;
*---------------------------------------------------------------------
* Procedure @FLUXH
*---------------------------------------------------------------------
MESS '
---------------------------------> calling @FLUXH'
; S_TOT1 = TAB1.M_ILLAGE_TOT ;
COSDIR1 COSDIR2 COSDIR3
= @VNORM3D
(EXTR TAB1.'MODELF' 'MAIL'
) (TAB1.
LFLUX_EXTE) TAB1.'NIVEAU'
;COTETF1 = COSDIR1 ;
SITETF1 = COSDIR2;
TETF1 = ATG SITETF1 ( COTETF1 + 1.E-12) ;
SI (EXISTE TAB1 'VAL_ANGLEI1');
MESS '
>>>>@FLUXH Le
flux d electrons est forcement selon OY '
; MESS '
>>>>@FLUXH a l axe y,
si autre angle tournez avec
DEPL'
; ERRE '
>>>>@FLUXH TAB1 VAL_ANGLEI1 inoperant ici'
; FINSI ;
*1 DDDDDDDDDD SI de niveau 1 : cas DIMENSION 2
SI ( V_DIM1 EGA 2) ;
VFON1 = TAB1.VPROFIL_W;
XFON1 = TAB1.XPROFIL_W;
LPAT1 = TAB1.LFLUX_EXTE;
LPAT1D = TAB1.LFLUX_EXTE_DESS ;
XL_LPAT1
= ABS (( MAXI XLPAT1
) - ( MINI XLPAT1
)); VFON2
= ( IPOL XLPAT1 XFON1 VFON1
) ;*dess EVV1 ;
*dess EVV2 ;
TITRE ' INCIDENT GUN
FLUX PROFILE '
; SOM1
= ABS ( MAXI SOM1
) ;
* ajout RM le 27 10 95
SOM1
=(2.
* 3.14159 * (INTG ( EVOL MANU XXPAT1
(VVFON2
* XXPAT1
)))) ; SOM1
= ABS ( MAXI SOM1
) ; FINSI ;
* fin locale de l ajout RM le 27 10 95
FACFM1 = SOM1 / XL_LPAT1 ;
MESS '
>@FLUXH
> VALEUR integrale DU PROFIL' SOM1
; MESS '
>@FLUXH
> LARGEUR MAQ.
CHAUFFEE'
(TAB1 .
W_HEATED); MESS '
>@FLUXH
> VALEUR moyenne DU PROFIL' FACFM1
; VPAT1 = VFON2 * SITETF1;
TAB1.'WE_HEATED_N'= XL_LPAT1 * (TAB1 . FSYM_X );
TAB1.'WE_HEATED'= XL_LPAT1 * (TAB1 . FSYM_X );
VPUI_1 = FACFM1 * XL_LPAT1;
TAB1.'V_FACFM1' = FACFM1;
MESS '
>@FLUXH
> direct integration' VPUI_1
;
*
* --- test puissance incidente
*
* calcul apres utilisation de l operateur flux
FPAT1
= FLUX TAB1.'MODELF' VPAT1
; MESS '
>@FLUXH
> nodal intergration ' VPUI_2
;
ERR_1 = VPUI_2 * 0.05;
SI( NON ( EGA VPUI_1 VPUI_2 ERR_1));
MESS '
>@FLUXH
> call the CONCEPTEUR '
; ERREUR 'POWER BALANCE';
SINON;
MESS '
>@FLUXH
> Ok Power Balance'
; FINSI;
SOM1
= SOM1
* (EXTR TAB1.
LIS_FLUX (DIME TAB1.
LIS_FLUX)); SI (NON (EXISTE TAB1 'V_SOM1'));
TAB1.'V_SOM1' = SOM1;
SINON;
TAB1.'V_SOM1' = TAB1.'V_SOM1' + SOM1;
FINSI;
* 1 MMMMMMMM SINON de niveau 1 : cas DIMENSION 3
SINON ;
EXFLUX1 = TAB1.E_XPROFIL_W ;
EZFLUX1 = TAB1.E_ZPROFIL_W ;
SFLUX1 = TAB1.LFLUX_EXTE ;
XSFLUX1
= COOR 1 SFLUX1
; ZSFLUX1
= COOR 3 SFLUX1
;
VXFLUX2 = ( @IPOE XSFLUX1 EXFLUX1 FIXE ) ;
VZFLUX2 = ( @IPOE ZSFLUX1 EZFLUX1 FIXE ) ;
VXZFLUX2 = VXFLUX2 * VZFLUX2 * COSDIR2 ;
PHFLUX1
= FLUX (TAB1.'MODELF'
) VXZFLUX2
; TAB1.'V_FACFM1'= VMOY1;
SI (NON (EXISTE TAB1 'V_SOM1'));
TAB1.'V_SOM1' = SOM1;
SINON;
TAB1.'V_SOM1' = TAB1.'V_SOM1' + SOM1;
FINSI;
VPAT1 = VXZFLUX2 / VMOY1 ;
*1 FFFFFFFFFF FINSI de niveau 1 : fin du test sur la dimension
FINSI ;
MESS '
---------------------------------> exiting @FLUXH'
; FINPROC VPAT1 ;
**** @FLUXQP
* Procedure @FLUXQP
*
*-----------------------------------------------------------------------
DEBPROC @FLUXQP TAB1*TABLE;
MESS '
---------------------------------> calling @FLUXQP'
; *
****** ATTENTION --> Cette procedure ne tourne pour l'instant qu'en 2D
SI ( V_DIM1 EGA 3) ;
MESS '@FLUXQP ne tourne pas en 3D'
; FINSI;
TAC1 = TABLE;
TAC1.2 = 'MARQ TRIB ';
TAC1.3 = 'MARQ ETOI ';
TAC1.4 = 'MARQ LOSA ';
TAC1.5 = 'MARQ CROI ';
S_TOT1 = TAB1.M_ILLAGE_TOT ;
LPAT1 = TAB1.LFLUX_EXTE ;
LPAT1D = TAB1.LFLUX_EXTE_DESS ;
COSDIR1 COSDIR2 COSDIR3
= @VNORM3D
(EXTR TAB1.'MODELF' 'MAIL'
) LPAT1 TAB1.'NIVEAU'
;COTETF1 = COSDIR1;
SITETF1 = COSDIR2;
TETF1 = ATG SITETF1 ( COTETF1 + 1.E-12) ;
SI (EXISTE TAB1 'VAL_ANGLEI1');
SI (EXISTE TAB1 'CENTRE_PLASMA');
ERREUR 'on ne peut avoir VAL_ANGLEI1 et CENTRE_PLASMA ' ;
SINON;
SINPA1 = COS ( (TETF1 * -1.) + (TAB1.'VAL_ANGLEI1'));
SIALPHA1 = ABS ( COS (TAB1.'VAL_ANGLEI1'));
COALPHA1 = ABS ( SIN (TAB1.'VAL_ANGLEI1'));
XXPAT1
= ABS ((COOR 1 LPAT1
) - (COOR 1 TAB1.'PT_TGPLASMA'
)); YYPAT1
= ABS ((COOR 2 LPAT1
) - (COOR 2 TAB1.'PT_TGPLASMA'
)); XLPAT1 = (XXPAT1*COALPHA1) + (YYPAT1*SIALPHA1);
XLPAT3 = XLPAT1;
FINSI;
SINON;
SI (NON (EXISTE TAB1 'CENTRE_PLASMA'));
ERREUR 'vous n avez pas donne TAB1.VAL_ANGLEI1';
SINON;
LOG1
= EGA (COOR 1 TAB1.'CENTRE_PLASMA'
) (COOR 1 TAB1.'PT_TGPLASMA'
) 1.
E-6
; SI ( NON LOG1);
ERREUR '
COOR 1 CENTRE_PLASMA
ET PT_TGPLASMA DIFFERENTS '
; FINSI;
R0
= (COOR 2 TAB1.'CENTRE_PLASMA'
) - (COOR 2 TAB1.'PT_TGPLASMA'
); XXPAT1
= ((COOR 1 LPAT1
) - (COOR 1 TAB1.'CENTRE_PLASMA'
)) ; YYPAT1
= -1.
* ((COOR 2 LPAT1
) - (COOR 2 TAB1.'CENTRE_PLASMA'
)) ; RXY = ((XXPAT1 * XXPAT1)+(YYPAT1 * YYPAT1))** 0.5 ;
ALPH1 = ATG XXPAT1 (YYPAT1 + 1.E-6) ;
XLPAT1 = RXY - R0 ;
SINPA1 = SIN ( ALPH1 + 90. - TETF1 ) ;
MASP1 = XXPAT1 MASQUE 'EGSUPE' 0. ;
MASM1 = XXPAT1 MASQUE 'INFERIEUR' 0. ;
XLPAT3 = (XLPAT1 * MASP1) - (XLPAT1 * MASM1) ;
FINSI;
FINSI;
MLAMB1 = ( TAB1 . 'LAMDAQ' ) * -1. ;
ELPAT1 = EXP ( XLPAT1 / MLAMB1 ) ; ;
VPAT1 = ELPAT1 * (ABS SINPA1) ;
*********** cas LAMBDAQ VPAT1 = exp*sinus
TAC1.TITRE = TABLE ;
*TITRE 'SIN(teta)' ;
*TITRE 'EXP(-DL/LAMB)' ;
*TITRE 'SIN(teta)*EXP(-DL/LAMB)' ;
TAC1.1
= 'MARQ
TRIA REGU '
;TAC1.TITRE.1 = 'SIN(teta)';
TAC1.2
= 'MARQ TRIB REGU
TITR SIN(teta
)'
;TAC1.TITRE.2 = 'EXP(-DL/LAMB)';
TAC1.3
= 'MARQ ETOI REGU
TITR EXP(-DL
/LAMB
)'
; TAC1.TITRE.3 = 'SIN(teta)*EXP(-DL/LAMB)' ;
*TAC1.4 = 'MARQ LOSA REGU TITR EXP(-DL/LAMB)' ;
*TAC1.5 = 'MARQ CROI REGU TITR SIN(teta)*EXP(-DL/LAMB)' ;
*TAC1.6 = 'MARQ PLUS REGU TITR SIN(teta)*EXP(-DL/LAMB)' ;
TITRE 'SIN,EXP,SIN*EXP' ;
DESS ( EV1
ET EV2
ET EV3
) LEGE TAC1
; TITRE 'EXP(-DL/LAMB) fonction de DL ' ;
TITRE 'EXP(-DL/LAMB) fonction de DL ';
*********** cas LAMBDAQ VPAT1 = exp*sinus
*********** cas LAMBDAQ SOM1 = somme ( exp*sinus)
*********** cas LAMBDAQ FACFM1 = SOM1 / largeur
MESS '
>@FLUXQP
> VALEUR integrale DU PROFIL' SOM1
; MESS '
>@FLUXQP
> LARGEUR MAQ.
CHAUFFEE'
(TAB1 .
W_HEATED ); XL_LPAT1
= ( ABS (( MAXI XLPAT1
) - ( MINI XLPAT1
)));FACFM1 = SOM1 / XL_LPAT1;
MESS '
>@FLUXQP
> LARGEUR vue du plasma' XL_LPAT1
; MESS '
>@FLUXQP
> VALEUR moyenne DU PROFIL' FACFM1
;
SI (EXISTE TAB1 'LAMDAQ2');
LPAT2 = TAB1.LFLUX_EXT2 ;
LPAT2D = TAB1.LFLUX_EXT2 ;
COSDIR1 COSDIR2 COSDIR3 = @VNORM3D S_TOT1 LPAT2 TAB1.'NIVEAU';
COTETF2 = COSDIR1 * 1. ;
SITETF2 = COSDIR2 * 1. ;
COTETF1 = @ET COTETF1 COTETF2 ;
SITETF1 = @ET SITETF1 SITETF2 ;
TETF2 = ATG SITETF2 ( COTETF2 + 1.E-12) ;
SINPA2 = COS ( (TETF2 * -1.) + (TAB1.'VAL_ANGLEI2'));
SIALPHA2 = ABS ( COS (TAB1.'VAL_ANGLEI2')) ;
COALPHA2 = ABS ( SIN (TAB1.'VAL_ANGLEI2'));
XXPAT2
= ABS ((COOR 1 LPAT2
) - (COOR 1 TAB1.'PT_TGPLASMA'
)); YYPAT2
= ABS ((COOR 2 LPAT2
) - (COOR 2 TAB1.'PT_TGPLASMA'
)); XLPAT2 = (XXPAT2*COALPHA2) + (YYPAT2*SIALPHA2);
MLAMB2 = ( TAB1 . 'LAMDAQ2' ) * -1.;
ELPAT2 = EXP ( XLPAT2 / MLAMB2 );
VPAT2 = ELPAT2 * SINPA2;
VPAT2
= VPAT2
+ (( REDU VPAT2 TAB1.'PT_TGPLASMA'
) * -1.
); VPAT1 = VPAT2 + VPAT1;
* VPAT1 = VPAT2;
TITRE 'SIN(teta)*EXP(-DL/LAMB)';
TAC1 = TABLE ;
TAC1.2 = 'MARQ TRIB ' ;
TAC1.3 = 'MARQ ETOI ' ;
TAC1.4 = 'MARQ LOSA ' ;
TITRE 'SIN(teta)';
TITRE 'EXP(-DL/LAMB)' ;
TITRE 'SIN(teta)*EXP(-DL/LAMB)';
DESS ( EV1
ET EV2
ET EV3
) ; TITRE 'EXP(-DL/LAMB) fonction de DL, ligne 2 ';
TAC1.1
= 'MARQ
TRIA TITRE
EXP(-DL
/LAMB
)'
; TAC1.2 = 'MARQ TRIB TITRE EXP(-DL/LAMB)' ;
SOM1
= SOM1
+ (ABS ( MAXI (INTG EV5
) )) ; MESS '
>CFLUX_TO
> VALEUR integrale DU PROFIL' SOM1
;