* fichier : phase2d.dgibi
graph= faux;
*
* Cas test : phase2d.dgibi
*
* barreau ayant une temperature variant de 0 à 250 jusqu'a son milieu
* puis de 250 à 0°C à son extremité. On suppose une température de
* fusion à 200°C, on laisse évoluer la température
* tout devient solide.
*
*
OPTI DIME 2 ELEM qua4 MODE plan;
*
*************** Temperature de changement de phase ************************
Tfma = 200. ;
*
*************** Geometrie *************************************************
*p1 = 0. 0. 0. ; p11 = (0. 0. 10.e-3); p12=(0. 0. -10.e-3);
*p2 = 10.e-3 0. 0. ;
*p3 = 10.e-3 10.e-3 0. ;
*p4 = 0. 10.e-3 0. ;
p1 = 0. 0. ; p11 = (0. 10.e-3); p12=(0. -10.e-3);
p2 = 10.e-3 0. ;
*p3 = 10.e-3 10.e-3 0. ;
*p4 = 0. 10.e-3 0. ;
n=1;
l1 = p12 droi 100 p1 droi 100 p11;
si graph;trac l1;finsi;
su1= l1 trans n p2;
*vol1= su1 volu trans n p4;
*trac cach vol1;
**************** Modeles et caracteristiques *********************************
modth1 = MODE su1 'THERMIQUE' 'CONDUCTION' 'PHASE';
latmin= 16.25e19; latint = 16.85;latmax= 25.63e19;
LAT= 16.5e19;
LAT=1.e5;
CAPCALO= 900.;
matth1 = MATE modth1 'C' capcalo 'K' 100.
'RHO' 4500. 'TPHASE' Tfma 'QLAT' LAT;
*
*************** Pas de temps "grossier" et fin ********************************
* Durée totale
TT1 = 1.;
* pas de temps "grossier"
dt1 = 5.e-2 ;
* pas de temps "fin"
dt2 = 0.5e-6 ;
* pas de temps "très fin" juste pour avant la disparition totale de la zone fondue
dt3 = 0.5e-8 ;
*
* pas de temps du début "grossier" jusqu'à Temps1 et ensuite fin jusqu'à Temps2 ;
*
Temps1 = 0.350e-3 ;
Temps2 = 0.378e-3 ;
Temps3 = 0.385e-3 ;
listT = PROG 0. PAS dT1 Temps1 PAS dt2 Temps2 PAS dt3 Temps3
PAS dt1 TT1 ;
listt= prog 0. pas dt1 tt1;
n1 = DIME listT ;
listS = PROG 0. pas 1. (n1-1) ;
listS = (1./(n1-1.)) * listS ;
EvS = EVOL MANU 'TEMP' listT 'SOUR' listS ;
si graph; dess EvS TITR 'evolution chargement'; finsi;
*
**************** Définition du champ de temperatures initial ****************
*xco = COOR 3 vol1 ;
xco = COOR 2 su1 ;
xco = ABS xco ;
max1 = MAXI xco ;
xco = max1 - xco ;
xco = (1./max1) * xco ;
*
* eventuellement, pour un pic de temperature plus localisé...
*xco = xco * xco ;
*
Txco = Tfma * 1.25 * xco ;
Txco = CHAN COMP 'T' Txco;
Txco = CHAN 'ATTRIBUT' Txco NATURE 'DIFFUS' ;
*TRAC vol1 Txco 'TITR' ' Temperature initiale' ;
si graph ;TRAC su1 Txco 'TITR' ' Temperature initiale' ; finsi;
evch = evol chpo l1 Txco;
si graph ; dess evch; finsi;
********************************************************************
* chargement nul !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
********************************************************************
*sour0 = MANU CHPO vol1 1 'Q' 0. 'NATURE' 'DISC';
sour0 = MANU CHPO su1 1 'Q' 0. 'NATURE' 'DISC';
chthQ0 = CHAR 'Q' sour0 EvS ;
********************************************************************
xtab = table ;
*xtab.'CELSIUS'= VRAI ;
xtab.'TEMPERATURES' = table ;
xtab.'TEMPERATURES' . 0 = Txco ;
xtab.'MODELE' = modth1 ;
xtab.'CARACTERISTIQUES' = matth1 ;
xtab.'CHARGEMENT' = chthQ0 ;
xtab.'PROCEDURE_PERSO2' = VRAI ;
DEBP PERSO2 ;
chT = PECHE xtab.'TEMPERATURES' ;
cht = exco cht 'T' 'T';
* TRAC vol1 chT ;
Tmax1 = MAXI chT ;
titre ' profil de temperature le long du barreau';
evch= evol chpo l1 cht ;
si graph ; dess evch nclk; finsi;
FINP ;
xtab.'TEMPS_CALCULES' = listT ;
*xtab.'TEMPS_SAUVES' = (PROG 0. TT1) ;
*xtab.'PAS_AJUSTE' = vrai ;
*xtab.'RELAXATION_THETA' = 1.;
*xtab.'CRITERE' = 1.e-3 ;
*
PASAPAS xtab ;
* on compare energie fournie/dépensée par chaleur latente dql
* à la différence d'énergie calorique % à la solution homogène 125°C
* obtenue sans chaleur latente (dqt).
tder = peche xtab temperatures ;
tder= tder exco 'T';
evt = evol chpo tder l1;
so =( ( somme evt) extr 1 ) / 2.e-2;
list so;
evini= evol chpo txco l1;
sini= ( ( somme evini) extr 1 ) / 2.e-2;
dqt = capcalo * ( abs( so - sini));
*proportions de phase, initiale, prise dans le cacul
pr0= xtab.proportions_phase . 0;
zo= intg pr0 modth1;
zz = manu chml modth1 'SCAL' 1.;
zotot= intg zz modth1;
na = dime xtab.proportions_phase ;
prfi= xtab . proportions_phase . (na - 1);
zfi= intg prfi modth1;
zmod = abs ( zfi - zo ) ;
propchzo=abs( zmod / zotot);
dql = LAT * propchzo ;
mess ' dqt' dqt ' dql ' dql;
err= abs ( ( dql- dqt ) / dql);
si ( err > 1.e-4) ;
mess ' erreur dans phase2d.dgibi' ;
erreur 5 ; finsi;
fin;
© Cast3M 2003 - All rights reserved.
Disclaimer