* fichier : soudage2.dgibi
'OPTION' 'ECHO' 0 ;
************************************************************************
* NOM : ERRREL
* DESCRIPTION : Calcul d'une erreur relative
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 23/04/2003, version initiale
* HISTORIQUE : v1, 23/04/2003, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' ERRREL ;
'ARGUMENT' val*'FLOTTANT' ;
'ARGUMENT' valref*'FLOTTANT' ;
*
'SI' ('<' ('ABS' valref) 1.D-10) ;
echref = 1.D0 ;
'SINON' ;
echref = valref ;
'FINSI' ;
*
errabs = 'ABS' ('/' ('-' val valref) echref);
*
'RESPRO' errabs ;
*
* End of procedure file ERRREL
*
'FINPROC' ;
************************************************************************
* NOM : CALCNU
* DESCRIPTION : calcul de la viscosité (tp2v2) :
* si t > tfusion : viscosité = nu
* si t < tfusion : viscosité = nu * 1.D6
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 20/10/2002, version initiale
* HISTORIQUE : v1, 20/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' CALCNU ;
'ARGUMENT' rvx*'TABLE ' ;
rv = rvx . 'EQEX' ;
tn = rv . 'INCO' . 'TN' ;
tnc = 'NOEL' $mt tn ;
zliq = tnc 'MASQUE' 'SUPERIEUR' tfusion ;
zsol = tnc 'MASQUE' 'EGINFE' tfusion ;
nuc = '+' ('*' zliq nu)
('*' zsol ('*' nu 1.D6)) ;
nuc = 'KCHT' $mt 'SCAL' 'CENTRE' nuc ;
rv . 'INCO' . 'NU' = nuc ;
mat1 chp1 = 'KOPS' 'MATRIK' ;
'RESPRO' mat1 chp1 ;
*
* End of procedure file CALCNU
*
'FINPROC' ;
************************************************************************
* NOM : CALCTAU
* DESCRIPTION : calcul de la tension de surface (tp2v2) :
* contrainte tangentielle proportionnelle
* au gradient de température tangentiel.
* nu dUt/dn = (dg/dT / rho) (gradT.t)
*
* Attention : on divise par rho
* car l'équation de qdm est aussi divisée par rho
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 25/10/2002, version initiale
* HISTORIQUE : v1, 25/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' CALCTAU ;
'ARGUMENT' rvx*'TABLE ' ;
rv = rvx . 'EQEX' ;
tn = rv . 'INCO' . 'TN' ;
tnhau = 'KCHT' $hau 'SCAL' 'SOMMET' tn ;
gtnh = 'KOPS' 'GRAD' tnhau $hau ;
tau = '*' ('/' dgdt rho) gtnh ;
* TRACVIT tau 'TAU' ;
* rv . 'INCO' . 'TAU' = 'KCHT' $hau 'VECT' 'CENTRE' (0.D0 0.D0) ;
rv . 'INCO' . 'TAU' = 'KCHT' $hau 'VECT' 'CENTRE' tau ;
mat1 chp1 = 'KOPS' 'MATRIK' ;
'RESPRO' mat1 chp1 ;
*
* End of procedure file CALCTAU
*
'FINPROC' ;
************************************************************************
* NOM : CALRESI
* DESCRIPTION : Calcul des residus et
* stockage d'infos utiles au post-traitement
* cf. procedures FILM et PHOTO
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 23/10/2002, version initiale
* HISTORIQUE : v1, 23/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' CALRESI ;
'ARGUMENT' rvx*'TABLE ' ;
rv = rvx . 'EQEX' ;
* freq1 : fréquence d'impression
* freq2 : fréquence du stockage d'infos pour FILM et PHOTO
* eps0 : Sortie de la boucle de EQEX si convergence
freq1 = 'ENTIER' ('+' (rvx . 'ARG1') 0.001D0) ;
freq2 = 'ENTIER' ('+' (rvx . 'ARG2') 0.001D0) ;
eps0 = rvx . 'ARG3' ;
time0 = rv . 'PASDETPS' . 'TPS' ;
pdt0 = rv . 'PASDETPS' . 'NUPASDT' ;
rvi = rv . 'INCO' ;
un = rvi . 'UN' ;
tn = rvi . 'TN' ;
pn = rvi . 'PN' ;
nu = rvi . 'NU' ;
*
* Calcul des résidus
* Le résidu est défini comme : || u_(i) - u_(i-1) || / || u_(i) ||
* où || || est la norme L2
*
rvr = rv . 'RESIDU' ;
'SI' ('>' pdt0 1) ;
unm1 = rvr . 'UNM1' ;
tnm1 = rvr . 'TNM1' ;
pnm1 = rvr . 'PNM1' ;
num1 = rvr . 'NUM1' ;
mmu = rvr . 'MMU' ;
mmt = rvr . 'MMT' ;
mmp = rvr . 'MMP' ;
mmn = rvr . 'MMN' ;
uinco = 'MOTS' 'UX' 'UY' ;
uinco2 = 'MOTS' '1UN' '2UN' ;
diffu = 'NOMC' uinco uinco2 ('-' un unm1) ;
resiu2 = 'XTY' diffu ('KOPS' mmu '*' diffu) uinco2 uinco2 ;
couru = 'NOMC' uinco uinco2 un ;
normu2 = 'XTY' couru ('KOPS' mmu '*' couru) uinco2 uinco2 ;
erru = '/' ('**' ('ABS' resiu2) 0.5D0)
('**' ('ABS' normu2) 0.5D0)
;
tinco = 'MOTS' 'SCAL' ;
tinco2 = 'MOTS' 'TN' ;
difft = 'NOMC' tinco tinco2 ('-' tn tnm1) ;
resit2 = 'XTY' difft ('KOPS' mmt '*' difft) tinco2 tinco2 ;
court = 'NOMC' tinco tinco2 tn ;
normt2 = 'XTY' court ('KOPS' mmt '*' court) tinco2 tinco2 ;
errt = '/' ('**' ('ABS' resit2) 0.5D0)
('**' ('ABS' normt2) 0.5D0)
;
pinco = 'MOTS' 'SCAL' ;
pinco2 = 'MOTS' 'PN' ;
diffp = 'NOMC' pinco pinco2 (ELNOPRES ('-' pn pnm1)) ;
resip2 = 'XTY' diffp ('KOPS' mmp '*' diffp) pinco2 pinco2 ;
courp = 'NOMC' pinco pinco2 (ELNOPRES pn) ;
normp2 = 'XTY' courp ('KOPS' mmp '*' courp) pinco2 pinco2 ;
errp = '/' ('**' ('ABS' resip2) 0.5D0)
('**' ('ABS' normp2) 0.5D0)
;
ninco = 'MOTS' 'SCAL' ;
ninco2 = 'MOTS' 'SCAL' ;
diffn = 'NOMC' ninco ninco2 ('-' nu num1) ;
resin2 = 'XTY' diffn ('KOPS' mmn '*' diffn) ninco2 ninco2 ;
resin2 = '+' resin2 1.D-14 ;
courn = 'NOMC' ninco ninco2 nu ;
normn2 = 'XTY' courn ('KOPS' mmn '*' courn) ninco2 ninco2 ;
errn = '/' ('**' ('ABS' resin2) 0.5D0)
('**' ('ABS' normn2) 0.5D0)
;
rvr . 'IT' = 'ET' (rvr . 'IT') ('PROG' pdt0) ;
rvr . 'TI' = 'ET' (rvr . 'TI') ('PROG' time0) ;
rvr . 'ERU'= 'ET' (rvr . 'ERU') ('PROG' erru) ;
rvr . 'ERT'= 'ET' (rvr . 'ERT') ('PROG' errt) ;
rvr . 'ERP'= 'ET' (rvr . 'ERP') ('PROG' errp) ;
rvr . 'ERN'= 'ET' (rvr . 'ERN') ('PROG' errn) ;
'SI' ('OU' ('EGA' (MODULO pdt0 freq1) 0) ('EGA' pdt0 2));
titmess1 = 'CHAINE' 'Pdt=' pdt0 ' ; tps=' time0
' erru=' erru ' ; errt=' errt
' ; errp=' errp ' ; errn=' errn ;
'MESSAGE' titmess1 ;
'FINSI' ;
'FINSI' ;
rvr . 'UNM1' = 'COPIER' un ;
rvr . 'TNM1' = 'COPIER' tn ;
rvr . 'PNM1' = 'COPIER' pn ;
rvr . 'NUM1' = 'COPIER' nu ;
*
* Film
*
'SI' ('OU' ('EGA' (MODULO pdt0 freq2) 0) ('EGA' pdt0 1));
rvf = rv . 'FILM' ;
dimtab = '+' ('DIME' rvf) 1 ;
rvf . dimtab = 'TABLE' ;
rvf . dimtab . 'IT' = pdt0 ;
rvf . dimtab . 'TI' = time0 ;
rvf . dimtab . 'UN' = 'COPIER' un ;
rvf . dimtab . 'TN' = 'COPIER' tn ;
rvf . dimtab . 'PN' = 'COPIER' pn ;
rvf . dimtab . 'NU' = 'COPIER' nu ;
'FINSI' ;
mat1 chp1 = 'KOPS' 'MATRIK' ;
'RESPRO' mat1 chp1 ;
*
* End of procedure file CALRESI
*
'FINPROC' ;
************************************************************************
* NOM : ELNOPRES
* DESCRIPTION : Projette un champ de pression au sommet
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 14/10/2002, version initiale
* HISTORIQUE : v1, 14/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' ELNOPRES ;
'ARGUMENT' pn*'CHPOINT ' ;
*
'SI' ('EGA' kpres 'MSOMMET') ;
pn2 = 'KCHT' $mt 'SCAL' kpres pn ;
'SINON' ;
pn2 = 'ELNO' $mt ('KCHT' $mt 'SCAL' kpres pn) kpres;
'FINSI' ;
pn2 = 'NOMC' 'SCAL' ('REDU' pn2 mt) 'NATURE' 'DISCRET' ;
'RESPRO' pn2 ;
*
* End of procedure file ELNOPRES
*
'FINPROC' ;
************************************************************************
* NOM : FILM
* DESCRIPTION : Affiche sous forme d'animation des infos stockées
* dans la table rvf
* On peut préciser un indice de début, un indice de fin
* et un pas pour n'afficher qu'une partie des informations
* contenues dans la table.
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 23/10/2002, version initiale
* HISTORIQUE : v1, 23/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' FILM ;
'ARGUMENT' rvf*'TABLE ' ;
'ARGUMENT' ndebu/'ENTIER ' ;
'ARGUMENT' nfin/'ENTIER ' ;
'ARGUMENT' ninter/'ENTIER ' ;
*
* Un champ nul pour les déformées
*
dxmt = 'MANUEL' 'CHPO' mt 2 'UR' 0.D0 'UZ' 0.D0
'NATURE' 'DISCRET';
*
dimtab = 'DIME' rvf ;
liv = 'ET' ('EXISTE' ndebu) ('EXISTE' nfin) ;
'SI' (liv) ;
livok = 'ET' liv
('ET' ('<' ndebu nfin)
('ET' ('>EG' ndebu 1) ('<EG' nfin dimtab))
) ;
'FINSI' ;
lviv = 'ET' ('EXISTE' ninter) ('EXISTE' livok) ;
'SI' (lviv) ;
* On corrige nfin pour que MODULO (- nfin ndebu) ninter =0
npouet = '/' ('-' nfin ndebu) ninter ;
nfin = '+' ndebu ('*' npouet ninter) ;
'FINSI' ;
'SI' (liv) ;
'SI' (livok) ;
'SI' (lviv) ;
lindic = 'LECT' ndebu 'PAS' ninter nfin ;
'SINON' ;
lindic = 'LECT' ndebu 'PAS' 1 nfin ;
'FINSI' ;
'SINON' ;
'ERREUR' 'Bornes de l"intervalle incorrectes' ;
'FINSI' ;
'SINON' ;
lindic = 'LECT' 1 'PAS' 1 dimtab ;
'FINSI' ;
ladens = (** ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME'))) ;
*
* Détermination de l'échelle de vitesse
*
lemax = 'PROG' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lavit = rvf . idimt . 'UN' ;
lemax = 'ET' lemax ('PROG' ('MAXIMUM' lavit 'ABS')) ;
'FIN' iindic ;
echvit = 'MAXIMUM' lemax 'ABS' ;
uref = '/' ('*' ladens 4.0D0) echvit ;
*
* Animation de la vitesse
*
tabvit = 'TABLE' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lavit = rvf . idimt . 'UN' ;
* latem = rvf . idimt . 'TN' ;
vecvit = 'VECTEUR' lavit uref 'UX' 'UY' 'JAUN' ;
* defvit = 'DEFORME' mt dxmt 0.D0 vecvit latem ;
defvit = 'DEFORME' mt dxmt 0.D0 vecvit ;
tabvit . &iindic = defvit ;
'FIN' iindic ;
vitani = @STBL tabvit ;
titvit = 'CHAINE' 'FORMAT' formflot
'Vitesse ; echvit=' echvit titglob ;
'TRACER' vitani 'ANIME' 'TITR' titvit ;
'OUBLIER' tabvit ; 'MENAGE' ;
*
* Animation de la température
*
isovorig = 'VALEUR' 'ISOV' ;
'OPTION' 'ISOV' 'SURF' ;
tabtem = 'TABLE' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
latem = rvf . idimt . 'TN' ;
deftem = 'DEFORME' mt dxmt 0.D0 latem ;
tabtem . &iindic = deftem ;
'FIN' iindic ;
temani = @STBL tabtem ;
tittem = 'CHAINE' 'FORMAT' formflot
'Temperature' titglob ;
'TRACER' temani 'ANIME' 'TITR' tittem ;
'OUBLIER' tabtem ; 'MENAGE' ;
'OPTION' 'ISOV' isovorig ;
*
* Animation de la pression
*
isovorig = 'VALEUR' 'ISOV' ;
'OPTION' 'ISOV' 'SURF' ;
tabpre = 'TABLE' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lapre = ELNOPRES (rvf . idimt . 'PN') ;
defpre = 'DEFORME' mt dxmt 0.D0 lapre ;
tabpre . &iindic = defpre ;
'FIN' iindic ;
preani = @STBL tabpre ;
titpre = 'CHAINE' 'FORMAT' formflot
'Pression' titglob ;
'TRACER' preani 'ANIME' 'TITR' titpre ;
'OUBLIER' tabpre ; 'MENAGE' ;
'OPTION' 'ISOV' isovorig ;
*
* Animation de la viscosité
*
isovorig = 'VALEUR' 'ISOV' ;
'OPTION' 'ISOV' 'SURF' ;
tabnu = 'TABLE' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lenu = 'ELNO' $mt (rvf . idimt . 'NU') ;
defnu = 'DEFORME' mt dxmt 0.D0 lenu ;
tabnu . &iindic = defnu ;
'FIN' iindic ;
nuani = @STBL tabnu ;
titnu = 'CHAINE' 'FORMAT' formflot
'Viscosite' titglob ;
'TRACER' nuani 'ANIME' 'TITR' titnu ;
'OUBLIER' tabnu ; 'MENAGE' ;
'OPTION' 'ISOV' isovorig ;
*
* End of procedure file FILM
*
'FINPROC' ;
************************************************************************
* NOM : MODULO
* DESCRIPTION : Calcule un entier modulo un autre...
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 15/10/2002, version initiale
* HISTORIQUE : v1, 15/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' MODULO ;
'ARGUMENT' i*'ENTIER' j*'ENTIER' ;
'SI' ('EGA' j 0) ;
'MESSAGE' 'Impossible de faire modulo 0' ;
'ERREUR' 5 ;
'SINON' ;
k=i '/' j ;
mod=i '-' ( k '*'j ) ;
'RESPRO' mod ;
'FINSI' ;
*
* End of procedure file MODULO
*
'FINPROC' ;
************************************************************************
* NOM : PHOTO
* DESCRIPTION : Trace des infos stockées dans la table rvf
* (comme la procédure FILM mais sans faire d'animations)
* On peut préciser un indice de début, un indice de fin
* et un pas pour n'afficher qu'une partie des informations
* contenues dans la table.
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 23/10/2002, version initiale
* HISTORIQUE : v1, 23/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' PHOTO ;
'ARGUMENT' rvf*'TABLE ' ;
'ARGUMENT' ndebu/'ENTIER ' ;
'ARGUMENT' nfin/'ENTIER ' ;
'ARGUMENT' ninter/'ENTIER ' ;
*
* Un champ nul pour les déformées
*
dxmt = 'MANUEL' 'CHPO' mt 2 'UR' 0.D0 'UZ' 0.D0
'NATURE' 'DISCRET';
*
dimtab = 'DIME' rvf ;
liv = 'ET' ('EXISTE' ndebu) ('EXISTE' nfin) ;
'SI' (liv) ;
livok = 'ET' liv
('ET' ('<' ndebu nfin)
('ET' ('>EG' ndebu 1) ('<EG' nfin dimtab))
) ;
'FINSI' ;
lviv = 'ET' ('EXISTE' ninter) ('EXISTE' livok) ;
'SI' (lviv) ;
* On corrige nfin pour que MODULO (- nfin ndebu) ninter =0
npouet = '/' ('-' nfin ndebu) ninter ;
nfin = '+' ndebu ('*' npouet ninter) ;
'FINSI' ;
'SI' (liv) ;
'SI' (livok) ;
'SI' (lviv) ;
lindic = 'LECT' ndebu 'PAS' ninter nfin ;
'SINON' ;
lindic = 'LECT' ndebu 'PAS' 1 nfin ;
'FINSI' ;
'SINON' ;
'ERREUR' 'Bornes de l"intervalle incorrectes' ;
'FINSI' ;
'SINON' ;
lindic = 'LECT' 1 'PAS' 1 dimtab ;
'FINSI' ;
ladens = (** ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME'))) ;
*
* Détermination de l'échelle de vitesse
*
lemax = 'PROG' ;
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
lavit = rvf . idimt . 'UN' ;
lemax = 'ET' lemax ('PROG' ('MAXIMUM' lavit 'ABS')) ;
'FIN' iindic ;
echvit = 'MAXIMUM' lemax 'ABS' ;
uref = '/' ('*' ladens 2.0D0) echvit ;
*
* Photos de la vitesse
*
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
letem = rvf . idimt . 'TI' ;
lavit = rvf . idimt . 'UN' ;
titvit = 'CHAINE' 'FORMAT' formflot
'Vitesse ; tps=' letem ;
TRACVIT lavit titvit echvit ;
'FIN' iindic ;
*
* Photos de la température
*
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
letem = rvf . idimt . 'TI' ;
latem = rvf . idimt . 'TN' ;
tittem = 'CHAINE' 'FORMAT' formflot
'Temperature ; tps=' letem ;
TRACCHPO latem tittem ;
'FIN' iindic ;
*
* Photos de la pression
*
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
letem = rvf . idimt . 'TI' ;
lapre = ELNOPRES (rvf . idimt . 'PN') ;
titpre = 'CHAINE' 'FORMAT' formflot
'Pression ; tps=' letem ;
TRACCHPO lapre titpre ;
'FIN' iindic ;
*
* Photos de la viscosité
*
'REPETER' iindic ('DIME' lindic) ;
idimt = 'EXTRAIRE' lindic &iindic ;
letem = rvf . idimt . 'TI' ;
lavis = rvf . idimt . 'NU' ;
titvis = 'CHAINE' 'FORMAT' formflot
'Viscosite ; tps=' letem ;
TRACCHML lavis titvis ;
'FIN' iindic ;
*
* End of procedure file PHOTO
*
'FINPROC' ;
************************************************************************
* NOM : TRACCHML
* DESCRIPTION : Trace un CHPOINT défini sur les centres des éléments
* (valeur constante par élément) avec titre optionnel
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 04/11/2002, version initiale
* HISTORIQUE : v1, 04/11/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' TRACCHML ;
'ARGUMENT' chml*'CHPOINT ' ;
'ARGUMENT' tit/'MOT ' ;
rescal = 'KCHA' $mt chml 'CHAM' ;
tituap = 'CHAINE' tit ' ' titglob ;
'TRACER' rescal modbid 'TITR' tituap ;
*
* End of procedure file TRACCHML
*
'FINPROC' ;
************************************************************************
* NOM : TRACCHPO
* DESCRIPTION : Tracé d'un chpoint avec titre optionnel.
*
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 14/10/2002, version initiale
* HISTORIQUE : v1, 14/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' TRACCHPO ;
'ARGUMENT' pn*'CHPOINT ' ;
'ARGUMENT' tit/'MOT ' ;
'SI' ('EXISTE' tit) ;
titpn = 'CHAINE' 'FORMAT' formflot tit titglob ;
'SINON' ;
titpn = 'CHAINE' 'FORMAT' formflot 'PRES' titglob ;
'FINSI' ;
rescal = pn ;
'TRACER' rescal mt mt 'TITR' titpn nbisov ;
*
* End of procedure file TRACCHPO
*
'FINPROC' ;
************************************************************************
* NOM : TRACVIT
* DESCRIPTION : Trace un champ vectoriel sous forme de flèches avec
* titre optionnel.
* On peut préciser une échelle pour les vitesses. Si on ne
* la précise pas, elle est calculée automatiquement
*
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 14/10/2002, version initiale
* HISTORIQUE : v1, 14/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'DEBPROC' TRACVIT ;
'ARGUMENT' vit*'CHPOINT ' ;
'ARGUMENT' tit/'MOT ' ;
'ARGUMENT' echvit/'FLOTTANT' ;
ladens = ('**' ('/' ('MESURE' mt) ('NBEL' mt))
('/' 1.D0 ('VALEUR' 'DIME'))) ;
'SI' ('NON' ('EXISTE' echvit)) ;
echvit = 'MAXIMUM' vit 'ABS' ;
'SINON' ;
echvit = 'ABS' echvit ;
'FINSI' ;
'SI' ('<' echvit 1.D-30) ;
echvit = 1.D0 ;
'FINSI' ;
uref = '/' ('*' ladens 2.0D0) echvit ;
vecvit = 'VECTEUR' vit uref 'UX' 'UY' 'JAUN' ;
'SI' ('EXISTE' tit) ;
titvit = 'CHAINE' 'FORMAT' formflot tit ' echvit=' echvit titglob ;
'SINON' ;
titvit = 'CHAINE' 'FORMAT' formflot 'VIT echvit=' echvit titglob ;
'FINSI' ;
'TRACER' vecvit mt 'TITR' titvit ;
*
* End of procedure file TRACVIT
*
'FINPROC' ;
'OPTION' 'ECHO' 1 ;
************************************************************************
* NOM : SOUDAGE2
* DESCRIPTION : cas-test Navier-Stokes axi 2D stationnaire Bousinessq
* effet Marangoni et phase liquide-solide
*
* Biblio :
* Rapport DM2S SFME/LTMF/RT/02-052/A
* S. Gounand
* Deux cas-tests en vue d'une modélisation numérique d'un
* processus de soudage.
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
* mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION : v1, 03/10/2002, version initiale
* HISTORIQUE : v1, 03/10/2002, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
* Paramètres : * misaup = FAUX : on effectue une sauvegarde
* VRAI : on ne fait pas de sauvegarde
* * post n'a de sens que si misaup = FAUX
* alors : post = FAUX : on effectue la partie calcul
* + sauvegarde
* post = VRAI : on effectue la partie restitution
* + post-traitement
* * interact = VRAI si on travaille en interactif
* FAUX sinon
* * graph = VRAI si on veut des graphiques
* FAUX sinon
* * grossier = VRAI : calcul grossier
* FAUX : calcul fin
* * idsauv et titsauv : nom du fichier de sauvegarde
misaup = VRAI ;
post = VRAI ;
*interact= VRAI ;
*graph = VRAI ;
interact= FAUX ;
graph = FAUX ;
grossier = VRAI;
idsauv = 'CHAINE' 'soudage2_it1600' ;
titsauv = 'CHAINE' '/test4/gounand/soudage/' idsauv '.sauv' ;
*
* Fin des paramètres
*
******************************************************************
'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
'OPTION' 'MODE' 'AXIS' ;
'OPTION' 'ISOV' 'SULI' ;
nbisov = 15 ;
'SI' ('NON' interact) ;
'OPTION' 'TRAC' 'PSC' ;
'OPTION' 'ECHO' 0 ;
'SINON' ;
'OPTION' 'TRAC' 'X' ;
'FINSI' ;
formflot ='(1PE9.2)' ;
'SI' ('OU' ('NON' post) misaup) ;
******************************************************************
*
* Donnees materielles (dimensionnelles)
* (systeme SI)
* Geometrie
* long : rayon de la plaque
* epai : epaisseur de la plaque
* ras : rayon de la source gaussienne
*long = 20.D-3 ;
long = 10.D-3 ;
epai = 2.5D-3 ;
ras = 1.5D-3 ;
* Physique
* rho : masse volumique
* cp : chaleur spécifique à pression constante
* mu : viscosite (dynamique)
* kappa : conductivité thermique
* beta : dilatabilité
* dgdt : variation de la tension superficielle
* avec la température
* tfusion : température de fusion
* puis : puissance de la source gaussienne
rho = 7200.D0 ;
cp = 500.D0 ;
mu = 0.05D0 ;
kappa = 20.D0 ;
beta = 1.D-4 ;
rhocp = '*' rho cp ;
alfa = '/' kappa rhocp ;
nu = '/' mu rho ;
gb = 0. ('*' -9.81D0 beta) ;
dgdt = 1.D-4 ;
tfusion = 1700.D0 ;
*
*lambda = 25.D0 ;
puis = 900.D0 ;
*sigma = 5.6710D-8 ;
* Conditions aux limites
t0 = 300.D0 ;
*
* Paramètres numériques (I)
*
* dg : densité grosse
* dp : densité petite
* dt : pas de temps
* nitma : nombre de pas de temps
* nfilm : intervalle de sauvegarde des champs
* dans la table rv . 'FILM'
'SI' (grossier) ;
dg = 0.5D-3 ;
dp = 0.1D-3 ;
dt = 0.001D0 ;
nitma = 30 ;
nfilm = 1 ;
'SINON' ;
dg = 0.5D-3 ;
dp = 0.1D-3 ;
dt = 0.001D0 ;
nitma = 1600 ;
nfilm = 20 ;
'FINSI' ;
*
* Paramètres numériques (II)
*
discr = 'QUAF' ;
kpres = 'CENTREP1' ;
ksupg = 'CENTREE' ;
kmeth = 'IMPL' ;
* titre global pour les dessins
titglob = 'CHAINE' ' soudage2' ;
*
titdgibi = 'CHAINE' 'Cas test' titglob ;
'MESSAGE' ('CHAINE' '********************************') ;
'MESSAGE' titdgibi ;
'MESSAGE' ('CHAINE' '********************************') ;
*
* Géométrie
*
pA = 0.D0 0.D0 ;
pB = long 0.D0 ;
pC = long epai ;
pD = 0.D0 epai ;
bas = 'DROIT' pA pB 'DINI' dp 'DFIN' dg ;
dro = 'DROIT' pB pC 'DINI' dg 'DFIN' dp ;
hau = 'DROIT' pC pD 'DINI' dg 'DFIN' dp ;
gau = 'DROIT' pD pA 'DINI' dp 'DFIN' dg ;
mt = 'DALLER' bas dro hau gau ;
'SI' graph ;
titgeo = 'CHAINE' 'mt ' 'NBPO=' ('NBNO' mt)
' NBELEM=' ('NBEL' mt) titglob ;
'TRACER' mt 'TITRE' titgeo ;
'FINSI' ;
*
* Modèle
*
_mt = 'CHANGER' mt 'QUAF' ;
_bas = 'CHANGER' bas 'QUAF' ;
_dro = 'CHANGER' dro 'QUAF' ;
_hau = 'CHANGER' hau 'QUAF' ;
_gau = 'CHANGER' gau 'QUAF' ;
'ELIMINATION' (_mt 'ET' _bas 'ET' _dro 'ET' _hau 'ET' _gau)
('/' dp 100.D0) ;
modbid = 'MODELISER' mt 'THERMIQUE' ;
$mt = 'MODELISER' _mt 'NAVIER_STOKES' discr ;
$bas = 'MODELISER' _bas 'NAVIER_STOKES' discr ;
$dro = 'MODELISER' _dro 'NAVIER_STOKES' discr ;
$hau = 'MODELISER' _hau 'NAVIER_STOKES' discr ;
$gau = 'MODELISER' _gau 'NAVIER_STOKES' discr ;
mtc = 'DOMA' $mt 'CENTRE' ;
mp1 = 'ELEM' ('DOMA' $mt kpres) 1 ;
pmp1 = 'POIN' mp1 1 ;
pini = 'KCHT' $mt 'SCAL' kpres 0.D0 ;
*
* Construction de la source
*
rhauc = 'COORDONNEE' 1 ('DOMA' $hau 'CENTRE') ;
fes = '*' (('*' rhauc rhauc))
('/' -3.D0 ('*' ras ras)) ;
gs = '*' ('EXP' fes)
('/' 3.D0 (PI '*' ras '*' ras)) ;
sgs = 'NOMC' 'SOUR' ('*' gs puis) 'NATURE' 'DISCRET' ;
sgs = 'KCHT' $hau 'SCAL' 'CENTRE' 'COMP' 'SOUR' sgs ;
*
* Rescaling de la source
*
isgavc = 'MAXIMUM' ('RESULT' ('*' sgs ('DOMA' $hau 'VOLUME'))) ;
'MESSAGE' ('CHAINE' 'FORMAT' formflot
'int. source gauss avant correction='
isgavc ' W' ) ;
fcor = '/' puis isgavc ;
sgs = '*' sgs fcor ;
isgapc = 'MAXIMUM' ('RESULT' ('*' sgs ('DOMA' $hau 'VOLUME'))) ;
'MESSAGE' ('CHAINE' 'FORMAT' formflot
'int. source gauss apres correction='
isgapc ' W' ) ;
stot = sgs ;
*
* conditions initiales
*
tini = 'KCHT' $mt 'SCAL' 'SOMMET' t0 ;
uini = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
*
* conditions aux limites
*
* vitesse
mailvr = ('DOMA' $gau 'SOMMET') 'ET' ('DOMA' $bas 'SOMMET')
'ET' ('DOMA' $dro 'SOMMET') ;
climvr = 'MANUEL' 'CHPO' mailvr 1 '1UN' 0.D0 'NATURE' 'DISCRET' ;
mailvz = ('DOMA' $hau 'SOMMET') 'ET' ('DOMA' $bas 'SOMMET')
'ET' ('DOMA' $dro 'SOMMET') ;
climvz = 'MANUEL' 'CHPO' mailvz 1 '2UN' 0.D0 'NATURE' 'DISCRET' ;
* temperature
mailt = 'ET' ('DOMA' $bas 'SOMMET') ('DOMA' $dro 'SOMMET') ;
climt = 'MANUEL' 'CHPO' mailt 1 'TN' t0 'NATURE' 'DISCRET' ;
* pression imposée en un point
mailp = mp1 ;
climp = 'MANUEL' 'CHPO' mailp 1 'PN' 0.D0 'NATURE' 'DISCRET' ;
*
climtot = climt 'ET' climvr 'ET' climvz 'ET' climp ;
*
* Mise en place du calcul numérique
*
* résidu et film
rv = 'EQEX' 'NITER' 1 'ITMA' nitma 'OMEGA' 1.D0 'FIDT' 1000
'ZONE' $mt 'OPER' 'CALRESI' 1 nfilm 1.D-6
;
* quantité de mouvement
rv = 'EQEX' rv
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'CALCNU'
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'NS' 1. 'UN' 'NU' gb 'TN' t0 'INCO' 'UN'
;
* effet Marangoni
rv = 'EQEX' rv
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'CALCTAU'
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $hau 'OPER' 'TOIM' 'TAU' 'INCO' 'UN'
;
* pression
rv = 'EQEX' rv
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'KBBT' ('/' +1.D0 rho) 'INCO' 'UN' 'PN'
;
* énergie
rv = 'EQEX' rv
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'LAPN' alfa 'INCO' 'TN'
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'KONV' 1.D0 'UN' alfa 'INCO' 'TN'
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $hau 'OPER' 'FIMP' ('/' sgs rhocp) 'INCO' 'TN'
;
* temps
rv = 'EQEX' rv
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'DFDT' 1. 'UN' DT 'INCO' 'UN'
'OPTI' 'EF' 'IMPL' 'CENTREE' 'CENTREP1'
'ZONE' $mt 'OPER' 'DFDT' 1. 'TN' DT 'INCO' 'TN'
;
rv . 'CLIM' = climtot ;
rv . 'INCO' = 'TABLE' 'INCO' ;
rv . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' uini ;
rv . 'INCO' . 'TN' = 'KCHT' $mt 'SCAL' 'SOMMET' tini ;
rv . 'INCO' . 'PN' = 'KCHT' $mt 'SCAL' kpres 0.D0 ;
rv . 'INCO' . 'NU' = 'KCHT' $mt 'SCAL' 'CENTRE' nu ;
* Infos supplémentaires pour la procédure CALRESI
rv . 'RESIDU' = 'TABLE' ;
* Champs
rv . 'RESIDU' . 'UNM1' = 'COPI' rv . 'INCO' . 'UN' ;
rv . 'RESIDU' . 'TNM1' = 'COPI' rv . 'INCO' . 'TN' ;
rv . 'RESIDU' . 'PNM1' = 'COPIER' rv . 'INCO' . 'PN' ;
rv . 'RESIDU' . 'NUM1' = 'COPIER' rv . 'INCO' . 'NU' ;
* Matrices masse pour le calcul des résidus
rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
'ZONE' $mt 'OPER' 'DFDT' 1.D0 'UN' 1.D0 'INCO' 'UN' ;
rk . 'INCO' = TABLE 'INCO' ;
rk . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
toto mm = 'DFDT' (rk . '1DFDT') ;
rv . 'RESIDU' . 'MMU' = mm ;
rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
'ZONE' $mt 'OPER' 'DFDT' 1.D0 'TN' 1.D0 'INCO' 'TN' ;
rk . 'INCO' = TABLE 'INCO' ;
rk . 'INCO' . 'TN' = 'KCHT' $mt 'SCAL' 'SOMMET' 0.D0 ;
toto mm = 'DFDT' (rk . '1DFDT') ;
rv . 'RESIDU' . 'MMT' = mm ;
$mt2 = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ;
rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
'ZONE' $mt2 'OPER' 'DFDT' 1.D0 'PN' 1.D0 'INCO' 'PN' ;
rk . 'INCO' = TABLE 'INCO' ;
rk . 'INCO' . 'PN' = 'KCHT' $mt2 'SCAL' 'SOMMET' 0.D0 ;
toto mm = 'DFDT' (rk . '1DFDT') ;
rv . 'RESIDU' . 'MMP' = mm ;
rv . 'RESIDU' . 'MMN' = 'DOMA' $mt 'VOLUME' ;
* Erreurs
rv . 'RESIDU' . 'IT' = 'PROG' ;
rv . 'RESIDU' . 'TI' = 'PROG' ;
rv . 'RESIDU' . 'ERU' = 'PROG' ;
rv . 'RESIDU' . 'ERT' = 'PROG' ;
rv . 'RESIDU' . 'ERP' = 'PROG' ;
rv . 'RESIDU' . 'ERN' = 'PROG' ;
* Infos supplémentaires pour les films
rv . 'FILM' = 'TABLE' ;
*
* Calcul proprement dit
*
'TEMPS' 'ZERO' ;
EXEC rv ;
tcpu = 'TEMPS' 'NOEC' ;
tcpus = '/' ('FLOTTANT' tcpu) 100.D0 ;
'MESSAGE' ('CHAINE' 'tcpus=' tcpus) ;
*'TEMPS' 'IMPR' ;
rvi = rv . 'INCO' ;
rvr = rv . 'RESIDU' ;
*
* Résultats intéressants mis dans la table res
*
res = 'TABLE' ;
res . 'TCPU' = tcpus ;
res . 'MAILLAGE' = mt ;
res . 'MODELE' = $mt ;
res . 'IT' = rvr . 'IT' ;
res . 'ERU' = rvr . 'ERU' ;
res . 'ERT' = rvr . 'ERT' ;
res . 'ERP' = rvr . 'ERP' ;
res . 'ERN' = rvr . 'ERN' ;
res . 'UN' = rvi . 'UN' ;
res . 'TN' = rvi . 'TN' ;
res . 'PN' = rvi . 'PN' ;
res . 'NU' = rvi . 'NU' ;
res . 'FILM' = rv . 'FILM' ;
'SI' ('NON' misaup) ;
'OPTION' 'SAUV' titsauv ;
'SAUVER' ;
'FINSI' ;
'FINSI' ;
*
*
*==========================================================
* Post traitement
*==========================================================
'SI' ('OU' post misaup) ;
'SI' ('NON' misaup) ;
'OPTION' 'REST' titsauv ;
'RESTITUER' ;
'FINSI' ;
tcpu = res . 'TCPU' ;
mt = res . 'MAILLAGE' ;
$mt = res . 'MODELE' ;
lit = res . 'IT' ;
leru = res . 'ERU' ;
lert = res . 'ERT' ;
lerp = res . 'ERP' ;
lern = res . 'ERN' ;
un = res . 'UN' ;
tn = res . 'TN' ;
pn = res . 'PN' ;
nu = res . 'NU' ;
rf = res . 'FILM' ;
'SI' graph ;
* Quelques graphiques
ndimlit = 'DIME' lit ;
'SI' ('>' ndimlit 2) ;
xeveru = lit ;
yeveru = '/' ('LOG' leru) ('LOG' 10.D0) ;
everu = 'EVOL' 'MANU' 'Iteration' xeveru 'Log Err L2 U' yeveru ;
tituap = 'CHAINE' 'Conv. vitesse' titglob ;
'DESSIN' everu 'TITR' tituap ;
xevert = lit ;
yevert = '/' ('LOG' lert) ('LOG' 10.D0) ;
evert = 'EVOL' 'MANU' 'Iteration' xevert 'Log Err L2 T' yevert ;
tituap = 'CHAINE' 'Conv. température' titglob ;
'DESSIN' evert 'TITR' tituap ;
xeverp = lit ;
yeverp = '/' ('LOG' lerp) ('LOG' 10.D0) ;
everp = 'EVOL' 'MANU' 'Iteration' xeverp 'Log Err L2 P' yeverp ;
tituap = 'CHAINE' 'Conv. pression' titglob ;
'DESSIN' everp 'TITR' tituap ;
xevern = lit ;
yevern = '/' ('LOG' lern) ('LOG' 10.D0) ;
evern = 'EVOL' 'MANU' 'Iteration' xevern 'Log Err L2 Nu' yevern ;
tituap = 'CHAINE' 'Conv. Visc.' titglob ;
'DESSIN' evern 'TITR' tituap ;
'FINSI' ;
tituap = 'CHAINE' 'Vitesse' ;
TRACVIT un tituap ;
tituap = 'CHAINE' 'Température' ;
TRACCHPO tn tituap ;
tituap = 'CHAINE' 'Pression' ;
TRACCHPO (ELNOPRES pn) tituap ;
tituap = 'CHAINE' 'Viscosite (nu)' ;
TRACCHML nu tituap ;
'SI' interact ;
FILM rf ;
'FINSI' ;
'FINSI' ;
*
*'SI' ('OU' post misaup) ;
'FINSI' ;
*
* On ne sait pas trop quoi faire comme test...
*
tmax = 'MAXIMUM' tn ;
tmin = 'MINIMUM' tn ;
u = 'EXCO' un 'UX' ;
v = 'EXCO' un 'UY' ;
umax = 'MAXIMUM' u ;
umin = 'MINIMUM' u ;
vmax = 'MAXIMUM' v ;
vmin = 'MINIMUM' v ;
*
tmaxref = 5.084D+3 ;
tminref = 3.000D+2 ;
umaxref = 8.301D-1 ;
uminref =-2.007D-1 ;
vmaxref = 1.118D-1 ;
vminref =-2.002D-1 ;
*
errtmax = ERRREL tmax tmaxref ;
errtmin = ERRREL tmin tminref ;
errumax = ERRREL umax umaxref ;
errumin = ERRREL umin uminref ;
errvmax = ERRREL vmax vmaxref ;
errvmin = ERRREL vmin vminref ;
*
tsttmax = '>' errtmax 1.D-3 ;
tsttmin = '>' errtmin 1.D-3 ;
tstumax = '>' errumax 1.D-3 ;
tstumin = '>' errumin 1.D-3 ;
tstvmax = '>' errvmax 1.D-3 ;
tstvmin = '>' errvmin 1.D-3 ;
test = (tsttmax 'OU' tsttmin 'OU' tstumax 'OU' tstumin
'OU' tstvmax 'OU' tstvmin) ;
'MESSAGE' ('CHAINE' 'Tmax =' tmax ' K') ;
'MESSAGE' ('CHAINE' 'Tmin =' tmin ' K') ;
'MESSAGE' ('CHAINE' 'Umax =' umax ' m.s-1') ;
'MESSAGE' ('CHAINE' 'Umin =' umin ' m.s-1') ;
'MESSAGE' ('CHAINE' 'Vmax =' vmax ' m.s-1') ;
'MESSAGE' ('CHAINE' 'Vmin =' vmin ' m.s-1') ;
'SI' test ;
'MESSAGE' ('CHAINE' 'Tmaxref =' tmaxref ' K') ;
'MESSAGE' ('CHAINE' 'Tminref =' tminref ' K') ;
'MESSAGE' ('CHAINE' 'Umaxref =' umaxref ' m.s-1') ;
'MESSAGE' ('CHAINE' 'Uminref =' uminref ' m.s-1') ;
'MESSAGE' ('CHAINE' 'Vmaxref =' vmaxref ' m.s-1') ;
'MESSAGE' ('CHAINE' 'Vminref =' vminref ' m.s-1') ;
'FINSI' ;
*
'MESSAGE' ('CHAINE' 'Errtmax =' errtmax) ;
'MESSAGE' ('CHAINE' 'Errtmin =' errtmin) ;
'MESSAGE' ('CHAINE' 'Errumax =' errumax) ;
'MESSAGE' ('CHAINE' 'Errumin =' errumin) ;
'MESSAGE' ('CHAINE' 'Errvmax =' errvmax) ;
'MESSAGE' ('CHAINE' 'Errvmin =' errvmin) ;
'SI' interact ;
'OPTION' 'DONN' 5 ;
'SINON' ;
'SI' test ;
'ERREUR' 5 ;
'SINON' ;
'ERREUR' 0 ;
'FINSI' ;
'FINSI' ;
*
* End of dgibi file SOUDAGE2
*
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer