Download tcoq2c.eso

Back to the list

   1 : C TCOQ2C    SOURCE    FANDEUR   11/07/19    21:17:34     7042           
   2 : 
   3 : ************************************************************************
   4 : *
   5 : *                             T C O Q 2 C
   6 : *                             -----------
   7 : *
   8 : * FONCTION:
   9 : * ---------
  10 : *     TRAITEMENT DU CAS DES ELEMENTS-FINIS SEGMENT COQUE AXISYMETRIQUE
  11 : *     A INTEGRATION-SEMI ANALYTIQUE (INTEGRATION ANALYTIQUE DANS L'
  12 : *     EPAISSEUR )POUR UN MAILLAGE ELEMENTAIRE
  13 : *
  14 : *
  15 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)
  16 : * -----------
  17 : *
  18 : *     NEF     (E)  NUMERO DE L'ELEMENT-FINI DANS NOMTP (VOIR CCHAMP)
  19 : *     IMAIL   (E)  NUMERO DU MAILLAGE ELEMENTAIRE CONSIDERE,DANS
  20 : *                  L'OBJET MODELE
  21 : *     IPMODE  (E)  POINTEUR SUR UN SEGMENT IMODEL
  22 : *     IPCHEM  (E)  POINTEUR SUR LE CHAMELEM DE CARACTERISTIQUE
  23 : *     IPRIGI (E/S) POINTEUR SUR L'OBJET RESULTAT,DE TYPE RIGIDITE
  24 : *
  25 : * VARIABLES:
  26 : * ----------
  27 : *     NBNN     NOMBRE DE NOEUDS DANS L'ELEMENT CONSIDERE
  28 : *     NEF      NUMERO DE L'ELEMENT FINI DANS NOMTP (VOIR CCHAMP)
  29 : *     NBELEM   NOMBRE D'ELEMENTS DANS LE MAILLAGE ELEMENTAIRE
  30 : *     NBPGAU   NOMBRE DE POINTS DE GAUSS DANS L'ELEMENT-FINI
  31 : *     NDIM     NOMBRE DE LIGNES DE LA MATRICE GRADIENT
  32 : *     CEL(2*NBNN,2*NBNN)  MATRICE DE CONDUCTIVITE ELEMENTAIRE
  33 : *     XE(3,NBNN)      COORDONNEES DE L'ELEMENT DANS LE REPERE GLOBAL
  34 : *     SHP(NBNN)     TABLEAU DE TRAVAIL
  35 : *     GRAD(NBNN) MATRICE GRADIENT DES FONCTIONS DE FORME MONODIMENSIONNE
  36 : *     VALMAT(4)       TABLEAU DE TRAVAIL
  37 : ************************************************************************
  38 : *
  39 :       SUBROUTINE TCOQ2C (NEF,IPMAIL,IPINTE,IMATE,IVAMAT,NVAMAT,
  40 :      &                   IPMATR,NLIGR)
  41 : 
  42 :       IMPLICIT INTEGER(I-N)
  43 :       IMPLICIT REAL*8(A-H,O-Z)
  44 : 
  45 : -INC CCOPTIO
  46 : -INC CCREEL
  47 : -INC CCHAMP
  48 : 
  49 : -INC SMCHAML
  50 : -INC SMCOORD
  51 : -INC SMELEME
  52 : -INC SMINTE
  53 : -INC SMRIGID
  54 : 
  55 :       SEGMENT,MMAT1
  56 :          REAL*8 VALMAT(NMATR)
  57 :          REAL*8 XE(3,NBNN),SHP(NBNN),GRAD(NBNN)
  58 :          REAL*8 CEL1(NBNN,NBNN),CEL2(NBNN,NBNN)
  59 :       ENDSEGMENT
  60 : *
  61 :       SEGMENT MPTVAL
  62 :         INTEGER IPOS(NS)    ,NSOF(NS)
  63 :         INTEGER      IVAL(NCOSOU)
  64 :         CHARACTER*16 TYVAL(NCOSOU)
  65 :       ENDSEGMENT
  66 : *
  67 : C= Quelques constantes (dont 2.Pi)
  68 :       PARAMETER (UNDE=0.5D0,UN=1.D0)
  69 :       PARAMETER (X2Pi=6.283185307179586476925286766559D0)
  70 : 
  71 : *     ELEMENT PUREMENT AXISYMETRIQUE
  72 :       IF (IFOMOD.NE.0) THEN
  72 :         CALL ERREUR (19)
  73 :         RETURN
  74 :       ENDIF
  75 : *
  76 : * MAILLAGE ELEMENTAIRE
  77 :       MELEME = IPMAIL
  78 : c*    SEGACT,MELEME
  79 :       NBNN   = NUM(/1)
  80 :       NBELEM = NUM(/2)
  81 : *
  82 : * CARACTERISTIQUES D'INTEGRATION DE L'ELEMENT COQ2 LIE A NOTRE MAILLAGE
  83 :       MINTE = IPINTE
  84 : c*      SEGACT,MINTE
  85 :       NBPGAU = POIGAU(/1)
  86 : *
  87 :       XMATRI = IPMATR
  88 : C*    SEGACT,XMATRI*MOD
  89 : 
  90 : *  SEGMENTS MELVAL correspondant aux composantes de la conductivite et
  91 : *  de l'epaisseur des elements (epaisseur toujours placee a la fin !)
  92 :       MPTVAL = IVAMAT
  93 : C*    SEGACT,MPTVAL
  94 : * Verification de la constance de l'epaisseur :
  95 : *     IPMELV = IVAL(NVAMAT)
  95 : *     CALL QUELCH(IPMELV,ICONS)
  96 : *     IF (ICONS.NE.0) THEN
  96 : *       CALL ERREUR(566)
  97 : *       RETURN
  98 : *     ENDIF
  99 : 
 100 :       NMATR = NVAMAT
 101 :       NDIM = IDIM
 102 :       SEGINI,MMAT1
 103 : 
 104 : * BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE
 105 : *
 106 :       DO 10 iel = 1, NBELEM
 107 : *
 108 : *- Recherche des COORDONNEES DES NOEUDS DE L'ELEMENT IEL (REPERE GLOBAL)
 109 : *
 109 :         CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
 110 : *
 111 : *- Calcul de la "longueur" de l'element
 112 :         D = (XE(1,2)-XE(1,1))**2+(XE(2,2)-XE(2,1))**2
 113 : *  LA DISTANCE ENTRE LES DEUX NOEUDS DE L'ELEMENT EST NULLE
 114 :         IF (D.LE.XPETIT) THEN
 115 :           INTERR(1) = iel
 115 :           CALL ERREUR(255)
 116 :           GOTO 999
 117 :         ENDIF
 118 :         D = SQRT(D)
 119 : *
 120 : *  MATRICE DE GRADIENT (constante sur l'element)
 121 : *
 122 :         r_z = UN / D
 123 :         GRAD(1) = -r_z
 124 :         GRAD(2) =  r_z
 125 : *
 126 : *  "Partie" du JACOBIEN independante du point d'integration
 127 : *
 128 :         DJAC1 = X2Pi * UNDE * D
 129 : *
 130 : *  Quelques caracteristiques geometriques constantes
 131 :         RO = (XE(1,1) + XE(1,2)) * UNDE
 132 :         DR =  XE(1,2) - XE(1,1) 
 133 : *
 134 : *  Epaisseur moyenne de la coque
 135 :         EPAI = XZERO
 136 : *
 137 : *  MISE A ZERO DES TABLEAUX CEL1 ET CEL2
 138 : *
 138 :         CALL ZERO(CEL1,NBNN,NBNN)
 138 :         CALL ZERO(CEL2,NBNN,NBNN)
 139 : *
 140 : * BOUCLE SUR LES POINTS DE GAUSS
 141 : *
 142 :         DO 20 igau = 1, NBPGAU
 143 : *
 144 : *        CALCUL DE LA MATRICE GRADIENT DES FONCTIONS DE FORME ET
 145 : *        DU JACOBIAN,EN UN POINT DE GAUSS
 146 : *
 147 : *        MATRICE DE FONCTION DE FORME
 148 : *
 149 :           r_z = UNDE*QSIGAU(igau)
 150 :           SHP(1) = UNDE - r_z
 151 :           SHP(2) = UNDE + r_z
 152 : *
 153 : *        CALCUL DU RAYON DE LA COQUE
 154 : *
 155 :           RR = RO + DR * r_z
 156 : *  L'AXE EST CONFONDU AVEC L'UN DES COTES DE L'ELEMENT ?
 157 :           IF (ABS(RR/D).LE.1.D-03) THEN
 158 :             INTERR(1)=IEL
 158 :             CALL ERREUR (256)
 159 :             GOTO 999
 160 :           ENDIF
 161 :           DJAC = DJAC1 * POIGAU(igau) * RR
 162 : *
 163 : *        ON CHERCHE LES VALEURS DES COMPOSANTES DE LA CONDUCTIVITE
 164 : *        ET L'EPAISSEUR DE LA COQUE
 165 : *
 166 :           DO  i = 1, NMATR
 167 : c*          IF (IVAL(i).NE.0) THEN
 168 :               MELVAL = IVAL(i)
 169 :               ibmn = MIN(iel ,VELCHE(/2))
 170 :               igmn = MIN(igau,VELCHE(/1))
 171 :               VALMAT(i) = VELCHE(igmn,ibmn)
 172 : c*          ELSE
 173 : c*            VALMAT(i)=0.
 174 : c*          ENDIF
 175 :           ENDDO
 176 : 
 177 :           EP = VALMAT(NMATR)
 178 : *   L'ELEMENT (IEL) AU POINT DE GAUSS (igau) DE TYPE (NOMTP(NEF)) A
 179 : *     UNE EPAISSEUR NULLE
 180 :           IF (EP.LE.XPETIT) THEN
 181 :             INTERR(1) = iel
 182 :             INTERR(2) = igau
 183 :             MOTERR(1:4) = NOMTP(NEF)
 183 :             CALL ERREUR(355)
 184 :             GOTO 999
 185 :           ENDIF
 186 :           EPAI = EPAI + EP
 187 : *
 188 : *        MATERIAU ISOTROPE
 189 : *
 190 :           IF (IMATE.EQ.1) THEN
 191 : *
 192 :             XK1 = VALMAT(1) * DJAC
 193 :             XK2 = XK1
 194 : *
 195 :           ELSE IF (IMATE.EQ.2) THEN
 196 : *
 197 :             COSA = VALMAT(4)
 198 :             IF (COSA.EQ.XZERO) THEN
 199 :               XK1 = VALMAT(2) * DJAC
 200 :               XK2 = VALMAT(1) * DJAC
 201 :             ELSE
 202 :               XK1 = VALMAT(1) * DJAC
 203 :               XK2 = VALMAT(2) * DJAC
 204 :             ENDIF
 205 : 
 206 :           ENDIF
 207 : *
 208 : *        ON AJOUTE LE PRODUIT XK1*DJAC*TRANSPOSEE(GRAD)*GRAD
 209 : *        POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL1
 210 : *
 210 :           CALL NTNST(GRAD,XK1,NBNN,1,CEL1)
 211 : *
 212 : *        ON AJOUTE LE PRODUIT XK2*DJAC*TRANSPOSEE(SHP)*SHP
 213 : *        POUR LE POINT DE GAUSS CONSIDERE A LA MATRICE CEL2
 214 : *
 214 :           CALL NTNST(SHP,XK2,NBNN,1,CEL2)
 215 : *
 216 :  20     CONTINUE
 217 : *
 218 : *       REMPLISSAGE DE XMATRI
 219 : *       EN SUPPOSANT UNE EPAISSEUR MOYENNE (CONSTANTE) !
 220 : *
 221 :         EPAI = EPAI / NBPGAU
 221 :         CALL MCONDT(CEL1,CEL2,NBNN,EPAI,RE(1,1,iel))
 222 : 
 223 :  10   CONTINUE
 224 : *
 225 :  999  CONTINUE
 226 :       SEGSUP,MMAT1
 227 : *
 228 :       RETURN
 229 :       END
 230 : 
 231 :  

© Cast3M 2003 - All rights reserved.
Disclaimer