Télécharger tseg2c.eso

Retour à la liste

Numérotation des lignes :

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

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