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.  
  107. SI NLOC1 ;
  108. MODmeca=mode surf1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'ENDOMMAGEMENT'
  109. FATSIN 'NON_LOCAL' 'MOYE' 'V_MOYENNE' (MOTS 'EPTI') ;
  110. SINON;
  111. MODmeca=mode surf1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'ENDOMMAGEMENT'
  112. FATSIN ;
  113. FINSI;
  114.  
  115. MATmeca=MATE MODmeca YOUN yg NU poisson RHO 2.3E+03
  116. 'KTR0' epsd0 'BETA' beta 'LOI ' loi
  117. 'C ' C 'ALFA' alfa
  118. 'ALF1' alfa1 'ALF2' alfa2 'ALF3' alfa3 'DIM3' 1.;
  119.  
  120. ********************************************************
  121. *evolution pour le chargement
  122. * nombre de cycle max
  123. N_max = 3e6 ;
  124. **** nb_calc = 30 ;
  125. nb_calc = 15 ;
  126.  
  127.  
  128. tps1=prog 0. pas (n_max/nb_calc) n_max ;
  129.  
  130. tps2 char1 = TR_PROG tps1 ;
  131.  
  132.  
  133. * conditions aux limites
  134. MESSage 'ESSAI PILOTE en DEPLACEMENT' ;
  135.  
  136. blo1=bloq ux p1;
  137. blo2=bloq uy d1;
  138. blo3=bloq uy d3;
  139. cltot=blo1 et blo2 et blo3 ;
  140. fo1 = depi blo3 eps_a ;
  141.  
  142. evol1=evol manu temps tps2
  143. depl char1;
  144. char1=charg evol1 fo1 DIMP;
  145.  
  146. * preparation des données pour PASAPAS
  147. tab1=table;
  148. tab1.mova='D ';
  149. tab1.blocages_mecaniques=cltot;
  150. tab1.caracteristiques=MATmeca;
  151. tab1.modele=MODmeca;
  152. tab1.chargement=char1;
  153. tab1.temps_calcules=tps2;
  154. tab1.temps_sauves=tps1;
  155. tab1.maxisouspas=1000;
  156.  
  157.  
  158. SI NLOC1 ;
  159.  
  160.  
  161. MATmeca=MATMECA ET ( MATE MODMECA 'LCAR' LCAR1) ;
  162. *construction ed la matrice de connectivité
  163. conn1 = CONN MODmeca LCAR1 'NORMAL' 'INTERIEUR' ;
  164. conntot = conn1 ;
  165. *
  166. tab1 . 'CONN' = conntot ; ;
  167. * Grandeur moyennee
  168. FINSI ;
  169.  
  170. pasapas tab1;
  171.  
  172. ***************************************
  173. * Results post-treatment
  174. ***************************************
  175.  
  176. force1 = tab1.'REACTIONS';
  177.  
  178. ndim = DIME force1 ;
  179.  
  180. * list de réel de force
  181.  
  182. lis1 = PROG (YG * EPS_A) ;mess ' prem ';list lis1;
  183. REPETER BOUCL1 (ndim-1) ;
  184. forc1 = ABS (-1*(@TOTAL (force1 . (&BOUCL1)) d1 'FY'));
  185. lis1 = INSER lis1 (&BOUCL1+1) (forc1) ;
  186. FIN BOUCL1;
  187.  
  188. mess ' lis1 ' ;list lis1;
  189. lst_un = prog (DIME tps1) * 1. ;
  190. mess ' lst_un';list lst_un;
  191.  
  192. ** Resultat du calcul EF
  193. aaa = maxi lis1;
  194. ppp= prog (DIME tps1) * aaa;
  195. D_EFA = (lst_un-(lis1/(MAXI lis1))) ;
  196. D_EF=ABS (( ppp - lis1) / aaa);
  197.  
  198. ** solution analytique
  199.  
  200. def_t1 = ((eps_a**(beta+1))-(epsd0**(beta+1))) ;
  201. def_t1 = 0.5*(def_t1+(abs(def_t1))) ;
  202.  
  203. def_term = (def_t1 /(beta+1));
  204. SI (def_term EGA 0.) ;
  205. N_N = tps1 ;
  206. D_N = 0.*lst_un ;
  207.  
  208. SINON ;
  209. SI (loi EGA 2.);
  210. D_N = ( C*(1-alfa)*def_term*tps1)**(1/(1-alfa));
  211. N_N = tps1 ;
  212. SINON ;
  213. N_N = PROG ;
  214. D_N = PROG ;
  215. REPEter bou1 (DIME tps1) ;
  216. N_i = EXTR tps1 &bou1 ;
  217. N_1 = alfa1/def_term*(1-(EXP(-1.*(alfa2**(-1.*alfa3))))) ;
  218. SI (N_i < N_1) ;
  219. D_i = alfa2 *
  220. ((-1.*(LOG (1.-(def_term*N_i/alfa1))))**(1/(alfa3))) ;
  221. SINON ;
  222. D_i = 1.-1e-5 ;
  223. FINSI ;
  224. D_N = INSE D_N &bou1 D_i;
  225. N_N = INSE N_N &bou1 N_i;
  226. FIN bou1 ;
  227.  
  228. FINSI ;
  229. FINSI ;
  230. ev2=evol manu Cycles N_N
  231. Damage D_N 'COUL' 'ROUG' ;
  232.  
  233. ev1=evol manu Cycles tps1
  234. Damage D_EF 'COUL' 'VERT' ;
  235.  
  236.  
  237.  
  238. ev3 = evol manu 'Cycles' tps1
  239. 'Num-Analytique' (D_N-D_EF) ;
  240.  
  241.  
  242. Tdess = 'TABLE' ;
  243. Tdess . 1 = 'MOT' 'MARQ LOSA NOLI';
  244.  
  245. Tdess . 'TITRE' = 'TABLE' ;
  246. Tdess . 'TITRE' . 1 = 'MOT' 'Calcul EF';
  247. Tdess . 'TITRE' . 2 = 'MOT' 'Reference analytique' ;
  248.  
  249.  
  250. 'SI' GRAPH ;
  251. dess (ev1 et ev2) Tdess 'LEGE' Tdess 'TITR' tit_1 ;
  252. dess ev3 Tdess 'TITR' tit_1 ;
  253. 'FINSI' ;
  254. mess ' d_EF' ; list d_ef; mess ' d_n ' ; list d_n;
  255. zdn = 'MASQUE' d_n 'EGAL' 0.D0 ;
  256. udn = 'PROG' ('DIME' D_N) * 1.D0 ;
  257. mzdn = '-' udn zdn ;
  258. d_n2 = '+' ('*' d_n mzdn) ('*' udn zdn) ;
  259. qqq= abs( (D_EF - D_N)/D_N2); mess ' err ' ; list qqq;
  260. err1=maxi (abs( (D_EF - D_N)/D_N2));
  261.  
  262. lst_err = INSE lst_err &bou9 err1 ;
  263.  
  264. FIN bou9 ;
  265.  
  266.  
  267.  
  268. *comparaison des deux resultats
  269. *
  270.  
  271. list lst_err ;
  272. err1 = maxi (lst_err) ;
  273. temps;
  274. si (err1 < 1.e-10);
  275. ERRE 0;
  276. sinon ;
  277. ERRE 5;
  278. finsi;
  279. fin;
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288. *
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  

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