Télécharger fatsin-1d.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fatsin-1d.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *******************************************************************
  5. * *
  6. * TEST MATERIAU ENDOMMAGEMENT EN FATIGUE SINUSOIDALE *
  7. * *
  8. * *
  9. * EPROUVETTE EN FATIGUE UNIAXIALE PILOTE en DEPLACEMENT *
  10. * *
  11. * CONTRAINTES PLANES. *
  12. * *
  13. * LES RESULTATS OBTENUS SONT COMPARES A LA SOLUTION ANALYTIQUE *
  14. * *
  15. ******************************************************************* *
  16. * procédure de génération d'un signal alterné
  17. DEBPROC TR_PROG tps ;
  18. *donnant la liste des temps <tps> la procédure ressort
  19. * la liste des temps <tps> complétées des temps intérmédiaires
  20. * la liste du chargement <char> unitaire alterné en positi et négatif
  21. char = PROG (DIME tps) * 1. ;
  22. REPEter bouc (-1+(DIME tps)) ;
  23. tps = INSE tps (2*&bouc) (0.5*((EXTR tps (2*&bouc-1) )+
  24. (EXTR tps (2*&bouc) ))) ;
  25. char = INSE char (2*&bouc) -1 ;
  26. FIN bouc;
  27. FINPROC tps char ;
  28. *
  29. *opti echo 0 ;
  30.  
  31. GRAPH = FAUX ;
  32. *GRAPH = VRAI ;
  33. * ajout de option epsilon lineaire pour la precision des test!
  34. OPTION epsilon lineaire;
  35. opti dime 2 elem qua4 mode plan cont;
  36. densite 1.;
  37. p1=0. 0.;
  38. p2=1. 0.;
  39. p3=1. 1.;
  40. p4=0. 1.;
  41. d1=d p1 p2;d2=d p2 p3;d3=d p3 p4;d4=d p4 p1;
  42. surf1=daller d1 d2 d3 d4 plane;
  43.  
  44. * amplitude de deplacement (déformation)
  45. eps_a = 100.e-6 ;
  46.  
  47. ddldepl = 'UY' ;
  48. chargpt1 = P3 ;
  49. chargpt2 = P1 ;
  50.  
  51.  
  52. * test des deux lois en local et en non-local
  53. lst_loi = PROG 2. 3. 2. 3. ;
  54. lst_nloc = MOTS 'VRAI' 'VRAI' 'FAUX' 'FAUX' ;
  55. lst_err = PROG ;
  56.  
  57. REPEter bou9 (DIME lst_loi) ;
  58.  
  59.  
  60. loi = EXTR lst_loi &bou9 ;
  61.  
  62. SI ((&bou9 EGA 1) OU (&bou9 EGA 2)) ;
  63. NLOC1 = VRAI ;
  64. SINON;
  65. NLOC1 = FAUX ;
  66. FINSI ;
  67.  
  68. NLOCi = EXTR lst_nloc &bou9 ;
  69. tit_1 = CHAINE 'LOI ' loi ' - NON LOCAL = ' NLOCi ;
  70. MESSage tit_1 ;
  71.  
  72. **************************************************************
  73.  
  74. ** Longueur caractéristique pour les calculs non-locaux
  75. *NLOC1 = FAUX ;
  76. *NLOC1 = VRAI ;
  77. lcar1 = 18.e-3 ;
  78.  
  79. ****************************************************
  80. *données matériau
  81. yg=12.e9;
  82. poisson = 0.35 ;
  83. epsd0 = 0. ;
  84. *
  85. * Parametre loi d'endommagement en fatigue
  86. *
  87. beta= 4. ;
  88. *
  89. *loi = 3. ;
  90. *
  91. SI (loi EGA 2.);
  92. C = 2.87e12 ;
  93. alfa = -2.25 ;
  94. alfa1 = 0. ;
  95. alfa2 = 0. ;
  96. alfa3 = 0. ;
  97. SINON ;
  98. C = 0. ;
  99. alfa = 0. ;
  100. alfa1 = 5.58e-15 ;
  101. alfa2 = 0.42 ;
  102. alfa3 = 3.0 ;
  103. FINSI ;
  104.  
  105. *modèle de comportement
  106. MODmeca=mode surf1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'ENDOMMAGEMENT'
  107. FATSIN ;
  108. MATmeca=MATE MODmeca YOUN yg NU poisson RHO 2.3E+03
  109. 'KTR0' epsd0 'BETA' beta 'LOI ' loi
  110. 'C ' C 'ALFA' alfa
  111. 'ALF1' alfa1 'ALF2' alfa2 'ALF3' alfa3 'DIM3' 1.;
  112.  
  113. ********************************************************
  114. *evolution pour le chargement
  115. * nombre de cycle max
  116. N_max = 3e6 ;
  117. **** nb_calc = 30 ;
  118. nb_calc = 15 ;
  119.  
  120.  
  121. tps1=prog 0. pas (n_max/nb_calc) n_max ;
  122.  
  123. tps2 char1 = TR_PROG tps1 ;
  124.  
  125.  
  126. * conditions aux limites
  127. MESSage 'ESSAI PILOTE en DEPLACEMENT' ;
  128.  
  129. blo1=bloq ux p1;
  130. blo2=bloq uy d1;
  131. blo3=bloq uy d3;
  132. cltot=blo1 et blo2 et blo3 ;
  133. fo1 = depi blo3 eps_a ;
  134.  
  135. evol1=evol manu temps tps2
  136. depl char1;
  137. char1=charg evol1 fo1 DIMP;
  138.  
  139. * preparation des données pour PASAPAS
  140. tab1=table;
  141. tab1.mova='D ';
  142. tab1.blocages_mecaniques=cltot;
  143. tab1.caracteristiques=MATmeca;
  144. tab1.modele=MODmeca;
  145. tab1.chargement=char1;
  146. tab1.temps_calcules=tps2;
  147. tab1.temps_sauves=tps1;
  148. tab1.maxisouspas=1000;
  149.  
  150.  
  151. SI NLOC1 ;
  152. *construction ed la matrice de connectivité
  153. conn1 = CONN MODmeca lcar1 'NORMAL' 'INTERIEUR' ;
  154. conntot = conn1 ;
  155. *
  156. tab1 . 'NON_LOCAL' = 'MOT' 'MOYE' ;
  157. tab1 . 'LCAR' = lcar1 ;
  158. tab1 . 'CONN' = conntot ; ;
  159. * Grandeur moyennee
  160. tab1 . 'LVIAM' = (MOTS 'EPTI' ) ;
  161. FINSI ;
  162.  
  163. pasapas tab1;
  164.  
  165. ***************************************
  166. * Results post-treatment
  167. ***************************************
  168.  
  169. force1 = tab1.'REACTIONS';
  170.  
  171. ndim = DIME force1 ;
  172.  
  173. * list de réel de force
  174.  
  175. lis1 = PROG (YG * EPS_A) ;mess ' prem ';list lis1;
  176. REPETER BOUCL1 (ndim-1) ;
  177. forc1 = ABS (-1*(@TOTAL (force1 . (&BOUCL1)) d1 'FY'));
  178. lis1 = INSER lis1 (&BOUCL1+1) (forc1) ;
  179. FIN BOUCL1;
  180.  
  181. mess ' lis1 ' ;list lis1;
  182. lst_un = prog (DIME tps1) * 1. ;
  183. mess ' lst_un';list lst_un;
  184.  
  185. ** Resultat du calcul EF
  186. aaa = maxi lis1;
  187. ppp= prog (DIME tps1) * aaa;
  188. D_EFA = (lst_un-(lis1/(MAXI lis1))) ;
  189. D_EF=ABS (( ppp - lis1) / aaa);
  190.  
  191. ** solution analytique
  192.  
  193. def_t1 = ((eps_a**(beta+1))-(epsd0**(beta+1))) ;
  194. def_t1 = 0.5*(def_t1+(abs(def_t1))) ;
  195.  
  196. def_term = (def_t1 /(beta+1));
  197. SI (def_term EGA 0.) ;
  198. N_N = tps1 ;
  199. D_N = 0.*lst_un ;
  200.  
  201. SINON ;
  202. SI (loi EGA 2.);
  203. D_N = ( C*(1-alfa)*def_term*tps1)**(1/(1-alfa));
  204. N_N = tps1 ;
  205. SINON ;
  206. N_N = PROG ;
  207. D_N = PROG ;
  208. REPEter bou1 (DIME tps1) ;
  209. N_i = EXTR tps1 &bou1 ;
  210. N_1 = alfa1/def_term*(1-(EXP(-1.*(alfa2**(-1.*alfa3))))) ;
  211. SI (N_i < N_1) ;
  212. D_i = alfa2 *
  213. ((-1.*(LOG (1.-(def_term*N_i/alfa1))))**(1/(alfa3))) ;
  214. SINON ;
  215. D_i = 1.-1e-5 ;
  216. FINSI ;
  217. D_N = INSE D_N &bou1 D_i;
  218. N_N = INSE N_N &bou1 N_i;
  219. FIN bou1 ;
  220.  
  221. FINSI ;
  222. FINSI ;
  223. ev2=evol manu Cycles N_N
  224. Damage D_N 'COUL' 'ROUG' ;
  225.  
  226. ev1=evol manu Cycles tps1
  227. Damage D_EF 'COUL' 'VERT' ;
  228.  
  229.  
  230.  
  231. ev3 = evol manu 'Cycles' tps1
  232. 'Num-Analytique' (D_N-D_EF) ;
  233.  
  234.  
  235. Tdess = 'TABLE' ;
  236. Tdess . 1 = 'MOT' 'MARQ LOSA NOLI';
  237.  
  238. Tdess . 'TITRE' = 'TABLE' ;
  239. Tdess . 'TITRE' . 1 = 'MOT' 'Calcul EF';
  240. Tdess . 'TITRE' . 2 = 'MOT' 'Reference analytique' ;
  241.  
  242.  
  243. 'SI' GRAPH ;
  244. dess (ev1 et ev2) Tdess 'LEGE' Tdess 'TITR' tit_1 ;
  245. dess ev3 Tdess 'TITR' tit_1 ;
  246. 'FINSI' ;
  247. mess ' d_EF' ; list d_ef; mess ' d_n ' ; list d_n;
  248. zdn = 'MASQUE' d_n 'EGAL' 0.D0 ;
  249. udn = 'PROG' ('DIME' D_N) * 1.D0 ;
  250. mzdn = '-' udn zdn ;
  251. d_n2 = '+' ('*' d_n mzdn) ('*' udn zdn) ;
  252. qqq= abs( (D_EF - D_N)/D_N2); mess ' err ' ; list qqq;
  253. err1=maxi (abs( (D_EF - D_N)/D_N2));
  254.  
  255. lst_err = INSE lst_err &bou9 err1 ;
  256.  
  257. FIN bou9 ;
  258.  
  259.  
  260.  
  261. *comparaison des deux resultats
  262. *
  263.  
  264. list lst_err ;
  265. err1 = maxi (lst_err) ;
  266. temps;
  267. si (err1 < 1.e-10);
  268. ERRE 0;
  269. sinon ;
  270. ERRE 5;
  271. finsi;
  272. fin;
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281. *
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales