Télécharger HMATREN.INC

Retour à la liste

Numérotation des lignes :

  1. c nombre de renforts anisotropes reparties (min 0, max 6)
  2. NRENF00=INT(MAX(XMAT(NMAT1),0.D0) )
  3.  
  4. c ********** recuperation des paramtres des renforts repartis ******
  5.  
  6. c print*,'fluendo3d : nbre de renforts repartis:',NRENF00
  7. if(NRENF00.gt.0) then
  8. if(NRENF00.gt.NB_RENF) then
  9. c nre maxi de renforts : NB_RENF
  10. c nbre de parametres par renforts : NB_PARA_PAR_RENF
  11. print*,'Nbre de renforts repartie insuffisant dans '
  12. print*,'./nombre_renforts.h(NBRREN.INC)'
  13. print*,'Nombre min de renforts necessaire:',NRENF00
  14. ierr1=1
  15. return
  16. end if
  17. do i=1,NRENF00
  18. c taux de renforts elestoplastiques dans 3 direction
  19. rhor(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+1)
  20. c diametre equivalent des renforts
  21. deqr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+2)
  22. c module d Young des renforts passifs
  23. yor(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+3)
  24. c limite elastique des renforts
  25. syr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+4)
  26. c cisaillement maxi renfort matrice
  27. taur(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+5)
  28. c direction projete axe base fixe 1
  29. vecr(i,1)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+6)
  30. c direction projete axe base fixe 1
  31. vecr(i,2)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+7)
  32. c direction projete axe base fixe 1
  33. vecr(i,3)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+8)
  34. c verif / normalisation vecteur direction
  35. vnorm=vecr(i,1)**2+vecr(i,2)**2+vecr(i,3)**2
  36. vnorm=sqrt(vnorm)
  37. if(vnorm.eq.0.) then
  38. c il manque la direction du renfort
  39. print*,'Donner la direction du renfort:', i
  40. ierr1=1
  41. return
  42. else if (vnorm.ne.1.) then
  43. c normalisation du vecteur direction
  44. do j=1,3
  45. vecr(i,j)=vecr(i,j)/vnorm
  46. end do
  47. end if
  48. c do j=1,3
  49. c print*,'fluendo3d verc(',i,j,')=',vecr(i,j)
  50. c end do
  51. c module d ecrouissage cinematique des armatures
  52. hplr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+9)
  53. c temps caracteristique de fluage/relaxation
  54. tor(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+10)
  55. c deformation caracteristique de fluage relaxation
  56. ekr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+11)
  57. c contrainte caracteristique de la loi de relaxation/ fluage
  58. skr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+12)
  59. c energie d'activation de reference pour la relaxation
  60. ATRR(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+13)
  61. c coeff de couplage thermo-mecanique pour la relaxation
  62. gamr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+14)
  63. c coeff de non lineraite mecanique de la relaxation
  64. khir(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+15)
  65. c precontrainte imposee
  66. sprec(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+16)
  67. c precontrainte fin de pas
  68. spref(i)=sprec(i)
  69. c temperature de reference armature
  70. ttaref(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+17)
  71. c exposant de loi d'activation thermique
  72. xnr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+18)
  73. c taux de chargement a partir duquel l activation therm depend du chargement
  74. xmuthr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+19)
  75. c temps caracteristique de kelvin pour les renforts
  76. tokr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+20)
  77. c rapport Ekelvin/Eelastique pour les renforts
  78. yksyr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+21)
  79. c limite ultime en traction du renfort
  80. sur(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+22)
  81. if(sur(i).eq.0.) then
  82. sur(i)=1.1*syr(i)
  83. end if
  84. c deformation ultime du renfort (debut de localisation)
  85. epu(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+23)
  86. if(epu(i).eq.0.) then
  87. epu(i)=0.07
  88. end if
  89. c energy de rupture du renfort
  90. wpr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+24)
  91. if(wpr(i).eq.0.) then
  92. wpr(i)=1.d0
  93. end if
  94. c module de cisaillement de l interface du renfort
  95. Hintr(i)=xmat(NMAT2+NB_PARA_PAR_RENF*(i-1)+25)
  96. c le renfort est il traite en non local ?
  97. c pour les renforts le non local est sur SHR(i) de numero:
  98. ivarnl=NVAR2+(i-1)*NB_VARI_PAR_RENF+26
  99. call exhmtz(istep,NBVIA3D,INLVIA3D,NB_HELM,
  100. # ivarnl,log_H_RENF(i),Num_H_RENF(i))
  101. end do
  102. else
  103. c on teste tout de même l existence de non local renfort
  104. do i=NRENF00+1,NB_RENF
  105. ivarnl=NVAR2+(i-1)*NB_VARI_PAR_RENF+26
  106. call exhmtz(istep,NBVIA3D,INLVIA3D,NB_HELM,
  107. # ivarnl,log_H_RENF(i),Num_H_RENF(i))
  108. if(log_H_RENF(i)) then
  109. print*,'Dans charge_materiaux_renforts.h (MATREN.INC)'
  110. print*,'Helmholtz pour un renfort et pas de renfort'
  111. ierr1=1
  112. return
  113. end if
  114. end do
  115. end if
  116.  

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