dyne42
C DYNE42 SOURCE PV090527 24/12/25 21:15:02 12109 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) *---------------------------------------------------------------* * * * Opérateur DYNE : algorithme de Fu - de Vogelaere * * ________________________________________________ * * * * Pour les corps rigides, calcul des fausses déformées * * modales de rotation . * * * * Paramètres * * * * es XAXROT Tableau contenant l'axe de rotation * * e MERR Indique si le calcul s'est effectué correctement * * e IPOINT Numéro du point ou le calcul s'effectue * * e ICDG Numéro du point centre de gravité du corps * * e IDIMB Dimension de travail * * * * * * Auteur, date de création: * * * * Samuel DURAND : le 10 Octobre 1996 : Création * * * * * * * * * *---------------------------------------------------------------* * -INC PPARAM -INC CCOPTIO -INC SMCOORD * REAL*8 XDROTA(2,*),XAXROT(3),XCDG(3),XPOINT(3) REAL*8 XXGP(3) * XEPSI=0.000000000001 IF (MERR.EQ.1) THEN DO 9 ID=1,IDIM * Coordonnées du centre de gravité G XCDG(ID)=XCOOR((ICDG-1)*(IDIM+1) +ID) * Coordonnées du point du maillage P XPOINT(ID) = XCOOR((IPOINT-1)*(IDIM+1) +ID) 9 CONTINUE XPROJ = 0.D0 DO 10 ID=1,IDIM XXGP(ID) = XPOINT(ID) - XCDG(ID) 10 CONTINUE IF (IDIM.EQ.3) THEN * Vecteur GP projetté sur le plan de rotation DO 11 ID=1,IDIM XPROJ = XPROJ + XXGP(ID)*XAXROT(ID) 11 CONTINUE DO 13 ID=1,IDIM XDROTA(1,ID) = XXGP(ID) - XPROJ*XAXROT(ID) 13 CONTINUE XDROTA(2,1)=XAXROT(2)*XDROTA(1,3)-XAXROT(3)*XDROTA(1,2) XDROTA(2,2)=XAXROT(3)*XDROTA(1,1)-XAXROT(1)*XDROTA(1,3) XDROTA(2,3)=XAXROT(1)*XDROTA(1,2)-XAXROT(2)*XDROTA(1,1) ELSE IF (XAXROT(1).GT.0) THEN ISIGNE =1 ELSE ISIGNE = -1 ENDIF DO 14 ID=1,IDIM XDROTA(1,ID) = XXGP(ID) 14 CONTINUE XDROTA(2,1)=-ISIGNE*XDROTA(1,2) XDROTA(2,2)= ISIGNE*XDROTA(1,1) ENDIF * ELSE DO 18 ID=1,IDIM XDROTA(1,ID)=0.D0 XDROTA(2,ID)=0.D0 18 CONTINUE ENDIF * DO 20 ID=(IDIM+1),IDIMB XDROTA(1,ID)=0.D0 XDROTA(2,ID)=0.D0 20 CONTINUE END
© Cast3M 2003 - Tous droits réservés.
Mentions légales