Download tseg2c.eso

Back to the list

   1 : C TSEG2C    SOURCE    CHAT      12/06/07    21:16:13     7389           
   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 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 : 
  53 : c*      IF (NEF.NE.46) CALL ERREUR(5)
  54 : 
  55 :       IF (IFOMOD.NE.-1.AND.IFOMOD.NE.2.and.ifomod.ne.0) THEN
  55 :          CALL ERREUR(19)
  56 :          RETURN
  57 :       ENDIF
  58 :       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 : 
  84 :          CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
  85 : *
  86 : *- Calcul de la longueur de la BARRE
  87 :         IF (IDIM.EQ.2) THEN
  88 :          D = (XE(1,2)-XE(1,1))**2 + (XE(2,2)-XE(2,1))**2
  89 :         ELSE
  90 :          D =   (XE(1,2)-XE(1,1))**2 + (XE(2,2)-XE(2,1))**2
  91 :      &       + (XE(3,2)-XE(3,1))**2
  92 :         ENDIF
  93 :         IF (D.LE.XPETIT) THEN
  94 :           INTERR(1) = iel
  94 :           CALL ERREUR(255)
  95 :           GOTO 999
  96 :         ENDIF
  97 : *- Jacobien (constant) le long de la BARRE
  98 :         D = X1s2 / SQRT(D)
  99 :         
  99 :         CALL ZERO(CEL,NBNN,NBNN)
 100 : *
 101 : *---     BOUCLE SUR LES POINTS DE GAUSS
 102 : *
 103 :         DO 20 iGau = 1, NBPGAU
 104 : *
 105 : *- Recuperation des conductivite et section en un point de la barre
 106 : *- NB : ces composantes sont obligatoires donc IVAL(i) n'est pas nul !
 107 :           DO i = 1, NMATR
 108 : c*          IF (IVAL(i).NE.0) THEN
 109 :               MELVAL = IVAL(i)
 110 :               ibmn = MIN(iel ,VELCHE(/2))
 111 :               igmn = MIN(igau,VELCHE(/1))
 112 :               VALMAT(i) = VELCHE(igmn,ibmn)
 113 : c*          ELSE
 114 : c*            VALMAT(i) = 0.
 115 : c*          ENDIF
 116 :           ENDDO
 117 : *
 118 :           SE = VALMAT(2)
 119 : *- Section nulle ou trop faible dans une partie de l'element BARRE
 120 :           IF (SE.LE.XPETIT) THEN
 120 :             CALL ERREUR(517)
 121 :             GOTO 999
 122 :           ENDIF
 123 : *
 124 : * ON AJOUTE LE PRODUIT XK*SE*POIGAU*DETJ*B(TRANSPOSEE)*B
 125 : * POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL
 126 :           FAC = VALMAT(1) * SE * POIGAU(igau) * D
 127 :           CEL(1,1) = CEL(1,1) + FAC
 128 :           CEL(1,2) = CEL(1,2) - FAC
 129 :           CEL(2,1) = CEL(2,1) - FAC
 130 :           CEL(2,2) = CEL(2,2) + FAC
 131 : *
 132 :  20     CONTINUE
 133 : *
 134 : *- REMPLISSAGE DE XMATRI
 134 :         CALL REMPMT(CEL,NLIGR,RE(1,1,iel))
 135 : *
 136 :  10   CONTINUE
 137 : *
 138 :  999  CONTINUE
 139 :       SEGSUP,MMAT1
 140 : *
 141 :       RETURN
 142 :       END
 143 : 
 144 :  
 145 :  

© Cast3M 2003 - All rights reserved.
Disclaimer