Télécharger wl2d3d.eso

Retour à la liste

Numérotation des lignes :

wl2d3d
  1. C WL2D3D SOURCE FD218221 24/02/07 21:15:30 11834
  2. subroutine wl2d3d(istep,vmax,vref,sig3p,eweb,rt,cwrt,
  3. # xwl2,tau_trac_wl2,dtl0,dtl1,mxwl,tau_trac_wl2_max,bw,pw,kwrt)
  4.  
  5. c traitement de rt par methode wl2
  6.  
  7. c tables de dimension fixe pour resolution des sytemes lineaires
  8. implicit real*8 (a-h,o-z)
  9. implicit integer (i-n)
  10.  
  11. c variables externes
  12. integer istep
  13. real*8 vmax,vref,eweb,rtref,cwrt,xwl2,tau_trac_wl2
  14. real*8 dtm,mxwl
  15. real*8 sig3p(3),cwrtmin,bw,pw,kwrt,cwrt0,cwrt1,dtl0,dtl1
  16.  
  17. c variables locales
  18. real*8 precs,dtm_seuil
  19. c dtm_seuil : seuil d endo localise mini pour fixer cwrt
  20. parameter(precs=1.0d-5,dtm_seuil=1.0d-3)
  21. real*8 spetit,rt_reff,rpetit,tau_trac_wl2_max
  22. real*8 tau_trac_wl2_eff,tpetit,coef_nl
  23.  
  24.  
  25. c resistance de reference isotrope
  26. rt_reff=rt/cwrt
  27. c coeff non local pour le tau de chragement
  28. coef_nl=rt_reff/rt
  29. c valeur minimales par défaut
  30. rpetit=precs*rt_reff
  31. spetit=rpetit
  32. tpetit=precs
  33. xpetit=vmax*(precs**eweb)
  34.  
  35. if((istep.eq.1).or.(istep.eq.3)) then
  36. c 1er etape non locale : preparation xwl2 a moyenner
  37. c rt(i) est ramené à sa valeur de reference pour la recherche
  38. c du taux de chragement le plus grand de façon à faire
  39. c abstraction du cwrt precedent mais pas des dependances
  40. c physico-chimiques
  41. tau_trac_wl2=tau_trac_wl2/coef_nl
  42. c variable à moyenner en non local
  43. c (1-dtm) permet d integrer proportionnellement à la zone
  44. c saine residuelle associee au point de Gauss
  45. xwl2=vmax*(tau_trac_wl2**eweb)*(1.d0-dtl1)
  46. c print*,istep,tau_trac_wl2,xwl2,cwrt
  47.  
  48. else if( istep.ge.2) then
  49. c 2eme etape non locale si les donnees sont coherentes
  50. if((vref.ne.0.).and.(vmax.ne.0.).and.(eweb.ne.0.)) then
  51. c 2eme etape non locale : calcul de cwrt
  52. c ----- hypothese du tau de traction local -------------------
  53. c tau_trac_wl2_eff=tau_trac_wl2
  54. c ----- hypothese du taux de traction maximum de la structure-
  55. tau_trac_wl2_eff=tau_trac_wl2_max
  56. c ------------------------------------------------------------
  57. c xm inverse du module de Weibull 1/m (eweb=exp de Weibull)
  58. xm=1.d0/eweb
  59. c calcul de l effet d echelle extreme pour wl2
  60. cwrtmin=(vref/vmax)**xm
  61. c calcul de rt effectif suivant methode Wl2
  62. if((xwl2.ge.xpetit).and.
  63. # (tau_trac_wl2_eff.ge.tpetit)) then
  64. c cas normal, structure significativement chargee
  65. c print*,'ds wl2d3d xwl2:',xwl2
  66. c rt estime avec formule de Weibull
  67. cwrt1=tau_trac_wl2_eff*(vref/xwl2)**xm
  68. c print*,'evaluation cwrt istep2',cwrt
  69. else if ((xwl2.ge.xpetit).and.
  70. # (tau_trac_wl2_eff.lt.tpetit)) then
  71. c la structure est faiblement chargee
  72. cwrt1=tpetit*(vref/xwl2)**xm
  73. else if ((xwl2.lt.xpetit).and.
  74. # (tau_trac_wl2_eff.ge.tpetit)) then
  75. c la zone chargee est tres petite par rapport a vmax
  76. cwrt1=tau_trac_wl2_eff*(vref/xpetit)**xm
  77. else
  78. c la structure n est pas chargee, elle est
  79. c alors consideree uniformement chargee
  80. cwrt1=cwrtmin
  81. end if
  82. c calcul du cwrt du point de gauss en ponderant par l endo
  83. c ancien cwrt
  84. cwrt0=cwrt
  85. c nouveau cwrt actualise
  86. if(dtl1.gt.dtl0) then
  87. cwrt=(dtl0*cwrt0+(dtl1-dtl0)*cwrt1)/dtl1
  88. else
  89. if(dtl0.gt.dtm_seuil) then
  90. c en l abscence d evolution de dt on conserve la valeur
  91. cwrt=cwrt0
  92. else
  93. c point non endommage on actualise
  94. cwrt=cwrt1
  95. end if
  96. end if
  97. if(cwrt.gt.10.) then
  98. print*,'xwl2',xwl2
  99. print*,'mxwl',mxwl
  100. print*,'tau_trac_wl2',tau_trac_wl2
  101. print*,'tau_trac_wl2_eff',tau_trac_wl2_eff
  102. print*,'cwrt min',tpetit*(vref/xpetit)**xm
  103. print*,'cwrt',cwrt1
  104. c read*
  105. end if
  106. else
  107. c les donnees sont incoherentes on ne prend pas
  108. c d effet d echelle
  109. cwrt=1.d0
  110. end if
  111. c stockage du taux de chargement non local
  112. tau_trac_wl2=tau_trac_wl2_eff
  113. c verif que cwrt n est pas nul
  114. cwrt=max(cwrtmin,cwrt)
  115. else
  116. c istep=0 : pas d effet d echelle
  117. cwrt=1.d0
  118. end if
  119. return
  120. end
  121.  
  122.  
  123.  
  124.  

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