quahm2
C QUAHM2 SOURCE CHAT 05/01/13 02:40:56 5004 C QUAHM2 SOURCE AM1 95/11/24 22:54:38 1918 # NHARM,VKL12,VKL23,VKL33,POIGAU,ISDJC,LRE,REL,IRET) C======================================================================= C C CALCULE LES TERMES EN P * PI ,PI * (UR,RT) ,(UR,RT) *(UR,RT) C (UT,RR) * (UT,RR) , PI * (UT,RR) DE LA MATRICE C MASSE DANS LE CAS AXISYMETRIQUE OU FOURIER POUR C LA FORMULATION (37) HOMOGENE C======================================================================= C INPUT C IGAU=NUMERO DU POINT DE GAUSS C ITEL=NUMERO DE L ELEMENT DANS NOMTP C MFR =NUMERO DE LA FORMULATION C NBNO=NOMBRE DE NOEUDS C XEL =COORDONNEES DE L ELEMENT C IFOU=IFOUR DE CCOPTIO C NHARM=NUMERO DU MODE DE FOURIER C VKL12=-((COEFPI*COEFPR)/(RHOF*C**2))*SFLU/SCEL C VKL23=(BET11+BET22)*COEFPI/(2.*SCEL) C VKL33=(RHOS*2.+RHOF*(BET11+BET22))/SCEL C POIGAU=MINTE.POIGAU(IGAU) C LRE =NOMBRE DE D.D.L DE LA MATRICE DE RIGIDITE C SHPTOT(6,NBNO,NBGAU)=FONCTIONS DE FORMES ET DERIVEES C ISDJC = INDICATEUR SUR LE SIGNE DU JACOBIEN C ZONE DE TRAVAIL C SHP(5,NBNO)=TABLEAU DE TRAVAIL C OUTPUT C ISDJC = INDICATEUR SUR LE SIGNE DU JACOBIEN C REL=MATRICE DE MASSE C IRET:INDICATEUR = 1 : SUCCES C 0 : ECHEC (ELEMENT MELE INCOMPATIBLE ) C 2 : ECHEC (JACOBIEN NUL ) C 3 :ECHEC (ROUTINE N EST VALABLE QU C EN AXISYMETRIQUE OU FOURIER ) C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) IF (ITEL.EQ.126) GOTO 10 C C ERREUR : TYPE D' ELEMENT INCOMPATIBLE AVEC LA FORMULATION C IRET = 0 GOTO 666 10 CONTINUE IF (IFOU.EQ.0.OR.IFOU.EQ.1) GOTO 11 C C MESSAGE D ERREUR : ROUTINE N EST VALABLE QU EN FOURIER C OU EN AXISYMETRIQUE C IRET = 3 GOTO 666 11 CONTINUE C C ELEMENTS HOMOGENEISES QUAH EN AXISYMETRIE OU EN FOURIER C NBDL = LRE/NBNO NOMBRE DE D.D.L PAR NOEUD C C C SHP(1,I) : FONCTION DE FORME C SHP(2,I) : DERIVEE % R DE LA FONCTION DE FORME C SHP(3,I) : DERIVEE % Z DE LA FONCTION DE FORME C SHP(1,NP)=SHPTOT(1,NP,IGAU) SHP(2,NP)=SHPTOT(2,NP,IGAU) SHP(3,NP)=SHPTOT(3,NP,IGAU) 101 CONTINUE C IF (DJAC.EQ.0.) GOTO 667 IF (DJAC.LT.0.) ISDJC = ISDJC + 1 C C FONCTIONS DE FORME C SHP(4,1)=SHP(1,1) + SHP(1,4) SHP(4,2)=SHP(1,2) + SHP(1,3) SHP(4,3)=0.D0 SHP(4,4)=0.D0 C XZH=SHP(1,3) + SHP(1,4) C A1=MIN(XEL(2,1),XEL(2,2)) A2=MIN(XEL(2,1),XEL(2,3)) A3=MIN(XEL(2,1),XEL(2,4)) A4=MIN(A1,A2) A5=MIN(A1,A3) Z1=MIN(A4,A5) C B1=MAX(XEL(2,1),XEL(2,2)) B2=MAX(XEL(2,1),XEL(2,3)) B3=MAX(XEL(2,1),XEL(2,4)) B4=MAX(B1,B2) B5=MAX(B1,B3) Z2=MAX(B4,B5) C RH=Z2-Z1 C S1=SHP(1,1) + SHP(1,4) S2=SHP(1,2) + SHP(1,3) C C FONCTIONS DE FORME EN Z C XZH= SHP(1,3) + SHP(1,4) C SHP(5,1)=1.D0-(3.D0*XZH*XZH)+(2.D0*XZH*XZH*XZH) SHP(5,2)=3.D0*(XZH**2)-(2.D0*XZH*XZH*XZH) SHP(5,3)=(RH*XZH)*(1.D0-2.D0*XZH+XZH*XZH) SHP(5,4)=(RH*XZH)*(XZH*XZH-XZH) C C FONCTIONS DE FORME POUR LA FLEXION C SHP(6,1)=S1*SHP(5,1) SHP(6,2)=S2*SHP(5,1) SHP(6,3)=S2*SHP(5,2) SHP(6,4)=S1*SHP(5,2) C SHP(6,5)=S1*SHP(5,3) SHP(6,6)=S2*SHP(5,3) SHP(6,7)=S2*SHP(5,4) SHP(6,8)=S1*SHP(5,4) C C C3=MIN(XEL(1,1),XEL(1,4)) R1=MIN(C4,C5) C D1=MAX(XEL(1,1),XEL(1,2)) D2=MAX(XEL(1,1),XEL(1,3)) D3=MAX(XEL(1,1),XEL(1,4)) D4=MAX(D1,D2) D5=MAX(D1,D3) R2=MAX(D4,D5) C DELTAR = R2 - R1 DV = (DELTAR*RH)/4.d0 C DJAC = ABS(DJAC) C C C TERMES EN P * PI C DJAC1 = ABS(DJAC)*POIGAU IX1=0 IY1=0 DO 102 IX=2,LRE ,NBDL IX1=IX1 + 1 DO 103 IY=1,IX ,NBDL IY1=IY1 + 1 REL(IY,IX) = REL(IY,IX) + VKL12*DJAC1*SHP(1,IX1)*SHP(1,IY1) REL(IX,IY) = REL(IY,IX) 103 CONTINUE IY1=0 102 CONTINUE DO 104 IX=2+NBDL,LRE ,NBDL IX2=IX - NBDL DO 105 IY=1,IX2 ,NBDL REL(IY+1,IX-1) = REL(IY,IX) REL(IX-1,IY+1) = REL(IY+1,IX-1) 105 CONTINUE 104 CONTINUE C C TERMES EN PI * (UR , RT ) C C IX1=0 IY1=0 DO 106 IX=3,LRE ,NBDL IX1=IX1 + 1 DO 107 IY=2,IX ,NBDL IY1=IY1 + 1 REL(IY,IX) = REL(IY,IX) + VKL23*DJAC1*SHP(2,IY1) #*SHP(6,IX1) REL(IY,IX+1) = REL(IY,IX+1) + VKL23*DJAC1*SHP(2,IY1) #*SHP(6,IX1+4) REL(IX,IY) = REL(IY,IX) REL(IX+1,IY) = REL(IY,IX+1) 107 CONTINUE IY1=0 106 CONTINUE IX1=1 IY1=0 DO 108 IX=2+NBDL,LRE ,NBDL IX1=IX1 + 1 DO 109 IY=3,IX ,NBDL IY1=IY1 + 1 REL(IY,IX) = REL(IY,IX) + VKL23*DJAC1*SHP(2,IX1) #*SHP(6,IY1) REL(IY+1,IX) = REL(IY+1,IX) + VKL23*DJAC1*SHP(2,IX1) #*SHP(6,IY1+4) REL(IX,IY) = REL(IY,IX) REL(IX,IY+1) = REL(IY+1,IX) 109 CONTINUE IY1=0 108 CONTINUE C IF ( IFOU.EQ.1) THEN C C TERMES EN PI * (UT , RR ) C NON NULS QU EN FOURIER C DJAC2 = ABS(DJAC)*POIGAU C VKL25 = -1.D0* VKL23*NHARM / RR IX1=0 IY1=0 DO 110 IX=5,LRE ,NBDL IX1=IX1 + 1 DO 111 IY=2,IX ,NBDL IY1=IY1 + 1 REL(IY,IX) = REL(IY,IX) + VKL25*DJAC2*SHP(1,IY1)*SHP(6,IX1) REL(IY,IX+1) = REL(IY,IX+1) + VKL25*DJAC2*SHP(1,IY1) #*SHP(6,IX1+4)*(-1.D0) REL(IX,IY) = REL(IY,IX) REL(IX+1,IY) = REL(IY,IX+1) 111 CONTINUE IY1=0 110 CONTINUE IX1=1 IY1=0 DO 112 IX=2+NBDL,LRE ,NBDL IX1=IX1 + 1 DO 113 IY=5,IX ,NBDL IY1=IY1 + 1 REL(IY,IX) = REL(IY,IX) + VKL25*DJAC2*SHP(1,IX1)*SHP(6,IY1) REL(IY+1,IX) = REL(IY+1,IX) + VKL25*DJAC2*SHP(1,IX1) #*SHP(6,IY1+4)*(-1.D0) REL(IX,IY) = REL(IY,IX) REL(IX,IY+1) = REL(IY+1,IX) 113 CONTINUE IY1=0 112 CONTINUE ENDIF C C TERMES EN (UR,RT ) * (UR , RT ) C C IX1=0 IY1=0 DO 114 IX=3,LRE ,NBDL IX1=IX1 + 1 DO 115 IY=3,IX ,NBDL IY1=IY1 + 1 C REL(IY,IX) = REL(IY,IX) + VKL33*DJAC1*SHP(6,IY1)*SHP(6,IX1) REL(IY,IX+1) = REL(IY,IX+1) + VKL33*DJAC1*SHP(6,IY1)*SHP(6,IX1+4) REL(IY+1,IX) = REL(IY+1,IX) + VKL33*DJAC1*SHP(6,IY1+4)*SHP(6,IX1) REL(IY+1,IX+1) = REL(IY+1,IX+1)+VKL33*DJAC1*SHP(6,IY1+4) #*SHP(6,IX1+4) REL(IX,IY) = REL(IY,IX) REL(IX+1,IY) = REL(IY,IX+1) REL(IX,IY+1) = REL(IY+1,IX) REL(IX+1,IY+1) = REL(IY+1,IX+1) 115 CONTINUE IY1=0 114 CONTINUE C IF ( IFOU.EQ.1) THEN C C TERMES EN (UT,RR ) * (UT , RR ) C NON NULS QU EN FOURIER C IX1=0 IY1=0 DO 303 IX=5,LRE ,NBDL IX1=IX1 + 1 DO 403 IY=5,IX ,NBDL IY1=IY1 + 1 REL(IY,IX) = REL(IY,IX) + VKL33*DJAC1*SHP(6,IY1)*SHP(6,IX1) REL(IY,IX+1) = REL(IY,IX+1) + VKL33*DJAC1*SHP(6,IY1)*SHP(6,IX1+4) #*(-1.D0) REL(IY+1,IX) = REL(IY+1,IX) + VKL33*DJAC1*SHP(6,IY1+4)*SHP(6,IX1) #*(-1.D0) REL(IY+1,IX+1) = REL(IY+1,IX+1)+VKL33*DJAC1*SHP(6,IY1+4) #*SHP(6,IX1+4) REL(IX,IY) = REL(IY,IX) REL(IX+1,IY) = REL(IY,IX+1) REL(IX,IY+1) = REL(IY+1,IX) REL(IX+1,IY+1) = REL(IY+1,IX+1) 403 CONTINUE IY1=0 303 CONTINUE C ENDIF IRET = 1 GOTO 666 C C MESSAGE D ERREUR : ELEMENT A SURFACE NULLE C 667 CONTINUE IRET = 2 GOTO 666 C 666 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales