Télécharger tseg3c.eso

Retour à la liste

Numérotation des lignes :

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

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