* fichier :  thme3.dgibi
************************************************************************
* Section : Thermique Conduction
************************************************************************
*----------------------------------------------------------------
*
* Copie du cas-test thme2.dgibi mais appel à la procedure
* NONLINEAIRE au lieu de DUPONT.
*
* Réduction d'un jeu sous l'action d'une sollicitation
* thermique en régime transitoire
*
*----------------------------------------------------------------
*
* Calcul thermo-mécanique ( mécanique et thermique linéaire )
* Utilisation de la procédure PASAPAS
* Utilisation de la procédure utilisateur perso1.
*
*
*   |                     x1 = 0.1 m  x2 = 0.1002 m                |
*   |                     T1 = 500°C  T2 = ?                       |
*   |_______________________________   ____________________________|
*   |                               | |                            |
*   |         T_initial = 20°C      | |      T_initial = 20°C      |
*   |_______________________________| |____________________________|
*   | x0 = 0 m                      jeu              x3 = 0.2002 m |
*   | T0 = 20°C                                      T3 = 20°C     |
*   | Encastrement                                   Encastrement  |
*
*
*   Le jeu sera considéré comblé quand la distance entre les 
*   barreaux est inférieure à 0.1mm 
*
*   on étudie la diffusion thermique dans les barreaux et leurs 
*   dilatations.
*
*   caracteristiques des barreaux : 
*
*         l = 0.1m
*         K = 14.6 
*         C = 460
*         RHO = 7800
*         ALPHA = 1E-5
*         YOUNG = 2.E11   
*         NU = 0.00001
*
*   Mailles de 0.01 m de cote
*
*----------------------------------------------------------------
*
OPTION ECHO 0;
OPTION DIME 2 ELEM QUA8 MODE PLAN DEFO;
*
*-------------------- Creation du maillage ----------------------
*
DENS 1;
P1 = 0.   0.  ;
P2 = 0.1   0.  ;
P3 = 0.1   0.01 ;
P4 = 0.   0.01 ;
P5 = 0.1002 0.;
P6 = 0.2002 0.;
P7 = 0.2002 0.01;
P8 = 0.1002 0.01;
P9 = 0.12 0.;
D1 = DROI 10 P1 P2 ;
D2 = DROI 1  P2 P3 ;
D3 = DROI 10 P3 P4 ; 
D4 = DROI 1  P4 P1 ;
D5 = DROI 10 P5 P6 ;
D6 = DROI 1  P6 P7 ;
D7 = DROI 10 P7 P8 ; 
D8 = DROI 1  P8 P5 ;
L1 = D1 ET D2 ET D3 ET D4;
L2 = D5 ET D6 ET D7 ET D8;
SU1 = SURF L1 PLANE;
SU2 = SURF L2 PLANE;
P9 = SU2 POINT PROCHE P9;
*
*-------------------- Définition du modèle ----------------------
*
MOD1 = MODE (SU1 ET SU2) THERMIQUE ISOTROPE CONS UN;
MOD3 = MODE (SU1 ET SU2) MECANIQUE ELASTIQUE ISOTROPE CONS DEUX ;
MOD = MOD1 et MOD3;
*
*------------------- Définition des matériaux -------------------
* 
MAT1 = MATE MOD1 K 14.6 'C' 460. RHO 7800.  ;
MAT3 = MATE MOD3 ALPHA 1E-5 YOUN 2E+11 NU 0.00001 'TALP' 20. 'TREF' 20.;
MAT = MAT1 ET MAT3;
*
*------------------- blocages mécaniques ------------------------
*
CL1 = BLOQ UY (SU1 ET SU2);
CL2 = BLOQ UX D4;
CL3 = BLOQ UX D6;
CL_ME = CL1 ET CL2 ET CL3;
*
*------------------- blocages thermiques ------------------------
*
CL4 = BLOQ T D4;
CL5 = BLOQ T D2;
CL6 = BLOQ T D6;
TEM1 = DEPI (CL4 ET CL6) 20.;
TEM2 = DEPI CL5 500.;
CL_TH = CL4 ET CL5 ET CL6;
*
*------------------- températures imposées ----------------------
*
TEM1 = DEPI (CL4 ET CL6) 20.;
TEM2 = DEPI CL5 500.;
TIM = TEM1 ET TEM2;
EV1 = EVOL MANU TEMPS (PROG 0. 200.) y (prog 1. 1.);
CHA = CHAR 'TIMP' TIM EV1;
*
*------------------- température initiale -----------------------
*
TEM0 = MANU CHPO (SU1 ET SU2) 1 T 20.;
*
*--------------- creation de la table pour pasapas ------------
*
ta = table;
ta.modele = mod;
ta.caracteristiques = mat;
ta.blocages_mecaniques = cl_me;
ta.blocages_thermiques = cl_th;
ta.temperatures = table;
ta.temperatures . 0 = tem0;
ta.chargement = cha;
ta.procedure_perso1 = vrai;
ta.ok = faux;
ta.temps_calcules = (prog 0. pas 5. 80.) et (prog 81. pas 1. 99.)
et (prog 100. pas 5. 150.);
*
*------------ procédure utilisateur perso1 --------------------
*
debproc perso1 TTU*TABLE;
   dep = ttu.'ESTIMATION'.'DEPLACEMENTS';
   WTAB=TTU.'WTABLE';
   x = extr dep UX P2;
   list x;
   si ((TTU.'ESTIMATION'.'TEMPS' > 84.5) et  ( TTU.'ESTIMATION'.'TEMPS' < 89.5));
    list ttu.'ESTIMATION'.'TEMPERATURES';
    finsi;
    
   si (('>' x 0.0001) et (non ttu.ok));
    ttu.loup = TTU.'ESTIMATION'.'TEMPS';
     mess ' *************************';
     mess ' mise a jour du au contact pour le temps : ' ttu.loup ;
     mess ' *************************';     
     CL7 = bloq T D8;
     tim = depi cl7 500.;
     WTAB.'BLOCAGES_THERMIQUES' = (WTAB.'BLOCAGES_THERMIQUES' ) et cl7;
     EV1 = EVOL MANU TEMPS (PROG 0. 200.) y (prog 1. 1.);
     CHA7 = CHAR 'TIMP' TIM EV1;  
     WTAB.'CHARGEMENT_I' = WTAB.'CHARGEMENT_I' et cha7;
      WTAB.'CHARGEMENT' = WTAB.'CHARGEMENT' et cha7;
     ttu.ok = vrai;
   finsi;    
finproc;
*
*------------ Appel à la procédure PASAPAS --------------------
*
pasapas ta;
*
*----------- Depouillement ------------------------------------
*
a = (14.6 / 7800.)/460.;
tpr1 = prog;
tpr3 = prog;
tep_th = prog;
x = 0.12;
er1 = 0.;
nb = 0;
idim = (dime (ta.temps)) - 1;
*
repeter bou idim;
   ite = &bou;
   te = ta.temps.ite;
   tem = ta.temperatures.ite;
   tep1 = extr tem T p9;
   tpr1 = tpr1 et (prog tep1);
   tpr3 = tpr3 et (prog te);
   si ('>' te (ta.loup)) ;
     co1 = erf((x - .1002)/(2 * (( a * (te - (ta.loup))**0.5)))); 
     co2 = erf(0.1/(2.*(( a * (te - (ta.loup)))**0.5)));
     sol_te = 500. - ((500. - 20.)*co1/co2);
     er1 = er1 + (abs ((sol_te - tep1)/sol_te) * 100.); 
     nb = nb + 1;     
   sinon;
      sol_te = 20.;
   finsi;
   tep_th = tep_th et (prog sol_te);
fin bou;
*
er1 = er1/nb;
mess 'erreur sur la température :'er1'%';
*
*lvar = TEXT 'EVOLUTION DE LA TEMPERATURE AU POINT 0.12 m';
*titre lvar; 
*ev_te = evol manu temps tpr3 temperature tep_th;
*ev_tet = evol manu temps tpr3 temperature tpr1;
*dess (ev_tet et ev_te) ;
*
si ( er1 > 5. ) ;
  mess 'Résultat incorrect' ;
  erreur 5 ;
finsi ;
*
fin;

 

 

 

 

 

 

