Télécharger cq4gr1.eso

Retour à la liste

Numérotation des lignes :

  1. C CQ4GR1 SOURCE CHAT 11/03/16 21:18:22 6902
  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. -INC CCOPTIO
  42. -INC SMCOORD
  43. -INC SMRIGID
  44. -INC SMINTE
  45. -INC SMMODEL
  46.  
  47. DIMENSION XE(3,4),XEL(3,4),BPSS(3,3),XRE(24,24)
  48. DIMENSION VECZ(3),VECN(3),RHOMAT(6,6), SHPWRK(6,4)
  49. DIMENSION BGENE(6,24),REL(24,24)
  50.  
  51. MINTE=IPMINT
  52. C
  53. C COORDONNEES LOCALES
  54. C
  55. CALL CQ4LOC(XE,XEL,BPSS,IERT,0)
  56. C
  57. C MISE A 0 DE LA MATRICE
  58. C
  59. XMATRI = IXMATR
  60.  
  61. C
  62. C CONSTRUCTION DE LA NORMALE
  63. **** il serait plus correct d'utiliser celle calculée dans cq4loc
  64. **** mais elle n'est pas en sortie et je suis paresseux
  65. C
  66. XG1 = XE(1,2) - XE(1,1)
  67. YG1 = XE(2,2) - XE(2,1)
  68. ZG1 = XE(3,2) - XE(3,1)
  69. XG2 = XE(1,3) - XE(1,1)
  70. YG2 = XE(2,3) - XE(2,1)
  71. ZG2 = XE(3,3) - XE(3,1)
  72. VECN(1) = YG1*ZG2 - ZG1*YG2
  73. VECN(2) = ZG1*XG2 - XG1*ZG2
  74. VECN(3) = XG1*YG2 - YG1*XG2
  75. XNORM = VECN(1)*VECN(1) + VECN(2)*VECN(2) + VECN(3)*VECN(3)
  76. XNORM = SQRT(XNORM)
  77. DO 10 IA=1,3
  78. VECN(IA) = VECN(IA)/XNORM
  79. 10 CONTINUE
  80.  
  81. C
  82. C DETERMINATION ET NORMALISATION DE VECZ
  83. C
  84. IF (IPOIN1.NE.0) THEN
  85. VECZ(1) = XCOOR((IPOIN1-1)*(IDIM+1) + 1)
  86. VECZ(2) = XCOOR((IPOIN1-1)*(IDIM+1) + 2)
  87. VECZ(3) = XCOOR((IPOIN1-1)*(IDIM+1) + 3)
  88. ELSE
  89. VECZ(1) = VECN(1)
  90. VECZ(2) = VECN(2)
  91. VECZ(3) = VECN(3)
  92. ENDIF
  93. XNORM = VECZ(1)*VECZ(1) + VECZ(2)*VECZ(2) + VECZ(3)*VECZ(3)
  94. XNORM = SQRT(XNORM)
  95. DO 20 IA=1,3
  96. VECZ(IA) = VECZ(IA)/XNORM
  97. 20 CONTINUE
  98.  
  99.  
  100. c
  101. c construction de la matrice masse dans le repere local avec rho=1
  102. c
  103. CALL ZERO(RHOMAT,6,6)
  104. RHOMAT( 1, 1)=1.D0
  105. RHOMAT( 2, 2)=1.D0
  106. RHOMAT( 3, 3)=1.D0
  107. CALL ZERO(REL,24,24)
  108. DO 21 IGAU=1,4
  109. CALL NCOQ4(IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,IERT)
  110. C IERT=1 JACOBIANO=<0
  111. IF(IERT.EQ.1) CALL ERREUR(664)
  112. DJAC=DJAC*POIGAU(IGAU)
  113. LRE = 24
  114. CALL BDBST(BGENE,DJAC,RHOMAT,LRE,6,REL)
  115. 21 CONTINUE
  116.  
  117.  
  118. C
  119. C TERMES DE LA MATRICE DANS LE REPERE GLOBAL
  120. C
  121. DO 100 IA=1,19,6
  122. DO 110 IC= 1,3
  123. IAA = IA + IC - 1
  124. DO 120 IB=1,19,6
  125. DO 130 ID = 1,3
  126. IBB = IB + ID -1
  127. XRE(IBB ,IAA) =REL(IB,IA)*VECN(ID)*VECZ(IC)*RG
  128. 130 CONTINUE
  129. 120 CONTINUE
  130. 110 CONTINUE
  131. 100 CONTINUE
  132.  
  133. * symetrisation de la matrice
  134. DO 200 IA=1,19,6
  135. DO 210 IC= 1,3
  136. IAA = IA + IC - 1
  137. DO 220 IB=1,19,6
  138. DO 230 ID = 1,3
  139. IBB = IB + ID -1
  140. IF (IDISS.EQ.0) THEN
  141. RE(IAA,IBB,iel) = 0.5D0*(XRE(IAA, IBB) + XRE(IBB,IAA))
  142. ELSE
  143. RE(IAA,IBB,iel) = XRE(IAA,IBB)
  144. ENDIF
  145. 230 CONTINUE
  146. 220 CONTINUE
  147. 210 CONTINUE
  148. 200 CONTINUE
  149.  
  150.  
  151. RETURN
  152. END
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  

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