*
* calcul de type soudage sans apport de matière 
*
jtest = 'VRAI' ;

si (ega jtest 'VRAI') ; opti trac psc ; finsi ;

opti dime 3 elem cu20 ;

p_ori = 0. 0. 0. ;e_x = 1. 0. 0. ; e_y = 0. 1. 0.  ; e_z = 0. 0. 1. ;

ray_i = 15.e-2 ; ang_u = 90./5 ; lc1 = 5.e-3 ; lc2 = 10.e-2 ;

dens1 = 1.;
opti dens dens1 ; 
p_i1 = p_ori plus (ray_i * e_z) ;
p_e1 = p_i1 plus (ray_i/10 * e_z) ;
r_ie1 = d p_i1 p_e1 ;
m_ie = changer poi1 r_ie1 ;
s_1 = r_ie1 rota 1 ang_u p_ori e_y ;

sec_d = s_1 ;
repeter b_90 (20 - 1) ;
r_u = (inve (s_1 cote 3)) ; m_ie = m_ie et (changer poi1 r_u) ;
s_u = r_u rota 1 ang_u p_ori e_y ;
sec_d = sec_d et s_u ;
s_1 = s_u ;
fin b_90 ;
elim 1.e-4 (s_u et r_ie1) ;
titre 'section tube ' ;
trac sec_d nclk ;

sec_g = sec_d moins p_ori ;

v_d1 = sec_d volu 1 trans (lc1 * e_y) ;
v_g1 = sec_g volu 1 trans (lc1 * (-1) * e_y) ;
v_d2 = (face 2 v_d1) volu trans e_y dini lc1 dfin lc2 ;
v_g2 = (face 2 v_g1) volu trans ((-1) * e_y) dini lc1 dfin lc2 ;
v_0 = v_d1 et v_d2 et v_g1 et v_g2 ;
 
 titre 'demi-tube droite ' ;
 trac (v_d1 et v_d2) cach nclk ;
 
vm_d1 = changer lineaire v_d1 ;
vm_g1 = changer lineaire v_g1 ;
vm_d2 = changer lineaire v_d2 ;
vm_g2 = changer lineaire v_g2 ;
vm_1 = vm_d1 et vm_g1 et vm_d2 et vm_g2 ;


s_g2 = face 2 v_g2 ;
sm_g2 = changer lineaire s_g2 ;
s_d2 = face 2 v_d2 ;
sm_d2 = changer lineaire s_d2 ;

************************************************************************
*                 THERMIQUE  CARACTÉRISTIQUES MATERIAU                           
                                                                       
*   evolution des caracteristiques avec la temperature ;                

*   TABLE POUR LA VISUALISATION

 TAB1 = TABLE ;
 TAB1.1 = 'MARQ LOSA';
 TAB1.2 = 'MARQ TRIA';

*       capacite volumique                                              
                                                                       
ltmpt1 = prog 20. 100. pas 100. 1400. 1450.  1700.;                     
                                                                       
lscapa = prog 3594.5 3902.6 4157.4 4309.6 4442.9 4467.6                 
4491.6 4590.4 4696.8 4907.5 4950. 4990. 5043. 5054.2                    
5071.5  5088. 5088.;                                                    
                                                                       
*     conversion en USI                                                 
lscapa = lscapa * 1.e3;                                                 
evlcapa = evol manu 'T' ltmpt1 'C' lscapa ;                             
*dess evlcapa titre 'Capacaité volumique' nclk TAB1 ;                          

*       conductivite                                                    
                                                                       
lscondu = prog 14. 15.2 16.6 17.9 19.2 20.6 21.8 23.1 24.3 26.          
27.3 28.1 29.9 32. 34. 49. 49.;                                 
lscondu = lscondu  ;                                                    
                                                                       
evlcond = evol manu 'T' ltmpt1 'K' lscondu  ;                            
*dess evlcond titre 'Conductivite' nclk TAB1 ;                                 

*       coefficient de convection avec l'exterieur                      
                                                                       
he1 = 10. ;                                                             
* coefficient de convection avec le bridage                             
he2 = 150. ;                                                              

*
mth_d1 = mode v_d1 thermique isotrope ; 
mth_d2 = mode v_d2 thermique isotrope ; 
mth_g1 = mode v_g1 thermique isotrope ; 
mth_g2 = mode v_g2 thermique isotrope ; 
m_conv = mode ((face 3 v_d2) et (face 3 v_g2)) thermique convection ;

moth_c = mth_d1 et mth_d2 et mth_g1 et mth_g2 ;
cath_c = mate moth_c 'C' evlcapa 'K' evlcond 'RHO' 1. ; 
c_conv = mate m_conv 'H' he1 ;

************************************************************************
*              MECANIQUE  CARACTÉRISTIQUES MATERIAU                           
 
* acier inox
* coef dilatation
l_temp1 = prog
      20. 50. 150. 250. 350. 450. 550. 650. 750. 850. 875. ;
al_in = evol manu t l_temp1  alph (1.e-6*(prog 
 13.75 15.415 15.835 16.565 17.0 17.43 17.735 17.775 17.775
   17.775 17.775)) ;
a2i304l = evol manu t l_temp1 alph (1.e-6*(prog
  17.775 17.775 18.33 18.53 18.884 18.914 18.967 18.695 17.999 
   17.775 17.775 )) ;
* module d young
l_temp2 = prog 20. 200. 400. 600. 900. ;
evly_in =  evol manu t l_temp2 youn (1.e9*(prog
  192.6 207. 197.9 197.9 81.9)) ;
y2i304l = evol manu t (prog 20. 200. 400. 600. 800. 900.)
     youn (1.e9*(prog 198.85 198.85 198.85 198.85 81.9 68.)) ;
ltmpt8 = prog 0. 100. 326. 604. 
              800. 1000. 1500. 2000. ;
lyoun2 = (prog 195. 195. 170. 145. 
*             105. 50. 1. 1.) * 1.e9 ;
             105. 5. .001 .0001) * 1.e9 ;
lyoun1 = (prog 215. 215. 215. 180.
*             105. 50. 1. 1.) * 1.e9 ;
             105. 50. 0.001 .0001) * 1.e9 ;
evly1 = evol manu 'T' ltmpt8 'YOUN' lyoun1 ;                          
evly2 = evol manu 'T' ltmpt8 'YOUN' lyoun2 ; 
evly_in = evly1 et evly2 ;

* seuil elasticite a 0,2%
ltmpt5 = prog 0. 28. 326. 604.      
         800.  1000. 1100. 1200. 1400. 1450. ;
lsigy2 = (prog 220. 220. 162. 140.
          106.  47. 26. 10. 1. 1.)*1.e6 ;
evsigy2 = evol manu 'T' ltmpt5 'SIGY' lsigy2 coul jaune ; 
lsigy1 = (prog 300. 300. 300.  250.
            80.  25. 5. 1. 1. 1. )*1.e6 ;                   
evsigy1 = evol manu 'T' ltmpt5 'SIGY' lsigy1 coul jaune ;  
evsy_in = evsigy1 et evsigy2 ;                     


l_h2 = (prog (0.01*100.) (0.01*100.) (0.01*100.) (0.01*100.) (0.02*100.) 
                (0.02*50) (0.01*10.) (0.01*1.))*1.e9 ;

l_h1 = (prog (0.08*195.) (0.02*215.) (0.02*215.) (0.01*215.) 
           (0.01*50.) (0.01*50.) (0.01*10.) (0.01*1.))*1.e9  ;            

ltmpt8 = prog 0. 100. 326. 604. 
              800. 1000. 1500. 2000. ;
evlh1 = evol manu 'T' ltmpt8 'H' l_h1 ;
evlh2 = evol manu 'T' ltmpt8 'H' l_h2 ;
evlh_in = evlh1 et evlh2 ;

    evlimp = EVOL MANU 'T' ltmpt8 'LIMP' (lyoun1 * 2.e-3) ;
* caracteristiques dependant de Tmax local    
mo_in = mode vm_1 mecanique elastique plastique cinematique fusion cons 'avec';
ca_in = mate mo_in youn evly_in nu 0.3 rho 7.8e9 alph al_in sigy evsy_in h evlh_in 
   talp 20. tref 20. tfus 1200. ;
 ca_xtma = mate mo_in xtma 20.;

mm_g1 = redu mo_in vm_g1 ;

************************************************************************
* 
cht_conv = manu chpo (extr m_conv mail) 'T' 20. ;
ev_conv = evol manu (prog 0. 2.e5) (prog 1. 1.) ;
ch_conv = char 'TECO' cht_conv  ev_conv ;

* 
bl_g2 = bloque sm_g2 depl ;
************************************************************************
t_s = table ;
 t_s . deplacements = table ; 
 t_s . temperatures = table ;
 t_s . contraintes = table ;
 t_s . variables_internes = table ;
 t_s . temps       = table ;
 t_s . caraxtma    = table ;
 
 si (ega jtest 'VRAI') ;
pdt = 1. ; i_s = -2 ; k_s = 1 ; dt_s = k_s * pdt ; t_ini = dt_s *(-1) ; Q_0 = 4.5e1;
 sinon ;
pdt = 1. ; i_s = -2 ; k_s = 10 ; dt_s = k_s * pdt ; t_ini = dt_s *(-1) ; Q_0 = 4.5e1;
 finsi ;
 
tem_u0 = manu chpo (extr moth_c mail) 'T' 20. nature diffus ;

n_s = nbele sec_d ;
repeter b_s n_s ;
  mess 'etape # : ' &b_s ;
 t_ini = t_ini + dt_s ;
 m_s = changer poi1 (elem sec_d &b_s) ;
 elim 1.e-4 m_s sec_g ;
*
t_cyl = table 'PASAPAS' ;
t_cyl . modele = moth_c et mo_in;
t_cyl . caracteristiques = cath_c et ca_in et ca_xtma ;
t_cyl . temperatures = table ;
t_cyl . temperatures . 0 = changer attribut tem_u0 nature diffus ;
 
* chargement flux thermique
 q_s = manu chpo m_s 'Q' (prog 1.2 1.2 1.2 1.4 0.2 0.2 0.2 1.4) nature discret ; q_s = q_s * Q_0 ;
   si (ega jtest 'VRAI') ;
     a_t = prog (t_ini + 1) ;
     ev_s = evol manu ((prog t_ini) et a_t et (prog (t_ini + dt_s + pdt) 2.e5)) (prog 0. 8. 0. 0.)  ;
   sinon ;
     a_t = prog (t_ini + 1) pas pdt (t_ini + dt_s) ;
 ev_s = evol manu ((prog t_ini) et a_t et (prog (t_ini + dt_s + pdt) 2.e5)) (prog 0. 7. 8. 9. 7. 6*3.5 0. 0.) ;
   finsi ;
 ch_q_s = char 'Q' q_s ev_s ;
*
 si (> &b_s 1) ;
   t_cyl . deplacements = table ;
   t_cyl . deplacements . 0 = changer attribut dep_u0 nature diffus ;
   t_cyl . contraintes = table ;
   t_cyl . contraintes . 0 = con_u ;
   t_cyl . variables_internes = table ;
   t_cyl . variables_internes . 0 = var_u ;
 finsi ;

 t_cyl . chargement = ch_q_s et ch_conv ;
 t_cyl . 'PROCEDURE_THERMIQUE' = DUPONT ;
 t_cyl . blocages_mecaniques = bl_g2    ;
 t_cyl . temps_calcules = a_t ;
 t_cyl . temps_sauves = prog (t_ini + dt_s) ;

 si (ega &b_s n_s) ;
 
  si (ega jtest 'VRAI') ;
    t_cyl . temps_calcules = a_t et 
    (prog (t_ini + dt_s + pdt) (t_ini + (100.*dt_s)) ) ;
  sinon ;
    t_cyl . temps_calcules = a_t et 
    (prog (t_ini + dt_s + pdt) pas (10.*pdt) (t_ini + (10.*dt_s))
                                            pas (100.*pdt) (t_ini + (100.*dt_s)) ) ;
  finsi ;
  t_cyl . temps_sauves = prog (t_ini + dt_s) (t_ini + (100.*dt_s));
 finsi ;
 
 
  pasapas t_cyl ;
  
*
  dep_u = copie t_cyl . deplacements . 1 ;
  dep_u = changer attribut dep_u nature discret ; 
   dep_u0 = dep_u - ((redu dep_u m_s) / 2.) ;
  tem_u = copie t_cyl . temperatures . 1 ;
  tem_u = changer attribut tem_u nature discret ;
   tem_u0 = tem_u - ((redu tem_u m_s) / 2.) ;
  con_u = copie t_cyl . contraintes . 1 ;
  var_u = copie t_cyl . variables_internes . 1 ;
  ca_xtma = copie t_cyl . wtable . xtma0 ;

 titre 'von mises contraintes  / temps : '  (t_ini + dt_s);
 vm_u = vmis con_u mo_in ;
 trac vm_u mo_in ;
 
 titre 'temperatures / temps :  ' (t_ini + dt_s);
* trac tem_u v_0 cach ;


 t_s . deplacements . &b_s = dep_u ; 
 t_s . temperatures . &b_s = tem_u ;
 t_s . contraintes . &b_s  = con_u ;
 t_s . variables_internes . &b_s = var_u ;
 t_s . temps . &b_s = t_ini + dt_s ;
 t_s . caraxtma . &b_s = ca_xtma ;


 si (< &b_s n_s) ;
  oublie t_cyl ;
 finsi ;
 si (ega &b_s n_s) ;
  i_f = &b_s + 1 ;
 t_s . deplacements . i_f =  copie t_cyl . deplacements . 2 ; 
 t_s . temperatures . i_f = copie t_cyl . temperatures . 2 ;
 t_s . contraintes . i_f  = copie t_cyl . contraintes . 2  ;
 t_s . variables_internes . i_f = copie t_cyl . variables_internes . 2 ;
 t_s . temps . i_f = t_ini + (100.*dt_s) ;
 t_s . caraxtma . i_f = ca_xtma ;

 titre 'von mises contraintes  / temps : '  (t_ini + (100.*dt_s)) ;
 vm_f = vmis t_cyl . contraintes . 2 mo_in ;
 trac vm_f mo_in ;
 
 titre 'temperatures / temps :  ' (t_ini + (100.*dt_s)) ;
 trac t_cyl . temperatures . 2 v_0 cach ;
 
 finsi ;
  
fin b_s ; 

************************************************************************
* calcul cyclique avec precontrainte
************************************************************************

cht_fa = manu chpo v_0 T 20. nature diffus ;
cha_fa = char 'T' cht_fa (evol manu (prog 0. 1.e4) (prog 1. 1.)) ;

* 
bl_g2 = bloque sm_g2 depl ;
bl_g2xy = bloque sm_g2 ux uy ;
bl_g2z = bloque sm_g2 uz;
cl_g2z = depi bl_g2z 1. ;

bl_d2z = bloque sm_d2 uz ;
bl_d2y = bloque sm_d2 uy ;
bl_d2x = bloque sm_d2 ux ; 
cl_d2x = depi bl_d2x 1. ;
cd2_z = nomc 'UX' (coor 3 sm_d2) ; cd2_z = cd2_z * (-1.) ; cd2_x = nomc 'UZ' (coor 1 sm_d2) ;
clr_d2x = depi bl_d2x cd2_z ; clr_d2z = depi bl_d2z cd2_x ;

* 
t_0 = 0. ; pdt2 = 1. ; dt_fa = 30. ; dt_1 = 20. ; 
prog_sin = sin (360.*((prog t_0 pas 1. dt_1)/dt_1)) ;
   prog_s9 = extr prog_sin (lect 1 pas 1 9) ; prog_s5 = extr prog_sin (lect 1 pas 1 5) ;
afa_t = prog t_0 pas 1. dt_fa ;

od21 = (prog 0.) et prog_sin et prog_s9 ; od21 = od21*2.e-3 ;
ev_d21 = evol manu afa_t od21 ;
od20 = (prog 0. 30*1.) *1.e-3 ; ev_d20 = evol manu afa_t od20 ;

og2 = (prog 0. pas 1. 4.) et (prog_sin + 1.) et (prog_s5 + 1.) ; og2 = og2 * 1.e-3 ; 
ev_g2 = evol manu afa_t og2 ;

