Télécharger d2endp.eso

Retour à la liste

Numérotation des lignes :

d2endp
  1. C D2ENDP SOURCE CB215821 16/04/21 21:16:13 8920
  2.  
  3. SUBROUTINE DER2_ENERELAS_DPRAL(X,E,NDIMX,NMODEL)
  4. IMPLICIT INTEGER(I-N)
  5. integer nmodel,i,ndimx,j
  6. real*8 x(3),e(ndimx,ndimx),aux0,aux1,aux2,aux3,aux(3,3)
  7. real*8 you,xnu
  8. common /elasdata/ you,xnu
  9. real*8 kap,xmu,xmu1,alp1,xmu2,alp2,xmu3,alp3
  10. logical ogden
  11. common /elasdata_ogden/ kap,xmu,xmu1,alp1,xmu2,alp2,xmu3,alp3,
  12. . ogden
  13.  
  14. call zzero(e,ndimx*ndimx)
  15. if (ogden) goto 10
  16. c Modelo cuadratico
  17. aux0=you/((1.D0+xnu)*(1.D0-2.D0*xnu))
  18. aux1=(1.D0-xnu)*aux0
  19. aux2=xnu*aux0
  20. aux3=you/(2.D0*(1.D0+xnu))
  21. do i=1,3
  22. E(i,i)=aux1
  23. enddo
  24. E(1,2)=aux2
  25. E(1,3)=aux2
  26. E(2,1)=aux2
  27. E(2,3)=aux2
  28. E(3,1)=aux2
  29. E(3,2)=aux2
  30. if (ndimx.eq.4) E(4,4)=1.D0
  31. c hacer desviador para VMT
  32. if (nmodel.eq.8) goto 20
  33. return
  34. c Modelo ogden
  35. 10 continue
  36. do i=1,3
  37. aux(i,1)=EXP(x(i))
  38. enddo
  39. e(1,1)=xmu*(xmu1*alp1*aux(1,1)**alp1+
  40. . xmu2*alp2*aux(1,1)**alp2+
  41. . xmu3*alp3*aux(1,1)**alp3)
  42. e(2,2)=xmu*(xmu1*alp1*aux(2,1)**alp1+
  43. . xmu2*alp2*aux(2,1)**alp2+
  44. . xmu3*alp3*aux(2,1)**alp3)
  45. e(3,3)=xmu*(xmu1*alp1*aux(3,1)**alp1+
  46. . xmu2*alp2*aux(3,1)**alp2+
  47. . xmu3*alp3*aux(3,1)**alp3)
  48. c desviador de columnas
  49. 20 continue
  50. do i=1,3
  51. call Desviador(e(1,i),aux(1,i),3)
  52. enddo
  53. c trasponer amat
  54. aux1 =aux(1,2)
  55. aux(1,2)=aux(2,1)
  56. aux(2,1)=aux1
  57. aux1 =aux(1,3)
  58. aux(1,3)=aux(3,1)
  59. aux(3,1)=aux1
  60. aux1 =aux(2,3)
  61. aux(2,3)=aux(3,2)
  62. aux(3,2)=aux1
  63. c desviador de columnas
  64. do i=1,3
  65. call Desviador(aux(1,i),e(1,i),3)
  66. enddo
  67. goto 100
  68. c Calculadas con derivacion, dan igual!
  69. call zzero(e,ndimx*ndimx)
  70. call der_enerelas_dpral(x,aux(1,1),nmodel)
  71. do j=1,3
  72. do i=1,3
  73. aux(i,2)=x(i)
  74. enddo
  75. aux(j,3)=max(x(j)*1.D-6,1.D-8)
  76. aux(j,2)=x(j)+aux(j,3)
  77. call der_enerelas_dpral(aux(1,2),e(1,j),nmodel)
  78. do i=1,3
  79. e(i,j)=(e(i,j)-aux(i,1))/aux(j,3)
  80. enddo
  81. enddo
  82. c
  83. 100 continue
  84. if (ndimx.eq.4) E(4,4)=1.D0
  85. return
  86. end
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  

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