Download phase2d.dgibi

Back to the list

* 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