cq4gr1
C CQ4GR1 SOURCE CB215821 24/04/12 21:15:32 11897 C======================================================================= C C CALCULE LA MATRICE DE RAIDEUR LIEE A LA VARIATION DE PRESSION DUE C AU MOUVEMENT SUIVANT VECZ DANS UN CHAMP DE PESANTEUR c élément coq4 C C cette matrice est non symetrique mais combinée avec la mattrice kp c donne une matrice symetrique c'est pourquoi on calcule les matrices c symetriques et dissymetriques c c C C ENTREE C XE(4,4)=COODONNEES DE L ELEMENT C RG =MASSE VOLUMIQUE * ACCELERATION DE GRAVITE C IPOIN1 =VECTEUR(POINT) DEFINISSANT LE SENS DE GRAVITE * IDISS : 0 ---> MATRICE SYMETRIQUE * 1 ---> MATRICE DISSYMETRIQUE * IXMATR : pointeur du segment xmatri * ipmint: pointeur sur le segment d'integration C TRAVAIL C XEL(4,4) =COORDONNEES LOCALES DE L ELEMENT C BPSS(3,3) =MATRICE DE PASSAGE C VECN(3) =VECTEUR DEFINISSANT LA NORMALE C VECZ(3) =VECTEUR DEFINISSANT LE SENS DE GRAVITE * rel : matrice masse (repeur local) avec rho=1. Elle sert à * calculer les termes de la matrice de rigidité qui sont * similaires. C * ON CALCULE : C RE(24,24)=MATRICE DE RAIDEUR REPERE GLOBAL (dans le segment xmatri) C C JUILLET 95 I. POLITOPOULOS C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC SMRIGID -INC SMINTE -INC SMMODEL DIMENSION XE(3,4),XEL(3,4),BPSS(3,3),XRE(24,24) DIMENSION VECZ(3),VECN(3),RHOMAT(6,6), SHPWRK(6,4) DIMENSION BGENE(6,24),REL(24,24) MINTE=IPMINT C C COORDONNEES LOCALES C C C MISE A 0 DE LA MATRICE C XMATRI = IXMATR C C CONSTRUCTION DE LA NORMALE **** il serait plus correct d'utiliser celle calculée dans cq4loc **** mais elle n'est pas en sortie et je suis paresseux C XG1 = XE(1,2) - XE(1,1) YG1 = XE(2,2) - XE(2,1) ZG1 = XE(3,2) - XE(3,1) XG2 = XE(1,3) - XE(1,1) YG2 = XE(2,3) - XE(2,1) ZG2 = XE(3,3) - XE(3,1) VECN(1) = YG1*ZG2 - ZG1*YG2 VECN(2) = ZG1*XG2 - XG1*ZG2 VECN(3) = XG1*YG2 - YG1*XG2 XNORM = VECN(1)*VECN(1) + VECN(2)*VECN(2) + VECN(3)*VECN(3) XNORM = SQRT(XNORM) DO 10 IA=1,3 VECN(IA) = VECN(IA)/XNORM 10 CONTINUE C C DETERMINATION ET NORMALISATION DE VECZ C IF (IPOIN1.NE.0) THEN VECZ(1) = XCOOR((IPOIN1-1)*(IDIM+1) + 1) VECZ(2) = XCOOR((IPOIN1-1)*(IDIM+1) + 2) VECZ(3) = XCOOR((IPOIN1-1)*(IDIM+1) + 3) ELSE VECZ(1) = VECN(1) VECZ(2) = VECN(2) VECZ(3) = VECN(3) ENDIF XNORM = VECZ(1)*VECZ(1) + VECZ(2)*VECZ(2) + VECZ(3)*VECZ(3) XNORM = SQRT(XNORM) DO 20 IA=1,3 VECZ(IA) = VECZ(IA)/XNORM 20 CONTINUE c c construction de la matrice masse dans le repere local avec rho=1 c RHOMAT( 1, 1)=1.D0 RHOMAT( 2, 2)=1.D0 RHOMAT( 3, 3)=1.D0 DO 21 IGAU=1,4 C IERT=1 JACOBIANO=<0 DJAC=DJAC*POIGAU(IGAU) LRE = 24 21 CONTINUE C C TERMES DE LA MATRICE DANS LE REPERE GLOBAL C DO 100 IA=1,19,6 DO 110 IC= 1,3 IAA = IA + IC - 1 DO 120 IB=1,19,6 DO 130 ID = 1,3 IBB = IB + ID -1 XRE(IBB ,IAA) =REL(IB,IA)*VECN(ID)*VECZ(IC)*RG 130 CONTINUE 120 CONTINUE 110 CONTINUE 100 CONTINUE * symetrisation de la matrice DO 200 IA=1,19,6 DO 210 IC= 1,3 IAA = IA + IC - 1 DO 220 IB=1,19,6 DO 230 ID = 1,3 IBB = IB + ID -1 IF (IDISS.EQ.0) THEN RE(IAA,IBB,iel) = 0.5D0*(XRE(IAA, IBB) + XRE(IBB,IAA)) ELSE RE(IAA,IBB,iel) = XRE(IAA,IBB) ENDIF 230 CONTINUE 220 CONTINUE 210 CONTINUE 200 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales