Télécharger dohcis.eso

Retour à la liste

Numérotation des lignes :

dohcis
  1. C DOHCIS SOURCE CHAT 05/01/12 22:53:21 5004
  2. C
  3. SUBROUTINE DOHCIS(VELA,MATE,IFOU,LHOOK,DDHOOK,IRET)
  4. C
  5. C=======================================================================
  6. C
  7. C MATRICE DE HOOKE DES COQUES MINCES AVEC CISAILLEMENT TRANSVERSE
  8. C
  9. C ENTREES
  10. C VELA() = materiau dans un tableau de travail
  11. C MATE = Nom du materiau
  12. C IFOU = num{ro d'harmonique de fourier: IFOUR de CCOPTIO
  13. C LHOOK = taille de la matrice de hooke
  14. C
  15. C SORTIES
  16. C DDHOOK(LHOOK,LHOOK) = matrice de hooke
  17. C IRET = 1 si option existante 0 SINON
  18. C
  19. C Passage en nouveau CHAMELEM par I.Monnier le 4 05 90
  20. C=======================================================================
  21. C
  22. IMPLICIT INTEGER(I-N)
  23. IMPLICIT REAL*8(A-H,O-Z)
  24. PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0)
  25. PARAMETER(UN=1.D0,DEUX=2.D0)
  26. CHARACTER*8 MATE
  27. C
  28. DIMENSION VELA(*),DDHOOK(LHOOK,*)
  29. REAL*8 D3HOO1(3,3),D3HOO2(3,3),ROTHOO(3,3)
  30. REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)
  31. C
  32. IRET=1
  33. CALL ZERO(DDHOOK,LHOOK,LHOOK)
  34. C
  35. C MATERIAU ISOTROPE
  36. C
  37. IF(MATE.EQ.'ISOTROPE') THEN
  38. C
  39. C CAS TRIDIMENSIONNEL
  40. C
  41. IF(IFOU.EQ.2) THEN
  42. YOU =VELA(1)
  43. XNU =VELA(2)
  44. AUX=YOU/(UN-XNU*XNU)
  45. AUX1=AUX*XNU
  46. GEGE=YOU*UNDEMI/(UN+XNU)
  47. C
  48. DDHOOK(1,1)=AUX
  49. DDHOOK(2,1)=AUX1
  50. DDHOOK(1,2)=AUX1
  51. DDHOOK(2,2)=AUX
  52. DDHOOK(3,3)=GEGE
  53. C
  54. DDHOOK(4,4)=AUX
  55. DDHOOK(5,4)=AUX1
  56. DDHOOK(4,5)=AUX1
  57. DDHOOK(5,5)=AUX
  58. DDHOOK(6,6)=GEGE
  59. C
  60. DDHOOK(7,7)=GEGE/XK
  61. DDHOOK(8,8)=GEGE/XK
  62. ELSE
  63. IRET=0
  64. ENDIF
  65. C
  66. C MATERIAU ORTHOTROPE OU UNIDIRECTIONNEL
  67. C
  68. ELSE IF(MATE.EQ.'ORTHOTRO'.OR.
  69. 1 MATE.EQ.'UNIDIREC')THEN
  70. C
  71. C CAS TRIDIMENSIONNEL
  72. C
  73. IF(IFOU.EQ.2)THEN
  74. C
  75. IF(MATE.EQ.'ORTHOTRO')THEN
  76. YG1 = VELA(1)
  77. YG2 = VELA(2)
  78. XNU12 = VELA(3)
  79. G12 = VELA(4)
  80. G23 = VELA(5)
  81. G13 = VELA(6)
  82. COSA = VELA(7)
  83. SINA = VELA(8)
  84. C
  85. X1NUNU = UN - (XNU12**2) * YG2 / YG1
  86. D3HOO1(1,1) = YG1 / X1NUNU
  87. D3HOO1(2,2) = YG2 / X1NUNU
  88. D3HOO1(1,2) = XNU12 * D3HOO1(2,2)
  89. D3HOO1(2,1) = D3HOO1(1,2)
  90. D3HOO1(3,3) = G12
  91. D3HOO1(1,3) = XZER
  92. D3HOO1(2,3) = XZER
  93. D3HOO1(3,1) = XZER
  94. D3HOO1(3,2) = XZER
  95. C
  96. D2HOO1(1,1) = G13/XK
  97. D2HOO1(2,2) = G23/XK
  98. D2HOO1(1,2) = XZER
  99. D2HOO1(2,1) = XZER
  100. ELSE
  101. CALL ZERO(D3HOO1,3,3)
  102. CALL ZERO(D2HOO2,2,2)
  103. D3HOO1(1,1)=VELA(1)
  104. COSA=VELA(2)
  105. SINA=VELA(3)
  106. ENDIF
  107. C
  108. COS2 = COSA**2
  109. SIN2 = SINA**2
  110. SINCOS = SINA * COSA
  111. ROTHOO(1,1) = COS2
  112. ROTHOO(1,2) = SIN2
  113. ROTHOO(1,3) = SINCOS
  114. ROTHOO(2,1) = SIN2
  115. ROTHOO(2,2) = COS2
  116. ROTHOO(2,3) = - SINCOS
  117. ROTHOO(3,1) = - DEUX * SINCOS
  118. ROTHOO(3,2) = DEUX * SINCOS
  119. ROTHOO(3,3) = COS2 - SIN2
  120. C
  121. C PASSAGE DANS LE REPERE DE L'ELEMENT:
  122. CALL PRODT (D3HOO2,D3HOO1,ROTHOO,3,3)
  123. DO 400 J=1,3
  124. DO 400 I=1,3
  125. DDHOOK(I,J) = D3HOO2(I,J)
  126. DDHOOK(I+3,J+3) = D3HOO2(I,J)
  127. 400 CONTINUE
  128. C
  129. IF(MATE.EQ.'ORTHOTRO')THEN
  130. RO2HOO(1,1) = COSA
  131. RO2HOO(1,2) = SINA
  132. RO2HOO(2,1) = -SINA
  133. RO2HOO(2,2) = COSA
  134. CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)
  135. ENDIF
  136. DO 500 J=1,2
  137. DO 500 I=1,2
  138. DDHOOK(6+I,6+J) = D2HOO2(I,J)
  139. 500 CONTINUE
  140. C
  141. ELSE
  142. IRET=0
  143. ENDIF
  144. ELSE
  145. IRET=0
  146. ENDIF
  147. RETURN
  148. END
  149.  
  150.  

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