coq2kc
C COQ2KC SOURCE CHAT 06/03/29 21:17:27 5360 + AMM,IARR,XDPGE,YDPGE,VROT) C C*********************************************************************** C MATRICE DE MASSE D'UN ELEMENT COQUE A 2 NOEUDS C CODE X.DE MAZANCOURT DECEMBRE 85 C*********************************************************************** C ENTREES C Q(3,2) : COORDONNEES DES 2 NOEUDS , R PUIS Z C E : EPAISSEUR ( CONSTANTE ) C RHO : MASSE VOLUMIQUE C IMATMA=1-MATRICE MASSE- OU 0-VECTEUR MASSE-(CAS DE MATR DIAGONALE) C AVANT L'APPEL IL EST MIS A 1 C IFOUR=IFOUR DE CCOPTIO C NIFOU=NIFOUR DE CCOPTIO C LRE = TAILEE DE LA MATRICE MASSE 6 SI IFOU.LE.0 8 SI IFOU.GT.0 C SORTIE C AMM(LRE,LRE) = MATRICE DE MASSE C IARR:INDICATEUR D'ERREUR,VAUT ZERO NORMALEMENT C*********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) C Include contenant quelques constantes dont XPI : -INC CCREEL DIMENSION Q(3,*),AM(8,8),AMM(LRE,*) DIMENSION II(6) DIMENSION VROT(*) DATA II/1,2,4,5,6,8/ C C ---------- INITIALISATION C IARR=0 R=.5D0*(Q(1,1)+Q(1,2)) Y=.5D0*(Q(2,1)+Q(2,2)) XD=XDPGE-R YD=Y-YDPGE SP=Q(1,2)-Q(1,1) CP=Q(2,2)-Q(2,1) D2=CP*CP+SP*SP D=SQRT(D2) E2=E*E OMEGA=VROT(2) C C -----------------------------TESTS D'ERREUR C IF(D.EQ.0) THEN IARR=1 GOTO 60 ENDIF IF(ABS(R/D).LE.1.D-03) THEN IARR=2 GOTO 60 ENDIF C COEF=(-1.D0)*RHO*E*XPI*(OMEGA**2) C ---------- PRELIMINAIRES IF(NIFOU.EQ.0) THEN COEF= COEF ELSE COEF= 0.50*COEF ENDIF SP=SP/D CP=CP/D C C ---------- CALCULS C AM(1,1) = -D*COEF*(7*CP**2*SP*D-14*CP**2*R- . 2*CP**4*R+35*D*SP-140*R)/210 AM(1,2) = SP*D*CP*COEF*(-4*CP**2*R+7*D*SP-14*R)/420 AM(1,3) = 0 AM(1,4) = CP*D**2*COEF*(CP**2*SP*D-2*CP**2*R+7*D*SP-42*R)/420 AM(1,5) = -D*COEF*R*(CP**4+7*CP**2-35)/105 AM(1,6) = -SP*D*CP*COEF*(-4*CP**2*R+7*D*SP-14*R)/420 AM(1,7) = 0 AM(1,8) = -CP*D**2*COEF*(CP**2*SP*D+2*CP**2*R-28*R)/420 AM(2,1) = SP*D*CP*COEF*(-4*CP**2*R+7*D*SP-14*R)/420 AM(2,2) = -D*COEF*CP**2*(-1+CP**2)*R/105 AM(2,3) = 0 AM(2,4) = -CP**2*SP*(-2*R+D*SP)*COEF*D**2/420 AM(2,5) = SP*D*CP*COEF*(4*CP**2*R+7*D*SP+14*R)/420 AM(2,6) = D*COEF*CP**2*(-1+CP**2)*R/105 AM(2,7) = 0 AM(2,8) = CP**2*D**2*SP*COEF*(D*SP+2*R)/420 AM(3,1) = 0 AM(3,2) = 0 AM(3,3) = -D*COEF*(D*SP-4*R)/6 AM(3,4) = 0 AM(3,5) = 0 AM(3,6) = 0 AM(3,7) = D*COEF*R/3 AM(3,8) = 0 AM(4,1) = CP*D**2*COEF*(CP**2*SP*D-2*CP**2*R+7*D*SP-42*R)/420 AM(4,2) = -CP**2*SP*(-2*R+D*SP)*COEF*D**2/420 AM(4,3) = 0 AM(4,4) = -D**3*CP**2*COEF*(D*SP-8*R)/420 AM(4,5) = -CP*D**2*COEF*(CP**2*SP*D-2*CP**2*R+28*R)/420 AM(4,6) = CP**2*SP*(-2*R+D*SP)*COEF*D**2/420 AM(4,7) = 0 AM(4,8) = -D**3*CP**2*COEF*R/70 AM(5,1) = -D*COEF*R*(CP**4+7*CP**2-35)/105 AM(5,2) = SP*D*CP*COEF*(4*CP**2*R+7*D*SP+14*R)/420 AM(5,3) = 0 AM(5,4) = -CP*D**2*COEF*(CP**2*SP*D-2*CP**2*R+28*R)/420 AM(5,5) = D*COEF*(2*CP**4*R+7*CP**2*SP*D+14*CP**2*R+ . 35*D*SP+140*R)/210 AM(5,6) = -SP*D*CP*COEF*(4*CP**2*R+7*D*SP+14*R)/420 AM(5,7) = 0 AM(5,8) = CP*D**2*COEF*(CP**2*SP*D+2*CP**2*R+7*D*SP+42*R)/420 AM(6,1) = -SP*D*CP*COEF*(-4*CP**2*R+7*D*SP-14*R)/420 AM(6,2) = D*COEF*CP**2*(-1+CP**2)*R/105 AM(6,3) = 0 AM(6,4) = CP**2*SP*(-2*R+D*SP)*COEF*D**2/420 AM(6,5) = -SP*D*CP*COEF*(4*CP**2*R+7*D*SP+14*R)/420 AM(6,6) = -D*COEF*CP**2*(-1+CP**2)*R/105 AM(6,7) = 0 AM(6,8) = -CP**2*D**2*SP*COEF*(D*SP+2*R)/420 AM(7,1) = 0 AM(7,2) = 0 AM(7,3) = D*COEF*R/3 AM(7,4) = 0 AM(7,5) = 0 AM(7,6) = 0 AM(7,7) = D*COEF*(D*SP+4*R)/6 AM(7,8) = 0 AM(8,1) = -CP*D**2*COEF*(CP**2*SP*D+2*CP**2*R-28*R)/420 AM(8,2) = CP**2*D**2*SP*COEF*(D*SP+2*R)/420 AM(8,3) = 0 AM(8,4) = -D**3*CP**2*COEF*R/70 AM(8,5) = CP*D**2*COEF*(CP**2*SP*D+2*CP**2*R+7*D*SP+42*R)/420 AM(8,6) = -CP**2*D**2*SP*COEF*(D*SP+2*R)/420 AM(8,7) = 0 AM(8,8) = D**3*CP**2*COEF*(D*SP+8*R)/420 C 60 CONTINUE DO 500 IA= 1,8 DO 5001 IB= 1,8 AMM(IA,IB)=AM(IA,IB) 5001 CONTINUE 500 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales