Télécharger bgrcq4.eso

Retour à la liste

Numérotation des lignes :

bgrcq4
  1. C BGRCQ4 SOURCE CHAT 06/03/29 21:15:59 5360
  2. SUBROUTINE BGRCQ4(IGAU,XEL,SHPTOT,SHP,BGR,DJAC,EXCEN,NOPLAN,IARR)
  3. C |====================================================================|
  4. C | |
  5. C | CALCULER LA MATRICE DE GRADIENT BGR POUR COQ4 excentre ou non |
  6. C | CODE SUO X.Z. |
  7. C |====================================================================|
  8. C |INPUT |
  9. C | IGAU=NUMERO DU POINT DE GAUSS |
  10. C | NBNO=NOMBRE DE NOEUDS |
  11. C | LRE =NOMBRE DE COLONNES DE LA MATRICE BGR |
  12. C | XEL =COORDONNEES LOCALES DE L ELEMENT |
  13. C | SHPTOT(6,NBNO,NBGAU)=FONCTIONS DE FORMES ET DERIVEES |
  14. C | EXCEN=Excentrement de coque. |
  15. C | NOPLAN=1 si element non plan, |
  16. C | =0 sinon. |
  17. C | SHP=Fonctions de forme et derivees dans l'espace geometrique. |
  18. C |ZONE DE TRAVAIL |
  19. C | SHP(6,NBNO)=TABLEAU DE TRAVAIL |
  20. C |OUTPUT |
  21. C | DJAC=JACOBIEN |
  22. C | BGR(9,LRE)=MATRICE BGR |
  23. C |====================================================================|
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26. PARAMETER (LRE=24,NBNO=4)
  27. DIMENSION XEL(3,*),BGR(9,*),SHP(6,*),SHPTOT(6,NBNO,*)
  28. DIMENSION SHP7(4:5,NBNO),SHP8(4:5,NBNO)
  29. DATA ZER/0.D0/
  30. IARR=0
  31. *
  32. * Matrice jacobienne:
  33. *
  34. DO 110 I=1,NBNO
  35. SHP(1,I)=SHPTOT(1,I,IGAU)
  36. SHP(2,I)=SHPTOT(2,I,IGAU)
  37. SHP(3,I)=SHPTOT(3,I,IGAU)
  38. 110 CONTINUE
  39. DXDQSI = ZER
  40. DXDETA = ZER
  41. DYDQSI = ZER
  42. DYDETA = ZER
  43. DO 120 I=1,NBNO
  44. DXDQSI=DXDQSI+SHP(2,I)*XEL(1,I)
  45. DXDETA=DXDETA+SHP(3,I)*XEL(1,I)
  46. DYDQSI=DYDQSI+SHP(2,I)*XEL(2,I)
  47. DYDETA=DYDETA+SHP(3,I)*XEL(2,I)
  48. 120 CONTINUE
  49. DJAC=DXDQSI*DYDETA-DXDETA*DYDQSI
  50. IF(DJAC.LE. ZER) THEN
  51. IARR=1
  52. RETURN
  53. END IF
  54. *
  55. * Fonctions de forme dans l'espace geometrique
  56. *
  57. DQSIDX= DYDETA/DJAC
  58. DQSIDY=-DXDETA/DJAC
  59. DETADX=-DYDQSI/DJAC
  60. DETADY= DXDQSI/DJAC
  61. DO 130 I=1,NBNO
  62. TT=SHP(2,I)*DQSIDX+SHP(3,I)*DETADX
  63. SHP(3,I)=SHP(2,I)*DQSIDY+SHP(3,I)*DETADY
  64. SHP(2,I)=TT
  65. 130 CONTINUE
  66. C
  67. C CALCUL DE LA MATRICE BGR
  68. C
  69. CALL ZERO(BGR,9,LRE)
  70. N1 = 1
  71. N2 = 2
  72. DX1 = SHPTOT(2,N1,IGAU)*XEL(1,N1)+SHPTOT(2,N2,IGAU)*XEL(1,N2)
  73. DY1 = SHPTOT(2,N1,IGAU)*XEL(2,N1)+SHPTOT(2,N2,IGAU)*XEL(2,N2)
  74. N1 = 3
  75. N2 = 4
  76. DX2 = SHPTOT(2,N1,IGAU)*XEL(1,N1)+SHPTOT(2,N2,IGAU)*XEL(1,N2)
  77. DY2 = SHPTOT(2,N1,IGAU)*XEL(2,N1)+SHPTOT(2,N2,IGAU)*XEL(2,N2)
  78. N1 = 1
  79. N2 = 4
  80. DX3 = SHPTOT(3,N1,IGAU)*XEL(1,N1)+SHPTOT(3,N2,IGAU)*XEL(1,N2)
  81. DY3 = SHPTOT(3,N1,IGAU)*XEL(2,N1)+SHPTOT(3,N2,IGAU)*XEL(2,N2)
  82. N1 = 2
  83. N2 = 3
  84. DX4 = SHPTOT(3,N1,IGAU)*XEL(1,N1)+SHPTOT(3,N2,IGAU)*XEL(1,N2)
  85. DY4 = SHPTOT(3,N1,IGAU)*XEL(2,N1)+SHPTOT(3,N2,IGAU)*XEL(2,N2)
  86. *
  87. D2JAC = 2.D0 * DJAC
  88. *
  89. SHP7(4,1) = (- DYDETA*DY1 + DYDQSI*DY3) / D2JAC
  90. SHP7(4,2) = (- DYDETA*DY1 + DYDQSI*DY4) / D2JAC
  91. SHP7(4,3) = (- DYDETA*DY2 + DYDQSI*DY4) / D2JAC
  92. SHP7(4,4) = (- DYDETA*DY2 + DYDQSI*DY3) / D2JAC
  93. SHP7(5,1) = ( DYDETA*DX1 - DYDQSI*DX3) / D2JAC
  94. SHP7(5,2) = ( DYDETA*DX1 - DYDQSI*DX4) / D2JAC
  95. SHP7(5,3) = ( DYDETA*DX2 - DYDQSI*DX4) / D2JAC
  96. SHP7(5,4) = ( DYDETA*DX2 - DYDQSI*DX3) / D2JAC
  97. *
  98. SHP8(4,1) = ( DXDETA*DY1 - DXDQSI*DY3) / D2JAC
  99. SHP8(4,2) = ( DXDETA*DY1 - DXDQSI*DY4) / D2JAC
  100. SHP8(4,3) = ( DXDETA*DY2 - DXDQSI*DY4) / D2JAC
  101. SHP8(4,4) = ( DXDETA*DY2 - DXDQSI*DY3) / D2JAC
  102. SHP8(5,1) = (- DXDETA*DX1 + DXDQSI*DX3) / D2JAC
  103. SHP8(5,2) = (- DXDETA*DX1 + DXDQSI*DX4) / D2JAC
  104. SHP8(5,3) = (- DXDETA*DX2 + DXDQSI*DX4) / D2JAC
  105. SHP8(5,4) = (- DXDETA*DX2 + DXDQSI*DX3) / D2JAC
  106. *
  107. DO 300 I=1,NBNO
  108. K = 6*(I-1)
  109. IF (NOPLAN .EQ. 0) THEN
  110. BGR(1,K+1)=SHP(2,I)
  111. BGR(5,K+2)=SHP(3,I)
  112. BGR(1,K+5) = SHP(2,I) * EXCEN
  113. BGR(5,K+4) = -SHP(3,I) * EXCEN
  114. ENDIF
  115. BGR(7,K+3)=SHP(2,I)
  116. BGR(3,K+4) = SHP7(4,I)
  117. BGR(3,K+5) = SHP7(5,I)
  118. BGR(8,K+3)=SHP(3,I)
  119. BGR(6,K+4) = SHP8(4,I)
  120. BGR(6,K+5) = SHP8(5,I)
  121. *
  122. IF (.NOT. (IGAU .LE. 4)) THEN
  123. BGR(1,K+1)=SHP(2,I)
  124. BGR(5,K+2)=SHP(3,I)
  125. BGR(1,K+5) = SHP(2,I) * EXCEN
  126. BGR(5,K+4) = -SHP(3,I) * EXCEN
  127. BGR(2,K+1)=SHP(3,I)
  128. BGR(4,K+2)=SHP(2,I)
  129. BGR(4,K+4) = -SHP(2,I) * EXCEN
  130. BGR(2,K+5) = SHP(3,I) * EXCEN
  131. ENDIF
  132. 300 CONTINUE
  133. *
  134. * On finit de completer la matrice BGR, pour les contraintes ou
  135. * les deformations, par des valeurs calculees au centre:
  136. *
  137. IF (IGAU .LE. 4) THEN
  138. DO 500 I=1,NBNO
  139. SHP(1,I)=SHPTOT(1,I, 5 )
  140. SHP(2,I)=SHPTOT(2,I, 5 )
  141. SHP(3,I)=SHPTOT(3,I, 5 )
  142. 500 CONTINUE
  143. *
  144. * FONCTIONS DE FORME DANS LA GEOMETRIE REELLE:
  145. *
  146. CALL JACOBI(XEL,SHP,2,NBNO,DJAC5)
  147. IF(DJAC5 .LE. ZER) THEN
  148. IARR=1
  149. RETURN
  150. END IF
  151. *
  152. DO 520 I=1,NBNO
  153. K = 6*(I-1)
  154. IF (NOPLAN .EQ. 1) THEN
  155. BGR(1,K+1)=SHP(2,I)
  156. BGR(5,K+2)=SHP(3,I)
  157. BGR(1,K+5) = SHP(2,I) * EXCEN
  158. BGR(5,K+4) = -SHP(3,I) * EXCEN
  159. ENDIF
  160. BGR(2,K+1)=SHP(3,I)
  161. BGR(4,K+2)=SHP(2,I)
  162. BGR(4,K+4) = -SHP(2,I) * EXCEN
  163. BGR(2,K+5) = SHP(3,I) * EXCEN
  164. 520 CONTINUE
  165. ENDIF
  166. RETURN
  167. END
  168.  
  169.  
  170.  
  171.  

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