* fichier :  phase_02.dgibi
************************************************************************
* Section : Changement_De_Phase Changement_De_Phase
* Section : Thermique Conduction
************************************************************************
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' ;
modph1 = MODE su1 'CHANGEMENT_PHASE' 'INCO' 'T' 'Q';

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. ;
matph1 = MATE modph1  'PRIM' Tfma 'DUAL' (4500. * 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 et modph1 ;
xtab.'CARACTERISTIQUES' = matth1 et matph1 ;
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 =( ( INTG evt) ) / 2.e-2;
list so;
evini= evol chpo txco l1;
sini= ( ( INTG evini) ) / 2.e-2;

dqt =  capcalo * ( abs( so - sini));

*proportions de phase, initiale, prise dans le cacul
pr0= xtab.proportions_phase . 0;
zo= intg pr0 modph1;
zz = manu chml modph1 'SCAL' 1.;

zotot= intg zz modph1;
na = dime xtab.proportions_phase ;
prfi= xtab . proportions_phase . (na - 1);
zfi= intg prfi modph1;
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;
 

 

