bcoq2
C BCOQ2 SOURCE CHAT 06/03/29 21:15:33 5360 . IARR,XDPGE,YDPGE) C================================================================== C CALCUL DE LA MATRICE B DES COQUES @ 2 NOEUDS C ROUTINE FORTRAN PUR C GELE JANVIER 87 C================================================================== C ENTREES C IGAU=NUMERO DU POINT DE GAUSS C IFOU=IFOUR DE CCOPTIO C XEL=COORDONNEES LOCALE DE L'ELEMENT C NN=NUMERO DU MODE DE FOURIER C T(IGAU)=POSITION DU POINT DE GAUSS C P(IGAU)=POIDS DU POINT DE GAUSS C EXCEN = EXCENTREMENT C DIM3 = EPAISSEUR DANS L'AUTRE DIMENSION C XDPGE,YDPGE : COORDONNEE DU POINT AUTOUR DUQUEL C FAIT LE MOUVEMENT EN DEFO PLAN GENE C SORTIE C B(6,8)=MATRICE B AU POINT DE GAUSSPOUR IFOU GT 0 C B(4,6)=MATRICE B AU POINT DE GAUSSPOUR IFOU LE 0 C B(4,9)=MATRICE B AU POINT DE GAUSSPOUR IFOU EQ -3 C DJAC=JACOBIEN AU POINT DE GAUSS=POIGAU*LONG/2 (*R(IGAU), SI C IFOU EST SUPERIEUR OU EGAL A ZERO) C IARR=0 SI OK 1 SI LONGUEUR ELEMENT NULLE C 2 SI R / D INFERIEUR A 10-3 C================================================================== IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C Include contenant quelques constantes dont XPI, XZERO : -INC CCREEL PARAMETER(UNDE=.5D0,UN=1.D0,DEUX=2.D0,TRS=3.D0) PARAMETER(QUTR=4.D0,SIX=6.D0,DOUZ=12.D0) DIMENSION B(NSTRS,*),T(*),XEL(3,*),P(*) C C ---------------------------------INITIALISATION IARR=0 DJAC=XZERO IF(IFOU.GT.0) THEN LRE=8 ELSE IF(IFOU.LE.0) THEN LRE=6 IF(IFOU.EQ.-3) THEN LRE=9 ENDIF ENDIF C D=SQRT((XEL(1,2)-XEL(1,1))**2+(XEL(2,2)-XEL(2,1))**2) IF(D.EQ.0) THEN IARR=1 GOTO 4 ENDIF DD=UN/D RO=(XEL(1,1)+XEL(1,2))*UNDE R1=(XEL(2,1)+XEL(2,2))*UNDE SP=(XEL(1,2)-XEL(1,1))/D CP=(XEL(2,2)-XEL(2,1))/D SP2=SP*SP CP2=CP*CP SPCP=SP*CP C X FONCTION FORME NOEUD 2 RRRR RAYON C Y FONCTION FORME NOEUD 1 D LONGUEUR DD INVERSE LONGUEUR X=UNDE+UNDE*T(IGAU) Y=UNDE-UNDE*T(IGAU) RRRR=RO+UNDE*D*SP*T(IGAU) C --------------------------------- C C TEST D'ERREUR C IF(IFOU.GE.0) THEN IF(ABS(RRRR/D).LE.1.D-03) THEN IARR=2 GOTO 4 ENDIF ENDIF C C ---------------------------------CALCULS C IF(IFOU.LT.0) RRRR =UN U=X/RRRR V=Y/RRRR C C AXISYMETRIQUE DEFORMATIONS PLANES CONTRAINTES PLANES C IF(IFOU.LE.0) THEN C C EPSILON S S C B(1,1)=-SP*DD B(1,2)=-CP*DD B(1,4)=-B(1,1) B(1,5)=-B(1,2) C C KSI S S C AUX = SIX*T(IGAU)*DD*DD B(3,1)= CP*AUX B(3,2)=-SP*AUX B(3,3)=(QUTR-SIX*X)*DD B(3,4)=-B(3,1) B(3,5)=-B(3,2) B(3,6)=(DEUX-SIX*X)*DD C C MODIFICATION DEFORMATION PLANE GENERALISEE C IF (IFOU.EQ.-3) THEN RRRX=RO+UNDE*D*SP*T(IGAU) RRRY=R1+UNDE*D*CP*T(IGAU) B(2,7 )=UN B(2,8)=XDPGE-RRRX B(2,9)=RRRY-YDPGE B(4,8)=CP B(4,9)=SP ENDIF C C AXISYMETRIQUE C IF(IFOU.EQ.0) THEN C C EPSILON THETA THETA C B(2,1)= V*(SP2+CP2*Y*(UN+DEUX*X)) B(2,2)= SPCP*U*Y*T(IGAU) B(2,3)=-D*CP*X*Y*V B(2,4)= U*(SP2+CP2*X*(TRS-DEUX*X)) B(2,5)=-B(2,2) B(2,6)= D*CP*X*Y*U C C KSI THETA THETA C AUX =-SIX*U*Y*SP*DD B(4,1)= CP*AUX B(4,2)=-SP*AUX B(4,3)= SP*V*(TRS*X-UN) B(4,4)=-CP*AUX B(4,5)= SP*AUX B(4,6)=-SP*U*(TRS*X-DEUX) ENDIF C C FOURIER C ELSE IF(IFOU.GT.0) THEN AN=DBLE(NN) C C EPSILON S S C B(1,1)=-SP*DD B(1,2)=-CP*DD B(1,5)=-B(1,1) B(1,6)=-B(1,2) C C EPSILON THETA THETA C B(2,1)= V*(SP2+CP2*Y*(UN+DEUX*X)) B(2,2)= SPCP*U*Y*T(IGAU) B(2,3)=+AN*V B(2,4)=-D*CP*X*Y*V B(2,5)= U*(SP2+CP2*X*(TRS-DEUX*X)) B(2,6)=-B(2,2) B(2,7)=+AN*U B(2,8)= D*CP*X*Y*U C C EPSILON S THETA C B(3,1)=-SP*B(2,3) B(3,2)=-CP*B(2,3) B(3,3)=-DD-V*SP B(3,5)=-SP*B(2,7) B(3,6)=-CP*B(2,7) B(3,7)=+DD-U*SP C C KSI S S C AUX= SIX*T(IGAU)*DD*DD B(4,1)= CP*AUX B(4,2)=-SP*AUX B(4,4)=(QUTR-SIX*X)*DD B(4,5)=-B(4,1) B(4,6)=-B(4,2) B(4,8)=(DEUX-SIX*X)*DD C C KSI THETA THETA C AUX1=SIX*U*Y*SP*DD AUX=(UN+DEUX*X)*(AN*V)**2+AUX1 B(5,1)=-CP*AUX B(5,2)= SP*AUX B(5,3)=-B(2,3)*CP/RRRR B(5,4)= D*X*(AN*V)**2-SP*V*(UN-TRS*X) AUX=(TRS-DEUX*X)*(AN*U)**2-AUX1 B(5,5)=-CP*AUX B(5,6)= SP*AUX B(5,7)=-B(2,7)*CP/RRRR B(5,8)=-D*Y*(AN*U)**2-SP*U*(TRS*X-DEUX) C C KSI S THETA C AUX1=DOUZ*U*Y*AN*DD AUX=-AN*SP*(DEUX+QUTR*X)*V*V-AUX1 B(6,1)=-CP*AUX B(6,2)= SP*AUX B(6,3)= DEUX*(CP/D+SPCP*V)/RRRR B(6,4)= AN*V*((DEUX-SIX*X)-DEUX*D*X*V*SP) AUX=AN*SP*(QUTR*X-SIX)*U*U+AUX1 B(6,5)=-CP*AUX B(6,6)= SP*AUX B(6,7)= DEUX*(-CP/D+SPCP*U)/RRRR B(6,8)= AN*U*((SIX*X-QUTR)+DEUX*D*X*V*SP) ENDIF IF(IFOU.EQ.0.OR.(IFOU.EQ.1.AND.NN.EQ.0)) THEN DJAC=D*UNDE*P(IGAU)*RRRR*2*XPI ELSEIF(IFOU.EQ.1.AND.NN.NE.0) THEN DJAC=D*UNDE*P(IGAU)*RRRR*XPI ELSE DJAC=D*UNDE*P(IGAU)*RRRR*DIM3 ENDIF * * ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT * NSTRS2 = NSTRS / 2 DO 88 IJL=1,NSTRS2 DO 881 IJC=1,LRE B(IJL,IJC)=B(IJL,IJC)+EXCEN*B(IJL+NSTRS2,IJC) 881 CONTINUE 88 CONTINUE * 4 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales