bjo2gn
C BJO2GN SOURCE CHAT 05/01/12 21:40:25 5004 . EPAIST,BGENE,DJAC,XDPGE,YDPGE,IRRT) C======================================================================= C C PPj POUR LES JOINT GENERALISE C CALCUL DE LA MATRICE B = TETA * ( N , -N ) C ET DU JACOBIEN EN IGAU POUR UN JOINT 2D C ROUTINE FORTRAN PUR C P. PEGON 2001 d'apres CODE S. FELIX MAI 92 C======================================================================= C INPUT C IGAU = NUMERO DU POINT DE GAUSS C MFR = NUMERO DE LA FORMULATION C XEL = COORDONNEES DES NOEUDS DE L'ELEMENT C BPSS = MATRICE DE PASSAGE C BPSS(,) = AXE S1 C BPSS(,) = AXE SN C SHPTOT= FONCTIONS DE FORME ET DERIVEES DANS L'ESPACE DE REFERENCE C SHPTOT(1, ) = FONCTION DE FORME C SHPTOT(2, ) = DERIVEES PAR RAPPORT A QSI C SHPTOT(3, ) = DERIVEES PAR RAPPORT A ETA C OUTPUT C SHP = FONCTIONS DE FORME ET DERIVEES DANS L'ESPACE GEOMETRIQUE C SHP(1, ) = FONCTION DE FORME C SHP(2, ) = DERIVEES PAR RAPPORT A X LOCAL C SHP(3, ) = DERIVEES PAR RAPPORT A Y LOCAL C DJAC = JACOBIEN AU POINT D'INTEGRATION IGAU C BGENE = MATRICE B AU POINT D'INTEGRATION IGAU C IRRT = DIFFERENT DE ZERO SI ERREUR C CONSTANTES C NBNO = NOMBRE DE NOEUDS C LRE = NOMBRE DE COLONNES DE LA MATRICE B C NST = NOMBRE DE COMPOSANTES DE CONTRAINTES C C REMARQUE : CE SOUS-PROGRAMME EST VALABLE EN CONTRAINTES PLANES, C DEFORMATIONS PLANES ET AXISYMETRIQUES. LA MATRICE C BGENE = TETA ( Ntop , - Nbot ) C EST UNE MATRICE (2x8). EN EFFET, TETA EST UNE MATRICE C (2x2), ET ( Ntop , - Nbot ) EST UNE MATRICE (2x8). C LA MATRICE TETA EST ICI APPELEE BPSS. C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) CcPPj DIMENSION XEL(3,*),BGENE(NST,*),SHP(6,*),SHPTOT(6,NBNO,*) DIMENSION BPSS(3,3) C IF(IFOU.EQ.-3)LRE=LRE+3 C IRRT = 0 C C MATRICE JACOBIENNE C SHP(1,I) = SHPTOT(1,I,IGAU) SHP(2,I) = SHPTOT(2,I,IGAU) 1 CONTINUE C IF (DJAC.LT.0.0D0) THEN IRRT = 1 ELSE IF (DJAC.EQ.0.0D0) THEN IRRT = 2 ENDIF C C MATRICE B ---> joint "standard" C C PP ATTENTION: IL FAUT PEUT-ETRE RESPECTER LA NUMEROTATION LOCALE DES C NOEUDS C DO 2 I=1,2 DO 3 J=1,2 DO 4 K=1,2 L=2*(J-1)+K C PP M=L+4 M=L+2*(2*(2-J)+1) BGENE(I,L)=BPSS(I,K)*SHP(1,J) BGENE(I,M)=-BGENE(I,L) 4 CONTINUE 3 CONTINUE 2 CONTINUE CpPPj C C DETERMINATION DE L'EPAISSEUR EN CAS DE BESOIN C (on utilise BGENE(2,.) pour l'ouverture) C IF(EPAIST.EQ.0.D+0)THEN J=2*(I-1) DO K=1,2 EPAIST=EPAIST+BGENE(2,J+K)*XE(K,I) ENDDO ENDDO ENDIF IF(EPAIST.LE.0.D+0)THEN IRRT = 10 ENDIF CpPPj C C MATRICE B ---> complement pour le cisaillement C DO J=1,2 DO K=1,2 L=2*(J-1)+K M=L+2*(2*(2-J)+1) AAAA=0.5D0*BPSS(2,K)*SHP(2,J)*EPAIST BGENE(1,L)=BGENE(1,L)+AAAA BGENE(1,M)=BGENE(1,M)+AAAA ENDDO ENDDO C C MATRICE B ---> composante de deformation dans le plan EPTT C DO J=1,2 DO K=1,2 L=2*(J-1)+K M=L+2*(2*(2-J)+1) BGENE(3,L)=0.5D0*BPSS(1,K)*SHP(2,J) BGENE(3,M)=BGENE(3,L) ENDDO ENDDO C C MATRICE B ---> Deformation plane generalisee C (utilisation de la seconde partie de XEL) C IF(IFOU.EQ.-3)THEN XXX=0.D0 YYY=0.D0 C PPj DO NP=1,NBNO DO NP=1,NBNONN C PPj XXX=XXX+SHP(1,NP)*XEL(1,NP) XXX=XXX+SHP(1,NP)*XEL(1,NP+NBNONN) C PPj YYY=YYY+SHP(1,NP)*XEL(2,NP) YYY=YYY+SHP(1,NP)*XEL(2,NP+NBNONN) ENDDO C BGENE(4,K )=1.D0 BGENE(4,K+1)=XDPGE-XXX BGENE(4,K+2)=YYY-YDPGE ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales