Télécharger cqtgr2.eso

Retour à la liste

Numérotation des lignes :

cqtgr2
  1. C CQTGR2 SOURCE CB215821 26/08/24 21:15:56 12622
  2. SUBROUTINE CQTGR2(XE,NBNN,NBPGAU,LRE,EPAIST,DZEGAU,SHPCOQ,
  3. 1 SHPELE,XDDL,XDDL1,GRADI)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. C |=====================================================================
  7. C | SOUS-PROGRAMME DE L'OPERATEUR GRADIENT (APPELE PAR GRAD1)
  8. C | CALCUL DU GRADIENT DE TEMPERATURE POUR LES ELEMENT COQ4,COQ6,COQ8
  9. C |== ENTREES
  10. C | XX(3,NBNN): TABLEAU DES COORDONNEES DES NOEUDS
  11. C | NBNN : NOMBRE DE NOUDS
  12. C | NBPGAU : NOMBRE DE POINTS DE GAUSS
  13. C | LRE : NOMBRE DE DDL
  14. C | EPAIST : EPAISSEUR DE LA COQUE
  15. C | DZEGAU(NBPGAU): COORDONNEES REDUITES DES POIN
  16. C | DE GAUSS DANS L EPAISSEUR
  17. C | SHPCOQ(6,NBNN,NBPGAU) :FONCTIONS DE FORME ET DERIVEES
  18. C | AUX POINTS DE GAUSS
  19. C | SHPELE(6,NBNN,NBNN) :FONCTIONS DE FORME ET DERIVEES AUX NOEUDS
  20. C | XDDL(LRE): TEMPERATURES AU NOEUDS
  21. C | XDDL1(LRE): TABLEAU DE TRAVAIL
  22. C |== SORTIES
  23. C | GRADI(2*NBPGAU):2 TERMS DE GRADIANT AUX NBPGAU POINTS DE GAUSS
  24. C | AUTEUR : P. DOWLATYARI 30/5/91
  25. C |=====================================================================
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. DIMENSION DZEGAU(*),SHPCOQ(6,NBNN,*),SHPELE(6,NBNN,*)
  30. DIMENSION XE(3,*),GRADI(*),XDDL(*),XDDL1(*)
  31. DIMENSION TXR(3,3,8),BGR(2,24),TH(8),TT(9),EXC(8)
  32. DIMENSION XJ(3,3),XJI(3,3)
  33. PARAMETER (XZERO=0.D0,UN=1.D0,DEUX=2.D0)
  34. C
  35. C CALCUL DES AXES LOCAUX A TOUS LES NOEUDS
  36. C
  37. CALL CQ8LOC(XE,NBNN,SHPELE,TXR,IRR)
  38. IF(IRR.EQ.0)THEN
  39. CALL ERREUR(515)
  40. RETURN
  41. ENDIF
  42. C
  43. DO 10 I=1,NBNN
  44. TH(I)=EPAIST
  45. EXC(I)=0.D0
  46. 10 CONTINUE
  47. C
  48. C ON REORDONNE LES COMPOSANTES DE TEMPERATURES ET ON
  49. C LES MET DANS XDDL1
  50. C
  51. DO 11 I=1,LRE
  52. JJ=(I-1)/NBNN
  53. KK=I-JJ*NBNN
  54. II=(KK-1)*3+JJ+1
  55. XDDL1(I)=XDDL(II)
  56. 11 CONTINUE
  57. C
  58. C BOUCLE SUR LES POINTS DE GAUSS
  59. C
  60. C
  61. DO 100 IGAU=1,NBPGAU
  62. CALL ZERO(BGR,2,LRE)
  63. C
  64. C CALCUL DU JACOBIEN ET DE SON DETERMINENT EN CE POINT DE GAUSS
  65. C
  66. E3=DZEGAU(IGAU)
  67. CALL CQ8JCE(IGAU,NBNN,E3,XE,TH,EXC,TXR,SHPCOQ,XJ,DJAC,IRR)
  68. IF (IRR.LT.0)THEN
  69. * JACOBIEN NUL DANS L'ELEMENT IEL
  70. INTERR(1)=0
  71. CALL ERREUR (405)
  72. RETURN
  73. ENDIF
  74. *
  75. * INVERSION DU JACOBIEN
  76. *
  77. DUM =UN/DJAC
  78. XJI(1,1) = DUM*( XJ(2,2)*XJ(3,3) - XJ(2,3)*XJ(3,2))
  79. XJI(2,1) = DUM*(-XJ(2,1)*XJ(3,3) + XJ(2,3)*XJ(3,1))
  80. XJI(3,1) = DUM*( XJ(2,1)*XJ(3,2) - XJ(2,2)*XJ(3,1))
  81. XJI(1,2) = DUM*(-XJ(1,2)*XJ(3,3) + XJ(1,3)*XJ(3,2))
  82. XJI(2,2) = DUM*( XJ(1,1)*XJ(3,3) - XJ(1,3)*XJ(3,1))
  83. XJI(3,2) = DUM*(-XJ(1,1)*XJ(3,2) + XJ(1,2)*XJ(3,1))
  84. XJI(1,3) = DUM*( XJ(1,2)*XJ(2,3) - XJ(1,3)*XJ(2,2))
  85. XJI(2,3) = DUM*(-XJ(1,1)*XJ(2,3) + XJ(1,3)*XJ(2,1))
  86. XJI(3,3) = DUM*( XJ(1,1)*XJ(2,2) - XJ(1,2)*XJ(2,1))
  87. *
  88. * DETERMINATION DES COSINUS DIRECTEURS DES AXES LOCAUX EN CE POINT
  89. *
  90. * COQ8 COQ6
  91. IF(NBNN.EQ.8.OR.NBNN.EQ.6)THEN
  92. *
  93. DO 101 I=1,3
  94. DO 20 J=1,2
  95. K=3*(J-1)+I
  96. TT(K) = XJ(J,I)
  97. 20 CONTINUE
  98. 101 CONTINUE
  99. *
  100. * PRODUITS VECTORIELS ET NORMALISATIONS
  101. *
  102. CALL CROSS2(TT(1),TT(4),TT(7),IRR)
  103. CALL CROSS2(TT(7),TT(1),TT(4),IRR)
  104. CALL CROSS2(TT(4),TT(7),TT(1),IRR)
  105. *
  106. ELSE
  107. IF(IGAU.EQ.1)THEN
  108. *
  109. * CALCUL DES AXES LOCAUX DE L 'ELEMENT COQ4
  110. *
  111. * DIAGONALE 1
  112. *
  113. TT(1)=XE(1,3)-XE(1,1)
  114. TT(2)=XE(2,3)-XE(2,1)
  115. TT(3)=XE(3,3)-XE(3,1)
  116. *
  117. * DIAGONALE 2
  118. *
  119. TT(4)=XE(1,4)-XE(1,2)
  120. TT(5)=XE(2,4)-XE(2,2)
  121. TT(6)=XE(3,4)-XE(3,2)
  122. *
  123. * NORMALE AUX 2 DIAGONALES
  124. *
  125. CALL CROSS2(TT(1),TT(4),TT(7),IRR)
  126. *
  127. TT(1)=XE(1,2)-XE(1,1)
  128. TT(2)=XE(2,2)-XE(2,1)
  129. TT(3)=XE(3,2)-XE(3,1)
  130. *
  131. CALL CROSS2(TT(7),TT(1),TT(4),IRR)
  132. CALL CROSS2(TT(4),TT(7),TT(1),IRR)
  133. *
  134. ENDIF
  135. ENDIF
  136. IF(IRR.EQ.0) THEN
  137. * ECHEC DANS LE CALCUL DES AXES LOCAUX
  138. CALL ERREUR(515)
  139. RETURN
  140. ENDIF
  141. *
  142. *
  143. * PRODUIT MATRICIEL TT TRANSPOSE * XJI
  144. *
  145. DO 103 I=1,3
  146. DO 102 J=1,3
  147. XJ(I,J)=XZERO
  148. DO 30 K=1,3
  149. K1=3*(I-1)+K
  150. XJ(I,J) = XJ(I,J)+TT(K1)*XJI(K,J)
  151. 30 CONTINUE
  152. 102 CONTINUE
  153. 103 CONTINUE
  154. *
  155. * CALCUL DE LA MATRICE DE GRADIENT DES FONCTIONS DE FORME
  156. * DANS LE REPERE LOCAL
  157. *
  158. NBNN2=2*NBNN
  159. DO 105 K = 1,LRE
  160. DO 104 I = 1,2
  161. DO 40 J = 1,3
  162. JJ=J+1
  163. IF(JJ.EQ.4)JJ=1
  164. IF(K.LE.NBNN)THEN
  165. KK=K
  166. IF(J.LE.2)THEN
  167. COEF=(E3/DEUX)*(E3-UN)
  168. ELSE
  169. COEF=E3-UN/DEUX
  170. ENDIF
  171. ELSEIF(K.GT.NBNN.AND.K.LE.NBNN2)THEN
  172. KK=K-NBNN
  173. IF(J.LE.2)THEN
  174. COEF=UN-E3*E3
  175. ELSE
  176. COEF=-DEUX*E3
  177. ENDIF
  178. ELSE
  179. KK=K-NBNN2
  180. IF(J.LE.2)THEN
  181. COEF=(E3/DEUX)*(E3+UN)
  182. ELSE
  183. COEF=E3+UN/DEUX
  184. ENDIF
  185. ENDIF
  186. BGR(I,K)=BGR(I,K)+COEF*SHPCOQ(JJ,KK,IGAU)*XJ(I,J)
  187. 40 CONTINUE
  188. 104 CONTINUE
  189. 105 CONTINUE
  190. C
  191. C CALCUL DE BGR*XDDL
  192. C
  193. IG=(IGAU-1)*2+1
  194. CALL BGRDEP(BGR,2,XDDL1,LRE,GRADI(IG))
  195. C
  196. 100 CONTINUE
  197. C
  198. RETURN
  199. END
  200.  
  201.  
  202.  

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