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