hbmz
C HBMZ SOURCE OF166741 26/05/11 21:15:16 12538 *======================================================================= * Calcule la matrice de raideur dynamique Z * * Z = [ Z0 0 0 ... ] * [ Z1 0 ... ] * [ ... ] * [ Zh ] * * avec Zj = | [ K-(jw)²M jwC ] si LOGAMO * | [ -jwC K-(jw)²M ] * | * | [ K-(jw)²M ] si .not.LOGAMO * | [ K-(jw)²M ] * * TODO : prevoir le cas des matrices non diagonales *======================================================================= *----- Declarations ---------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC TMDYNC INTEGER NT,NHBM,NDDL LOGICAL LOGAMO INTEGER I,J,K,L,M,P,PK,KM,KK,KASM REAL*8 AA,BB * Segment des variables MTQ=KTQ * Segment des proprietes mecaniques MTKAM=KTKAM *----- Initialisation -------------------------------------------------- * test ici mais a replacer an amont + tard DO J = 1,NT DO I = 1,NT ZZ(I,J)=0.D0 ENDDO ENDDO *----- Remplissage (cas K, C et M diagonales uniquement) --------------- c harmonique 0 DO M=1,NDDL ZZ(M,M) = XK(M,1) ENDDO c harmoniques > 0 c -cas non conservatif (i.e. avec amortissement) IF (LOGAMO) THEN DO J=2,2*NHBM,2 DO I=1,NDDL AA = XK(I,1) - ((OMEG*J/2)**2)*XM(I,1) BB = (OMEG*J/2)*XASM(I,1) ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-2))+I) = AA ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-1))+I) = BB ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-2))+I) = -BB ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-1))+I) = AA ENDDO ENDDO c -cas conservatif (i.e. sans amortissement) ELSE DO J=2,2*NHBM,2 DO I=1,NDDL AA = XK(I,1) - ((OMEG*J/2)**2)*XM(I,1) ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-2))+I) = AA ZZ(NDDL*(1+(J-2))+I,NDDL*(1+(J-1))+I) = 0.D0 ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-2))+I) = 0.D0 ZZ(NDDL*(1+(J-1))+I,NDDL*(1+(J-1))+I) = AA ENDDO ENDDO ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales