1 : C LUMP2 SOURCE CHAT 05/01/13 01:26:58 5004 2 : SUBROUTINE LUMP2(REL,LRE,RE,IFOUR) 3 : c==================================================================== 4 : c 5 : c utilisé par l'opérateur LUMP 6 : c 7 : c remplissage de RE à partir de 8 : c rel (lre,lre) matrice de rigidite triangulaire 9 : c inferieure. 10 : c 11 : c méthode HRZ 12 : c on diagonalise la matrice en conservant le rapport 13 : c des termes diagonaux de la matrice consistante 14 : c et en corrigeant pour assurer que la masse est conservée 15 : c 16 : c on suppsoe que RE est initialisée à 0 17 : c 18 : c==================================================================== 19 : IMPLICIT INTEGER(I-N) 20 : IMPLICIT REAL*8(A-H,O-Z) 21 : DIMENSION REL(LRE,*),RE(LRE,*) 22 : * 23 : * 24 : IF ( IFOUR .EQ. -3) LRE=LRE-3 25 : * 26 : * calcul de la masse de l'element 27 : * 28 : SUM1 = 0.D0 29 : SUM2 = 0.D0 30 : DO 200 IA=1,LRE 31 : DO 100 IB=1,LRE 32 : I = MAX(IA,IB) 33 : J = MIN(IA,IB) 34 : SUM1 = SUM1 + REL(I,J) 35 : 100 CONTINUE 36 : SUM2 = SUM2 + REL(IA,IA) 37 : 200 CONTINUE 38 : * 39 : * normalisation 40 : RAP = SUM1 / SUM2 41 : DO 300 I=1,LRE 42 : RE(I,I)=REL(I,I)*RAP 43 : 300 CONTINUE 44 : * 45 : * cas des déformations planes généralisées 46 : * la diagonalisation est différente pour les ddl transverses 47 : IF ( IFOUR .EQ. -3) THEN 48 : * inconnue RX 49 : RE(LRE+2,LRE+2)=(REL(LRE+2,LRE+2)+REL(LRE+3,LRE+3))/2.D0 50 : * inconue RY 51 : RE(LRE+3,LRE+3)=RE(LRE+2,LRE+2) 52 : * inconnue UZ 53 : RE(LRE+1,LRE+1)=REL(LRE+1,LRE+1) 54 : LRE = LRE + 3 55 : ENDIF 56 : * 57 : RETURN 58 : END 59 : 60 :
© Cast3M 2003 - All rights reserved.
Disclaimer