Télécharger rela3d.eso

Retour à la liste

Numérotation des lignes :

rela3d
  1. C RELA3D SOURCE FD218221 24/02/07 21:15:25 11834
  2. subroutine rela3d(xmat,nmat,vnmat,nstype,nbelas,var0,varf,
  3. # nvari,vnvari,ndtens,ierr1,iso,cflux3,raideur66,sigm03,VS33)
  4.  
  5. c relaxation visco elastique des contraintes et deformations
  6. c associees pour un ecoulement sans increment de deformation
  7.  
  8. c declarations externes
  9. implicit integer(i-n)
  10. implicit real*8(a-h,o-z)
  11.  
  12. logical iso
  13. integer nmat,nstype,nbelas,nvari,ndtens,ierr1
  14. integer vnvari(nstype,2)
  15. integer VNMAT(NSTYPE)
  16. real*8 xmat(nmat),var0(nvari),varf(nvari)
  17. real*8 sigm03(3)
  18. real*8 cflux3(NSTYPE,3),raideur66(6,6),psi
  19. real*8 VS33(3,3)
  20.  
  21. c var locales
  22. real*8 de3(4,3),E3(3),E33(3,3),O333(3,3,3),V33(3,3)
  23. integer nE
  24. real*8 X3(3),X33(3,3),X6(6),DX3(3)
  25. real*8 K3(3),K33(3,3),K6(6),Kp6(6)
  26. integer nX,nK
  27. real*8 sigm06(6),xp6(6),TE33(3,3),sig33(3,3)
  28.  
  29. call xmat3d(psi,xmat,nmat,vnmat,nstype,nbelas,4,2)
  30. c pour les deformations viscoelastique on prend varf qui ont
  31. c deja ete actualise par hydr
  32. call tvar3d(E3,E33,nE,varf,nvari,vnvari,nstype,ndtens,1,1)
  33. call tvar3d(K3,K33,nK,varf,nvari,vnvari,nstype,ndtens,4,1)
  34. call x12x6(K3,K33,K6)
  35. call chrep6(K6,E33,.false.,Kp6)
  36. c increments des deformations viscoelastiques dues aux deformations initiales
  37. do i=1,3
  38. de3(2,i)=cflux3(2,i)*E3(i)
  39. de3(3,i)=cflux3(3,i)*E3(i)
  40. de3(4,i)=cflux3(4,i)*(E3(i)-psi*Kp6(i))
  41. de3(1,i)=-(de3(4,i)+de3(3,i)+de3(2,i))
  42. end do
  43. c variations des contraintes dues a la relaxation visqueuse
  44. if(iso) then
  45. do i=1,3
  46. do j=1,3
  47. sigm03(i)=sigm03(i)+raideur66(i,j)*de3(1,j)
  48. end do
  49. end do
  50. else
  51. c on se met dans la direction principale des deformations elastiques
  52. call x12x6(sigm03,VS33,sigm06)
  53. call chrep6(sigm06,E33,.false.,xp6)
  54. c ajout des increments dues a la relaxation
  55. do i=1,6
  56. do j=1,3
  57. xp6(i)=xp6(i)+raideur66(i,j)*de3(1,j)
  58. end do
  59. end do
  60. c retour de contraintes en base fixe
  61. call traps1(TE33,E33,3)
  62. call chrep6(xp6,TE33,.false.,sigm06)
  63. c nouvelle base principale des contraintes
  64. call x6x33(sigm06,sig33)
  65. call b3_v33(sig33,sigm03,VS33)
  66. end if
  67.  
  68. c mise a jour des variables internes
  69.  
  70. c tenseurs d orientation des increments principaux i.e celui de epse
  71. call orie3d(E33,O333)
  72.  
  73. c actualisation des deformations
  74. c print*,'varf(10) avant actualisation ds rela3d',varf(10)
  75. do ityp=1,4
  76. c print*,'ds rela3d ityp',ityp
  77. do i=1,3
  78. dx3(i)=de3(ityp,i)
  79. c print*,'increment ',ityp,i,dx3(i)
  80. end do
  81. c print*,'orientation utilisee',O333
  82. call majt3d(DX3,O333,varf,nvari,vnvari,nstype,
  83. # ndtens,ityp,1)
  84. end do
  85. c print*,'ds rela3d varf(10) apres actualisation ds rela3d',
  86. c # varf(10)
  87. return
  88. end
  89.  
  90.  

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