1 : C BGRMAS SOURCE CHAT 05/01/12 21:39:48 5004 2 : 3 : C======================================================================= 4 : C= B G R M A S = 5 : C= ----------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul de la matrice de gradients BGR au point de Gauss iGau de = 10 : C= l'element fini de type iTEl. = 11 : C= Le jacobien est egalement evalue au point de Gauss pour verifier = 12 : C= ulterieurement si l'element fini n'est pas trop distordu. = 13 : C= = 14 : C= Parametres : (E)=Entree (S)=Sortie = 15 : C= ------------ = 16 : C= iGau (E) Numero du point de Gauss considere = 17 : C= iTEl (E) Type de l'element fini (cf. NOMTP dans bdata.eso) = 18 : C= NBNO (E) Nombre de noeuds de l'element fini = 19 : C= LRE (E) Nombre de DDL de l'element fini = 20 : C= IFOU (E) Mode de calcul utilise (cf. IFOUR dans CCOPTIO) = 21 : C= NGRA (E) Nombre de composantes du gradient = 22 : C= NN (E) Numero du mode de Fourier (si IFOU=1) = 23 : C= XEL (E) Coordonnees des noeuds de l'element fini etudie = 24 : C= Excen (E) Excentrement dans le cas d'un element coque = 25 : C= SHPTOT (E) Fonctions de forme et leurs derivees = 26 : C= SHP (S) Fonctions de forme et leurs derivees actuelles = 27 : C= BB (S) Matrice de travail = 28 : C= BGR (S) Matrice de gradients (B) calcule au point de Gauss = 29 : C= DJac (S) Jacobien au point de Gauss etudie = 30 : C= IIPDPG (E) Numero du noeud support en modes GENERALISEs = 31 : C= = 32 : C= Remarque : = 33 : C= ---------- = 34 : C= SHPTOT(2 a 4,*) contient les DERIVEES des fonctions de forme par = 35 : C= rapport aux coordonnees de REFERENCE Qsi,Eta,Dzeta. = 36 : C= En sortie du sousprogramme, SHPTOT(2 a 4,*) contient les DERIVEES = 37 : C= des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. = 38 : C======================================================================= 39 : 40 : SUBROUTINE BGRMAS (iGau,iTEl,NBNO,LRE,IFOU,NGRA,NN, 41 : . XEL,Excen,SHPTOT,SHP,BB,BGR,DJAC,IIPDPG) 42 : 43 : IMPLICIT INTEGER(I-N) 44 : IMPLICIT REAL*8 (A-H,O-Z) 45 : 46 : -INC CCOPTIO 47 : -INC CCREEL 48 : -INC SMCOORD 49 : 50 : DIMENSION XEL(3,*),BGR(NGRA,*),SHP(6,*),SHPTOT(6,NBNO,*),BB(2,*) 51 : DIMENSION GEOM(20),XX(3),YY(3),BBF(4,9) 52 : 53 : DATA XX / .5, .0, .5 / 54 : DATA YY / .0, .5, .5 / 55 : 56 : C= Quelques constantes (2.Pi et 4.Pi) 57 : PARAMETER (X2Pi=6.283185307179586476925286766559D0) 58 : PARAMETER (X4Pi=12.566370614359172953850573533118D0) 59 : 59 : CALL ZERO(BGR,NGRA,LRE) 60 : IF (iTEl.EQ.28.OR.iTEl.EQ.45) GOTO 28 61 : IF (iTEl.GE.57.AND.iTEl.LE.68) GOTO 57 62 : 63 : C 1 - Elements MASSIFS en MECANIQUE 64 : C =================================== 65 : IFOR=IFOU+4 66 : GOTO (100,110,110,120,130,140,150,150,150,150, 67 : . 150,150,150,150,150,160,160,160,170 ),IFOR 68 : RETURN 69 : C ===== 70 : C 1.1 - Elements MASSIFS 2D PLAN GENE 71 : C ===== 72 : 100 XXX=XZero 73 : YYY=XZero 74 : DO i=1,NBNO 75 : SHP(1,i)=SHPTOT(1,i,iGau) 76 : SHP(2,i)=SHPTOT(2,i,iGau) 77 : SHP(3,i)=SHPTOT(3,i,iGau) 78 : XXX=XXX+SHP(1,i)*XEL(1,i) 79 : YYY=YYY+SHP(1,i)*XEL(2,i) 80 : ENDDO 80 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 81 : K=1 82 : DO i=1,NBNO 83 : BGR(1,K)=SHP(2,i) 84 : BGR(2,K)=SHP(3,i) 85 : BGR(4,K+1)=SHP(2,i) 86 : BGR(5,K+1)=SHP(3,i) 87 : K=K+2 88 : ENDDO 89 : IREF=(IIPDPG-1)*(IDIM+1) 90 : BGR(9,K)=1. 91 : BGR(9,K+1)=XCOOR(IREF+1)-XXX 92 : BGR(9,K+2)=YYY-XCOOR(IREF+2) 93 : RETURN 94 : C ===== 95 : C 1.2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT 96 : C ===== 97 : 110 DO i=1,NBNO 98 : SHP(1,i)=SHPTOT(1,i,iGau) 99 : SHP(2,i)=SHPTOT(2,i,iGau) 100 : SHP(3,i)=SHPTOT(3,i,iGau) 101 : ENDDO 101 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 102 : K=1 103 : DO i=1,NBNO 104 : BGR(1,K)=SHP(2,i) 105 : BGR(2,K)=SHP(3,i) 106 : BGR(4,K+1)=SHP(2,i) 107 : BGR(5,K+1)=SHP(3,i) 108 : K=K+2 109 : ENDDO 110 : RETURN 111 : C ===== 112 : C 1.3 - Elements MASSIFS 2D AXISymetrique 113 : C ===== 114 : 120 DO i=1,NBNO 115 : SHP(1,i)=SHPTOT(1,i,iGau) 116 : SHP(2,i)=SHPTOT(2,i,iGau) 117 : SHP(3,i)=SHPTOT(3,i,iGau) 118 : ENDDO 118 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 118 : CALL DISTRR(XEL,SHP,NBNO,RR) 119 : C*OF DJAC=X2Pi*DJAC*RR 120 : DJAC=DJAC*RR 121 : K=1 122 : DO i=1,NBNO 123 : BGR(1,K)=SHP(2,i) 124 : BGR(2,K)=SHP(3,i) 125 : BGR(4,K+1)=SHP(2,i) 126 : BGR(5,K+1)=SHP(3,i) 127 : BGR(9,K)=SHP(1,i)/RR 128 : K=K+2 129 : ENDDO 130 : RETURN 131 : C ===== 132 : C 1.4 - Elements MASSIFS 2D FOURIER 133 : C ===== 134 : 130 DO i=1,NBNO 135 : SHP(1,i)=SHPTOT(1,i,iGau) 136 : SHP(2,i)=SHPTOT(2,i,iGau) 137 : SHP(3,i)=SHPTOT(3,i,iGau) 138 : ENDDO 138 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 138 : CALL DISTRR(XEL,SHP,NBNO,RR) 139 : C*OF DJAC=X2Pi*DJAC*RR 140 : C*OF IF (NN.EQ.0) DJAC=0.5*DJAC 141 : DJAC=DJAC*RR 142 : XNSUR=DBLE(NN)/RR 143 : K=1 144 : DO i=1,NBNO 145 : BGR(1,K)=SHP(2,i) 146 : BGR(2,K)=SHP(3,i) 147 : BGR(3,K)=-SHP(1,i)*XNSUR 148 : BGR(3,K+2)=-SHP(1,i)/RR 149 : BGR(4,K+1)=SHP(2,i) 150 : BGR(5,K+1)=SHP(3,i) 151 : BGR(6,K+1)=-SHP(1,i)*XNSUR 152 : BGR(7,K+2)=SHP(2,i) 153 : BGR(8,K+2)=SHP(3,i) 154 : BGR(9,K)=SHP(1,i)/RR 155 : BGR(9,K+2)=SHP(1,i)*XNSUR 156 : K=K+3 157 : ENDDO 158 : RETURN 159 : C ===== 160 : C 1.6 - Elements MASSIFS 3D 161 : C ===== 162 : 140 DO i=1,NBNO 163 : SHP(1,i)=SHPTOT(1,i,iGau) 164 : SHP(2,i)=SHPTOT(2,i,iGau) 165 : SHP(3,i)=SHPTOT(3,i,iGau) 166 : SHP(4,i)=SHPTOT(4,i,iGau) 167 : ENDDO 167 : CALL JACOBI(XEL,SHP,3,NBNO,DJAC) 168 : K=1 169 : DO i=1,NBNO 170 : BGR(1,K)=SHP(2,i) 171 : BGR(2,K)=SHP(3,i) 172 : BGR(3,K)=SHP(4,i) 173 : BGR(4,K+1)=SHP(2,i) 174 : BGR(5,K+1)=SHP(3,i) 175 : BGR(6,K+1)=SHP(4,i) 176 : BGR(7,K+2)=SHP(2,i) 177 : BGR(8,K+2)=SHP(3,i) 178 : BGR(9,K+2)=SHP(4,i) 179 : K=K+3 180 : ENDDO 181 : RETURN 182 : C ===== 183 : C 1.7 - Elements MASSIFS 1D 184 : C ===== 185 : C= 1.7.1 - Modes 1D PLAN 186 : 150 DO i=1,NBNO 187 : SHP(1,i)=SHPTOT(1,i,iGau) 188 : SHP(2,i)=SHPTOT(2,i,iGau) 189 : ENDDO 189 : CALL JACOBI(XEL,SHP,1,NBNO,DJAC) 190 : DO i=1,NBNO 191 : BGR(1,i)=SHP(2,i) 192 : ENDDO 193 : IF (IFOU.GE.7) THEN 194 : BGR(9,i)=1. 195 : IF (IFOU.EQ.11) BGR(5,i+1)=1. 196 : ENDIF 197 : RETURN 198 : C= 1.7.2 - Modes 1D AXIS 199 : 160 DO i=1,NBNO 200 : SHP(1,i)=SHPTOT(1,i,iGau) 201 : SHP(2,i)=SHPTOT(2,i,iGau) 202 : ENDDO 202 : CALL JACOBI(XEL,SHP,1,NBNO,DJAC) 202 : CALL DISTRR(XEL,SHP,NBNO,RR) 203 : C*OF DJAC=X2Pi*DJAC*RR 204 : DJAC=DJAC*RR 205 : DO i=1,NBNO 206 : BGR(1,i)=SHP(2,i) 207 : BGR(9,i)=SHP(1,i)/RR 208 : ENDDO 209 : IF (IFOU.EQ.14) BGR(5,i)=1. 210 : RETURN 211 : C= 1.7.3 - Mode 1D SPHE 212 : 170 DO i=1,NBNO 213 : SHP(1,i)=SHPTOT(1,i,iGau) 214 : SHP(2,i)=SHPTOT(2,i,iGau) 215 : ENDDO 215 : CALL JACOBI(XEL,SHP,1,NBNO,DJAC) 215 : CALL DISTRR(XEL,SHP,NBNO,RR) 216 : C*OF DJAC=X4Pi*DJAC*RR*RR 217 : DJAC=DJAC*RR*RR 218 : DO i=1,NBNO 219 : BGR(1,i)=SHP(2,i) 220 : ZZ=SHP(1,i)/RR 221 : BGR(5,i)=ZZ 222 : BGR(9,i)=ZZ 223 : ENDDO 224 : RETURN 225 : 226 : C 2 - Elements MASSIFS en THERMIQUE 227 : C =================================== 228 : 57 IFOR=IFOU+4 229 : GOTO (200,200,200,210,210,220,230,230,230,230, 230 : . 230,230,230,230,230,230,230,230,230 ),IFOR 231 : RETURN 232 : C ===== 233 : C 2.1 - Elements MASSIFS 2D 234 : C ===== 235 : 200 DO i=1,NBNO 236 : SHP(1,i)=SHPTOT(1,i,iGau) 237 : SHP(2,i)=SHPTOT(2,i,iGau) 238 : SHP(3,i)=SHPTOT(3,i,iGau) 239 : ENDDO 239 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 240 : DO i=1,NBNO 241 : BGR(1,i)=SHP(2,i) 242 : BGR(2,i)=SHP(3,i) 243 : ENDDO 244 : RETURN 245 : C ===== 246 : C 2.2 - Elements MASSIFS 2D AXISymetrique 247 : C 2.3 - Elements MASSIFS 2D FOURIER 248 : C ===== 249 : 210 DO i=1,NBNO 250 : SHP(1,i)=SHPTOT(1,i,iGau) 251 : SHP(2,i)=SHPTOT(2,i,iGau) 252 : SHP(3,i)=SHPTOT(3,i,iGau) 253 : ENDDO 253 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 253 : CALL DISTRR(XEL,SHP,NBNO,RR) 254 : C*OF DJAC=X2Pi*DJAC*RR 255 : DJAC=DJAC*RR 256 : DO i=1,NBNO 257 : BGR(1,i)=SHP(2,i) 258 : BGR(2,i)=SHP(3,i) 259 : ENDDO 260 : RETURN 261 : C ===== 262 : C 2.4 - Elements MASSIFS 3D 263 : C ===== 264 : 220 DO i=1,NBNO 265 : SHP(1,i)=SHPTOT(1,i,iGau) 266 : SHP(2,i)=SHPTOT(2,i,iGau) 267 : SHP(3,i)=SHPTOT(3,i,iGau) 268 : SHP(4,i)=SHPTOT(4,i,iGau) 269 : ENDDO 269 : CALL JACOBI(XEL,SHP,3,NBNO,DJAC) 270 : DO i=1,NBNO 271 : BGR(1,i)=SHP(2,i) 272 : BGR(2,i)=SHP(3,i) 273 : BGR(3,i)=SHP(4,i) 274 : ENDDO 275 : RETURN 276 : C ===== 277 : C 2.5 - Elements MASSIFS 1D 278 : C ===== 279 : 230 DO i=1,NBNO 280 : SHP(1,i)=SHPTOT(1,i,iGau) 281 : SHP(2,i)=SHPTOT(2,i,iGau) 282 : ENDDO 282 : CALL JACOBI(XEL,SHP,1,NBNO,DJAC) 283 : IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN 283 : CALL DISTRR(XEL,SHP,NBNO,RR) 284 : C*OF DJAC=X2Pi*DJAC*RR 285 : DJAC=DJAC*RR 286 : ELSE IF (IFOUR.EQ.15) THEN 286 : CALL DISTRR(XEL,SHP,NBNO,RR) 287 : C*OF DJAC=X4Pi*DJAC*RR*RR 288 : DJAC=DJAC*RR*RR 289 : ENDIF 290 : DO i=1,NBNO 291 : BGR(1,i)=SHP(2,i) 292 : ENDDO 293 : RETURN 294 : 295 : C 3 - Element COQUE DKT en MECANIQUE 296 : C ==================================== 297 : 28 DO i=1,NBNO 298 : SHP(1,i)=SHPTOT(1,i,iGau) 299 : SHP(2,i)=SHPTOT(2,i,iGau) 300 : SHP(3,i)=SHPTOT(3,i,iGau) 301 : ENDDO 301 : CALL JACOBI(XEL,SHP,2,NBNO,DJAC) 302 : K=1 303 : DO i=1,NBNO 304 : BGR(1,K)=SHP(2,i) 305 : BGR(2,K)=SHP(3,i) 306 : BGR(4,K+1)=SHP(2,i) 307 : BGR(5,K+1)=SHP(3,i) 308 : K=K+6 309 : ENDDO 310 : C= Prise en compte de l'excentrement des elements 310 : CALL GEOCST(XEL,GEOM) 310 : CALL BBGFDK(XX(iGau),YY(iGau),GEOM,BBF) 311 : K=2 312 : KK=0 313 : DO i=1,NBNO 314 : DO j=1,3 315 : BGR(1,K+j)=Excen*BBF(1,j+KK) 316 : BGR(2,K+j)=Excen*BBF(2,j+KK) 317 : BGR(4,K+j)=Excen*BBF(3,j+KK) 318 : BGR(5,K+j)=Excen*BBF(4,j+KK) 319 : ENDDO 320 : K=K+6 321 : KK=KK+3 322 : ENDDO 323 : C= Fin du traitement de l'excentrement 323 : CALL GERADK(XEL,GEOM) 323 : CALL BBGRDK(XX(iGau),YY(iGau),GEOM,BB) 324 : K=2 325 : KK=0 326 : DO i=1,3 327 : DO j=1,3 328 : BGR(3,K+j)= BB(1,j+KK) 329 : BGR(6,K+j)= BB(2,j+KK) 330 : BGR(7,K+j)=-BB(1,j+KK) 331 : BGR(8,K+j)=-BB(2,j+KK) 332 : ENDDO 333 : K=K+6 334 : KK=KK+3 335 : ENDDO 336 : RETURN 337 : 338 : END 339 : 340 : 341 :
© Cast3M 2003 - All rights reserved.
Disclaimer