Télécharger tseg3c.eso

Retour à la liste

Numérotation des lignes :

tseg3c
  1. C TSEG3C SOURCE BP208322 15/06/22 21:23:29 8543
  2. ************************************************************************
  3. *
  4. * T S E G 3 C
  5. * -----------
  6. *
  7. * FONCTION:
  8. * ---------
  9. * CALCUL DE LA MATRICE DE CONDUCTIVITE D'UNE BARRE ( SEG2 )
  10. *
  11. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  12. * -----------
  13. * IPMAIL (E) NUMERO DU MAILLAGE ELEMENTAIRE CONSIDERE,DANS
  14. * L'OBJET MODELE
  15. * IPCHEM (E) POINTEUR SUR LE CHAMELEM DE CARACTERISTIQUES
  16. * IPRIGI (E/S) POINTEUR SUR L'OBJET RESULTAT,DE TYPE RIGIDITE
  17. *
  18. * AUTEUR, DATE DE CREATION:
  19. * -------------------------
  20. * DENIS ROBERT, LE 16 NOVEMBRE 1988.
  21. * REPRIS PAR P. DOWLATYARI SEP. 90
  22. ************************************************************************
  23. SUBROUTINE TSEG3C (NEF,IPMAIL,IPINTE,IMATE,IVAMAT,NVAMAT,
  24. & IPMATR,NLIGR)
  25.  
  26. IMPLICIT INTEGER(I-N)
  27. IMPLICIT REAL*8(A-H,O-Z)
  28.  
  29.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC CCREEL
  33. -INC CCHAMP
  34.  
  35. -INC SMCHAML
  36. -INC SMCOORD
  37. -INC SMELEME
  38. -INC SMINTE
  39. -INC SMRIGID
  40.  
  41. SEGMENT,MMAT1
  42. REAL*8 VALMAT(NMATR)
  43. REAL*8 CEL(NBNN,NBNN),XE(3,NBNN)
  44. ENDSEGMENT
  45. *
  46. SEGMENT MPTVAL
  47. INTEGER IPOS(NS) ,NSOF(NS)
  48. INTEGER IVAL(NCOSOU)
  49. CHARACTER*16 TYVAL(NCOSOU)
  50. ENDSEGMENT
  51. *
  52. PARAMETER (X1s2 = 0.5D0)
  53.  
  54. c* IF (NEF.NE.46) CALL ERREUR(5)
  55. * IF (IFOMOD.NE.-1.AND.IFOMOD.NE.2) THEN
  56. * CALL ERREUR(19)
  57. * RETURN
  58. * ENDIF
  59. IF (IMATE.NE.1) THEN
  60. CALL ERREUR (251)
  61. RETURN
  62. ENDIF
  63. *
  64. *--- CARACTERISTIQUES GEOMETRIQUES DU MAILLAGE ELEMENTAIRE
  65. MELEME = IPMAIL
  66. c* SEGACT,MELEME
  67. NBNN = NUM(/1)
  68. NBELEM = NUM(/2)
  69. *
  70. *--- CARACTERISTIQUES D'INTEGRATION DU BARR-SEG2
  71. MINTE = IPINTE
  72. c* SEGACT,MINTE
  73. NBPGAU = POIGAU(/1)
  74. *
  75. XMATRI = IPMATR
  76. c* SEGACT,XMATRI*MOD
  77. *
  78. MPTVAL = IVAMAT
  79. *
  80. NMATR = NVAMAT
  81. SEGINI,MMAT1
  82. *
  83. *--- BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL
  84. *
  85. DO 10 iel = 1, NBELEM
  86.  
  87. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
  88. *
  89. *- Calcul de la longueur de la BARRE
  90. IF (IDIM.EQ.2) THEN
  91. D = (XE(1,2)-XE(1,1))**2 + (XE(2,2)-XE(2,1))**2
  92. ELSE
  93. D = (XE(1,2)-XE(1,1))**2 + (XE(2,2)-XE(2,1))**2
  94. & + (XE(3,2)-XE(3,1))**2
  95. ENDIF
  96. IF (D.LE.XPETIT) THEN
  97. INTERR(1) = iel
  98. CALL ERREUR(255)
  99. GOTO 999
  100. ENDIF
  101. *- Jacobien (constant) le long de la BARRE
  102. D = X1s2 / SQRT(D)
  103.  
  104. CALL ZERO(CEL,NBNN,NBNN)
  105. *
  106. *--- BOUCLE SUR LES POINTS DE GAUSS
  107. *
  108. DO 20 iGau = 1, NBPGAU
  109. *
  110. * calcul du jacobien
  111. *
  112. dz=0.d0
  113. dx= shptot(2,1,igau)*xe(1,1)+shptot(2,2,igau)*xe(1,2)
  114. $ + shptot(2,3,igau)*xe(1,3)
  115. dy= shptot(2,1,igau)*xe(2,1)+shptot(2,2,igau)*xe(2,2)
  116. $ + shptot(2,3,igau)*xe(2,3)
  117. dl2= dx*dx + dy * dy
  118. if(idim.eq.3) then
  119. dz= shptot(2,1,igau)*xe(3,1)+shptot(2,2,igau)*xe(3,2)
  120. $ + shptot(2,3,igau)*xe(3,3)
  121. dl2=dl2+ dz*dz
  122. endif
  123. dll= sqrt ( dl2)
  124. djac= 1./dll
  125. call tconv4(xe,shptot,idim,3,djj)
  126. *
  127. *- Recuperation des conductivite et section en un point de la barre
  128. *- NB : ces composantes sont obligatoires donc IVAL(i) n'est pas nul !
  129. DO i = 1, NMATR
  130. c* IF (IVAL(i).NE.0) THEN
  131. MELVAL = IVAL(i)
  132. ibmn = MIN(iel ,VELCHE(/2))
  133. igmn = MIN(igau,VELCHE(/1))
  134. VALMAT(i) = VELCHE(igmn,ibmn)
  135. c* ELSE
  136. c* VALMAT(i) = 0.
  137. c* ENDIF
  138. ENDDO
  139. *
  140. SE = VALMAT(2)
  141. *- Section nulle ou trop faible dans une partie de l'element BARRE
  142. IF (SE.LE.XPETIT) THEN
  143. CALL ERREUR(517)
  144. GOTO 999
  145. ENDIF
  146. *
  147. * ON AJOUTE LE PRODUIT XK*SE*POIGAU*DETJ*B(TRANSPOSEE)*B
  148. * POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL
  149. FAC = VALMAT(1) * SE * POIGAU(igau) * Djac
  150. do ia=1,3
  151. do ib=1,3
  152. cel(ia,ib)=cel(ia,ib)+shptot(2,ia,igau)*shptot(2,ib,igau)*fac
  153. enddo
  154. enddo
  155.  
  156. 20 CONTINUE
  157.  
  158. *
  159. *
  160. *- REMPLISSAGE DE XMATRI
  161. CALL REMPMT(CEL,NLIGR,RE(1,1,iel))
  162. *
  163. 10 CONTINUE
  164. *
  165. 999 CONTINUE
  166. SEGSUP,MMAT1
  167. *
  168. RETURN
  169. END
  170.  
  171.  
  172.  
  173.  
  174.  

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