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

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