cha_d20 = char 'DIMP' cl_d2x ev_d20 ;
cha_d21 = (char 'DIMP' clr_d2x ev_d21) et (char 'DIMP' clr_d2z ev_d21) ;
cha_g2 = char 'DIMP' cl_g2z ev_g2 ;
************************************************************************
t_fat = table 'PASAPAS' ;
t_fat . contraintes = table ;
 t_fat . contraintes . 0 = t_s . contraintes . 21 ;
t_fat . deplacements = table ;
 t_fat . deplacements . 0 = t_s . deplacements . 21 ;
t_fat . variables_internes = table ; 
 t_fat . variables_internes . 0 = t_s . variables_internes . 21 ;
 ca_xtma = t_s . caraxtma . 21 ; 
************************************************************************
t_fat . modele = mo_in;
t_fat . caracteristiques = ca_in et ca_xtma ;
t_fat . blocages_mecaniques = bl_g2xy et bl_g2z et bl_d2z et bl_d2y et bl_d2x ;
t_fat . chargement = cha_d20 et cha_d21 et  cha_fa et cha_g2 ;
t_fat . temps_calcules = afa_t ;

pasapas t_fat ;


vm_10 = vmis t_fat . contraintes . 10 mo_in ;
titre 'vmises cycle avec precontrainte / t = 10 ' ;
trac vm_10 mo_in ;
************************************************************************
* post fatigue
*   Critère de Dang Van
fm1 = 410.e6 * 0.9 ;
tm1 = 260.e6 * 0.9 ; 
beta_dv = tm1 ;
alpha_dv = (tm1 - (fm1 / 2)) / (fm1 / 3) ;
mess 'alpha_dv : ' alpha_dv ' / beta_dv : ' beta_dv ;
  
    CHE2 = 'MANU' 'CHML' mo_in 'APAP' -0.33 'BPAP' 8.e7
          'ADVK' (-1. * alpha_dv) 'BDVK' beta_dv'ASIN' -0.35 'BSIN' 8.2e7
          'ACRO' -0.36 'BCRO' 8.3e7 'A_DC' -0.37 'B_DC' 8.4e7
          'TYPE' 'CARACTERISTIQUES' 'STRESSES' ;  
            
chafa1 = char  t_fat . temps t_fat . contraintes ;
chfa1 = FATI mo_in chafa1 che2  ;
 titre ' etude fatigue avec precontrainte ' ;
trac mo_in chfa1 ;

  mm_d1 = redu mo_in vm_d1 ;    
  t_cod1 = table ; t_cod1 . 0 = redu t_fat . contraintes . 0 mm_d1 ;
    repeter b_r (dime t_fat . temps) ;
     i_r = &b_r - 1 ;
     t_cod1 . i_r = redu t_fat . contraintes . i_r mm_d1 ;
    fin b_r ;
  chafa_d1 = char t_fat . temps t_cod1 ;

cafa_dv = manu chml mm_d1 'ADVK' (-1. * alpha_dv) 'BDVK' beta_dv
    type 'caracteristiques' stresses ;
chfa_d1 = FATI mm_d1 chafa_d1 cafa_dv 'DVKP' 'SEUIL' -1. ;    
 
 titre ' critere Dang Van Papadopoulos ' ;   
trac mm_d1 chfa_d1 ;

 titre ' cycle p/tau Dang Van Papadopoulos ' ;   
ets181_p = extr chfa_d1 'PTAU' 1 8 1 ;

dess ets181_p ;
***********************************************************************

o_141026 = prog 3.37044E+07  3.37044E+07  3.36868E+07  3.26902E+07  3.08604E+07  3.36795E+07  3.33139E+07  3.25791E+07  3.16612E+07  3.08672E+07
  3.05616E+07  3.08937E+07  3.16186E+07  3.23604E+07  3.28464E+07  3.29374E+07  3.26114E+07  3.19595E+07  3.11992E+07  3.06763E+07
  3.07259E+07  3.13602E+07  3.11927E+07  3.19093E+07  3.25799E+07  3.30070E+07  3.36790E+07  3.33134E+07  3.25786E+07  3.16608E+07
  3.08668E+07 ;
  
err_26 =  (abs (maxi ((extr ets181_p ordo) - o_141026))) / (abs (maxi o_141026)) ;
  
  si (err_26 > 1.e-5) ; erre 5 ; sinon ; erre 0 ; finsi ;

fin ;

 

 

