Télécharger cq4gr1.eso

Retour à la liste

Numérotation des lignes :

cq4gr1
  1. C CQ4GR1 SOURCE CB215821 24/04/12 21:15:32 11897
  2.  
  3. SUBROUTINE CQ4GR1(XE,RG,IPOIN1,IDISS,IXMATR,IPMINT,iel)
  4. C=======================================================================
  5. C
  6. C CALCULE LA MATRICE DE RAIDEUR LIEE A LA VARIATION DE PRESSION DUE
  7. C AU MOUVEMENT SUIVANT VECZ DANS UN CHAMP DE PESANTEUR
  8. c élément coq4
  9. C
  10. C cette matrice est non symetrique mais combinée avec la mattrice kp
  11. c donne une matrice symetrique c'est pourquoi on calcule les matrices
  12. c symetriques et dissymetriques
  13. c
  14. c
  15. C
  16. C ENTREE
  17. C XE(4,4)=COODONNEES DE L ELEMENT
  18. C RG =MASSE VOLUMIQUE * ACCELERATION DE GRAVITE
  19. C IPOIN1 =VECTEUR(POINT) DEFINISSANT LE SENS DE GRAVITE
  20. * IDISS : 0 ---> MATRICE SYMETRIQUE
  21. * 1 ---> MATRICE DISSYMETRIQUE
  22. * IXMATR : pointeur du segment xmatri
  23. * ipmint: pointeur sur le segment d'integration
  24. C TRAVAIL
  25. C XEL(4,4) =COORDONNEES LOCALES DE L ELEMENT
  26. C BPSS(3,3) =MATRICE DE PASSAGE
  27. C VECN(3) =VECTEUR DEFINISSANT LA NORMALE
  28. C VECZ(3) =VECTEUR DEFINISSANT LE SENS DE GRAVITE
  29. * rel : matrice masse (repeur local) avec rho=1. Elle sert à
  30. * calculer les termes de la matrice de rigidité qui sont
  31. * similaires.
  32. C
  33. * ON CALCULE :
  34. C RE(24,24)=MATRICE DE RAIDEUR REPERE GLOBAL (dans le segment xmatri)
  35. C
  36. C JUILLET 95 I. POLITOPOULOS
  37. C
  38. C=======================================================================
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8(A-H,O-Z)
  41.  
  42. -INC PPARAM
  43. -INC CCOPTIO
  44. -INC SMCOORD
  45. -INC SMRIGID
  46. -INC SMINTE
  47. -INC SMMODEL
  48.  
  49. DIMENSION XE(3,4),XEL(3,4),BPSS(3,3),XRE(24,24)
  50. DIMENSION VECZ(3),VECN(3),RHOMAT(6,6), SHPWRK(6,4)
  51. DIMENSION BGENE(6,24),REL(24,24)
  52.  
  53. MINTE=IPMINT
  54. C
  55. C COORDONNEES LOCALES
  56. C
  57. CALL CQ4LOC(XE,XEL,BPSS,IERT,0)
  58. C
  59. C MISE A 0 DE LA MATRICE
  60. C
  61. XMATRI = IXMATR
  62.  
  63. C
  64. C CONSTRUCTION DE LA NORMALE
  65. **** il serait plus correct d'utiliser celle calculée dans cq4loc
  66. **** mais elle n'est pas en sortie et je suis paresseux
  67. C
  68. XG1 = XE(1,2) - XE(1,1)
  69. YG1 = XE(2,2) - XE(2,1)
  70. ZG1 = XE(3,2) - XE(3,1)
  71. XG2 = XE(1,3) - XE(1,1)
  72. YG2 = XE(2,3) - XE(2,1)
  73. ZG2 = XE(3,3) - XE(3,1)
  74. VECN(1) = YG1*ZG2 - ZG1*YG2
  75. VECN(2) = ZG1*XG2 - XG1*ZG2
  76. VECN(3) = XG1*YG2 - YG1*XG2
  77. XNORM = VECN(1)*VECN(1) + VECN(2)*VECN(2) + VECN(3)*VECN(3)
  78. XNORM = SQRT(XNORM)
  79. DO 10 IA=1,3
  80. VECN(IA) = VECN(IA)/XNORM
  81. 10 CONTINUE
  82.  
  83. C
  84. C DETERMINATION ET NORMALISATION DE VECZ
  85. C
  86. IF (IPOIN1.NE.0) THEN
  87. VECZ(1) = XCOOR((IPOIN1-1)*(IDIM+1) + 1)
  88. VECZ(2) = XCOOR((IPOIN1-1)*(IDIM+1) + 2)
  89. VECZ(3) = XCOOR((IPOIN1-1)*(IDIM+1) + 3)
  90. ELSE
  91. VECZ(1) = VECN(1)
  92. VECZ(2) = VECN(2)
  93. VECZ(3) = VECN(3)
  94. ENDIF
  95. XNORM = VECZ(1)*VECZ(1) + VECZ(2)*VECZ(2) + VECZ(3)*VECZ(3)
  96. XNORM = SQRT(XNORM)
  97. DO 20 IA=1,3
  98. VECZ(IA) = VECZ(IA)/XNORM
  99. 20 CONTINUE
  100.  
  101.  
  102. c
  103. c construction de la matrice masse dans le repere local avec rho=1
  104. c
  105. CALL ZERO(RHOMAT,6,6)
  106. RHOMAT( 1, 1)=1.D0
  107. RHOMAT( 2, 2)=1.D0
  108. RHOMAT( 3, 3)=1.D0
  109. CALL ZERO(REL,24,24)
  110. DO 21 IGAU=1,4
  111. CALL NCOQ4(IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,IERT)
  112. C IERT=1 JACOBIANO=<0
  113. IF(IERT.EQ.1) CALL ERREUR(664)
  114. DJAC=DJAC*POIGAU(IGAU)
  115. LRE = 24
  116. CALL BDBST(BGENE,DJAC,RHOMAT,LRE,6,REL)
  117. 21 CONTINUE
  118.  
  119.  
  120. C
  121. C TERMES DE LA MATRICE DANS LE REPERE GLOBAL
  122. C
  123. DO 100 IA=1,19,6
  124. DO 110 IC= 1,3
  125. IAA = IA + IC - 1
  126. DO 120 IB=1,19,6
  127. DO 130 ID = 1,3
  128. IBB = IB + ID -1
  129. XRE(IBB ,IAA) =REL(IB,IA)*VECN(ID)*VECZ(IC)*RG
  130. 130 CONTINUE
  131. 120 CONTINUE
  132. 110 CONTINUE
  133. 100 CONTINUE
  134.  
  135. * symetrisation de la matrice
  136. DO 200 IA=1,19,6
  137. DO 210 IC= 1,3
  138. IAA = IA + IC - 1
  139. DO 220 IB=1,19,6
  140. DO 230 ID = 1,3
  141. IBB = IB + ID -1
  142. IF (IDISS.EQ.0) THEN
  143. RE(IAA,IBB,iel) = 0.5D0*(XRE(IAA, IBB) + XRE(IBB,IAA))
  144. ELSE
  145. RE(IAA,IBB,iel) = XRE(IAA,IBB)
  146. ENDIF
  147. 230 CONTINUE
  148. 220 CONTINUE
  149. 210 CONTINUE
  150. 200 CONTINUE
  151.  
  152.  
  153. RETURN
  154. END
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  

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