rigi3
C RIGI3 SOURCE CB215821 24/04/12 21:17:10 11897 & NSTRS,IVAMAT,IVACAR,CMATE,MFR,NBGMAT,NELMAT,IMAT, & LHOOK,NMATT,LW,NPINT,IPMATR,IIPDPG) *---------------------------------------------------------------------* * __________________________ * * | | * * | CALCUL DE LA RIGIDITE | * * |________________________| * * * * coq3,dkt,coq4,coq8,coq2,dst * * *---------------------------------------------------------------------* * * * ENTREES : * * ________ * * * * MATE Numero du materiau * * MELE Numero de l'element fini * * IPMAIL Pointeur sur un segment MELEME * * IPMINT Pointeur sur un segment MINTE aux points de Gauss * * IPMIN1 pointeur sur un segment MINTE aux noeuds * * NBPGAU Nombre de point d'integration pour la rigidite * * LRE Nombre de ddl dans la matrice de rigidite * * NSTRS Nombre de composante de contraintes/deformations * * IVAMAT Pointeur sur un segment MPTVAL pour le materiau ou * * pour une matrice de hooke * * IVACAR Pointeur sur un segment MPTVAL pour les caracteri- * * stiques * * CMATE Nom du materiau * * MFR Numero de la formulation element fini * * NBGMAT Taille maxi des melval du materiau (pt de gauss) * * NELMAT Taille maxi des melval du materiau (No d'element) * * IMAT (2 il y a une matrice de HOOKE,1 non ) * * NMATT Nombre de composante de materiau (IMAT=1) * * NPINT Nombre de points d'integration dans l'epaisseur * dans le cas des elements de coque integres * * * * SORTIES : * * ________ * * * * IPMATR pointeur sur la rigidite de la sous-zone * * * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL *- -INC SMCHAML -INC SMINTE -INC SMELEME -INC SMRIGID -INC SMMODEL -INC SMCOORD -INC SMLREEL * SEGMENT WRK1 REAL*8 DDHOOK(LHOOK,LHOOK) ,DDHOMU(LHOOK,LHOOK) REAL*8 REL(LRE,LRE) , XE(3,NBBB) ENDSEGMENT * SEGMENT WRK2 ENDSEGMENT * SEGMENT WRK3 ENDSEGMENT * SEGMENT WRK4 REAL*8 BPSS(3,3) ,XEL(3,NBBB) ENDSEGMENT * SEGMENT WRK5 REAL*8 BGENE1(LHOOK,LRE),POIG(NBPGA1) ENDSEGMENT * SEGMENT,MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * CHARACTER*8 CMATE * * write(6,*) 'entree dans rigi3 lhook',lhook * C INITIALISATION DU POINT AUTOUR DUQUEL SE FAIT LE MOUVEMENT C DE LA SECTION EN DEFO PLANE GENERALISEE IF (IIPDPG.GT.0) THEN C <- test equivalent ici a IFOUR.EQ.-3 C SEGACT MCOORD IREF=(IIPDPG-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE XDPGE=XZERO YDPGE=XZERO ENDIF * MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) * NV1=NMATT SEGINI,MVELCH * XMATRI=IPMATR C* NLIGRP=LRE C* NLIGRD=LRE * NHRM=NIFOUR * MINTE=IPMINT IRTD=1 C C_______________________________________________________________________ C C NUMERO DES ETIQUETTES : C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT C DANS LA ZONE SPECIFIQUE A CHAQUE ELEMENT COMMENCANT PAR : C 5 CONTINUE C ELEMENT 5 ETIQUETTES 1005 2005 3005 4005 ... C 44 CONTINUE C ELEMENT 44 ETIQUETTES 1044 2044 3044 4044 ... C_______________________________________________________________________ C GOTO(99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 1 99,99,99,99,99,99,27,28,99,99,99,99,99,99,99,99,99,99,99,99, 2 41,99,99,44,28,99,99,99,49,99,99,99,99,99,99,41,99,99,99,99, 3 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 4 99,99,99,99,99,99,99,99,99,99,99,99,93,99,99,99,99),MELE GOTO 99 C_______________________________________________________________________ C C ELEMENT COQ3 C_______________________________________________________________________ C 27 CONTINUE NBBB=NBNN SEGINI WRK1,WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3027 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CHERCHE LES COEFF DES MAT DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL * write(6,*)((ddhook(IU,io),iu=1,4),io=1,4) SEGDES MLREEL ENDIF ELSE IF (IMAT.EQ.1) THEN DO 9027 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9027 CONTINUE IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) * write(6,*)((ddhook(IU,io),iu=1,4),io=1,4) ENDIF C C CHERCHER LES EPAISSEUR ET EXCENTREMENT C MPTVAL=IVACAR MELVAL=IVAL(1) IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(1,IBMN) IF (IVAL(2).NE.0) THEN MELVAL=IVAL(2) IBMN=MIN(IB,VELCHE(/2)) EXCEN =VELCHE(1,IBMN) IF (EXCEN.NE.0.D0) THEN GO TO 9927 ENDIF ELSE EXCEN=0.D0 ENDIF C C ON CALCULE SA RAIDEUR C C 4027 CONTINUE C C REMPLISSAGE DE XMATRI C 3027 CONTINUE IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9927 CONTINUE SEGSUP WRK1,WRK3 GOTO 510 C_______________________________________________________________________ C C ELEMENT DKT C_______________________________________________________________________ C 28 CONTINUE NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2,WRK4 IF(NPINT.NE.0)THEN NBPGA1=NBPGAU/NPINT IF(NBGMAT.NE.1)THEN NBPGEP=NPINT ELSE NBPGEP=1 ENDIF SEGINI WRK5 DO 1028 IG=1,NBPGA1 POIG(IG)=POIGAU(IG) 1028 CONTINUE Ccccc CALL POIDNW(NPINT,NBPGA1,2,POIG) ENDIF C DO 3028 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C BPSS STOCKE LA MATRICE DE PASSAGE C C ON CHERCHE LES EPAISEURS ET ON LES MOYENNE, C LES EXCENTREMENTS ET ON LES MOYENNE. C MPTVAL=IVACAR MELVAL=IVAL(1) EPAIST=0.D0 IF (MELVAL.NE.0) THEN DO IGAU=1,NBPGAU IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) EPAIST=EPAIST+VELCHE(IGMN,IBMN) ENDDO EPAIST=EPAIST/NBPGAU ENDIF * MELVAL=IVAL(2) EXCEN=0.D0 IF (MELVAL.NE.0) THEN DO IGAU=1,NBPGAU IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) EXCEN=EXCEN+VELCHE(IGMN,IBMN) ENDDO EXCEN=EXCEN/NBPGAU ENDIF C IF(NPINT.EQ.0)THEN C C COQUE GLOBAL C C BOUCLE SUR LES POINTS DE GAUSS C DO 1128 IGAU=1,NBPGAU * & SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) DJAC=DJAC*POIGAU(IGAU) C C ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT C IF (EXCEN.NE.0.) THEN DO 1528 IJL=1,3 DO 1528 IJC=1,LRE BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC) 1528 CONTINUE ENDIF C C ON CHERCHE LES COEFFICIENTS DE LA MATRICE DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL SEGDES MLREEL ENDIF 1 IGAU,IMAT,EXCEN) ELSE IF (IMAT.EQ.1) THEN * DO 9028 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9028 CONTINUE IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) 1 IGAU,IMAT,EXCEN) ENDIF 1128 CONTINUE C ELSE C C COQUE INTEGREE C C BOUCLE SUR LES POINTS DE GAUSS DE LA SURFACE C DO 1101 IGAU=1,NBPGA1 * & SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) C C ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT C IF (EXCEN.NE.0.) THEN DO 1501 IJL=1,3 DO 1501 IJC=1,LRE BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC) 1501 CONTINUE ENDIF C C BOUCLE SUR LES NAPPES DANS L'EPAISSEUR C DO 1102 INAP=1,NBPGEP C IGAU1=(INAP-1)*NBPGA1+IGAU C C CALCUL DE LA MATRICE B CORRESPONDANT AUX DEFORMATIONS 3D C IF(NBGMAT.EQ.1.AND.NPINT.NE.1)THEN ZZZ2 = SQRT( (EPAIST**3.D0)/12.D0 ) ZZZ1 = SQRT( EPAIST ) DO 1503 IJL=1,3 DO 1503 IJC=1,LRE BGENE1(IJL,IJC) =ZZZ1*BGENE(IJL,IJC) BGENE1(IJL+3,IJC)=ZZZ2*BGENE(IJL+3,IJC) 1503 CONTINUE DJAC1=DJAC*POIG(IGAU1) ELSE ZZZ=DZEGAU(IGAU1)*(EPAIST/2.D0) DO 1502 IJL=1,3 DO 1502 IJC=1,LRE BGENE1(IJL,IJC)=BGENE(IJL,IJC) BGENE1(IJL+3,IJC)=ZZZ*BGENE(IJL+3,IJC) 1502 CONTINUE DJAC1=DJAC*POIGAU(IGAU1)*(EPAIST/2.D0) ENDIF C C ON CHERCHE LA MATRICE DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IGAU1.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU1,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL SEGDES MLREEL * write(6,*)((ddhook(IU,io),iu=1,6),io=1,6) ENDIF ELSE IF (IMAT.EQ.1) THEN DO 9001 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU1,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9001 CONTINUE IF (IGAU1.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) * write(6,*)((ddhook(IU,io),iu=1,6),io=1,6) ENDIF 1 IGAU,IMAT,EXCEN) 1102 CONTINUE 1101 CONTINUE ENDIF REL(6,6)=REL(5,5)*1.D-7 REL(12,12)=REL(6,6) REL(18,18)=REL(6,6) ICOM=0 IF(ABS(EXCEN).GT.XPETIT .OR. CMATE.EQ.'COMPOSIT' 1 .OR. IMAT.EQ.2) ICOM=1 C C REMPLISSAGE DE XMATRI C 3028 CONTINUE IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP WRK1,WRK2,WRK4 IF(NPINT.NE.0)SEGSUP WRK5 GOTO 510 C_______________________________________________________________________ C C ELEMENT COQ8 C_______________________________________________________________________ C 41 CONTINUE NBBB=NBNN NBNO=NBNN SEGINI WRK1,WRK2,WRK3 MINTE1=IPMIN1 SEGACT MINTE1 NBPGA1=MINTE1.SHPTOT(/3) NBN1 =MINTE1.SHPTOT(/2) C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3041 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C C ON CHERCHE LES EPAISSEURS ET LES EXCENTREMENTS. C MPTVAL=IVACAR DO 4041 IGAU=1,NBPGAU MELVAL=IVAL(1) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) IF (IVAL(2).NE.0) THEN MELVAL=IVAL(2) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 4041 CONTINUE C C DETERMINATION DES AXES LOCAUX AUX NOEUDS C C C BOUCLE SUR LES POINTS DE GAUSS C DO 3042 IGAU=1,NBPGAU E3=DZEGAU(IGAU) C C GESTION D'ERREUR: IRR=0 CORRESPOND A UN VECTEUR NUL (CF. CROSS2) C IRR=-1 CORRESPOND A UN JACOBIEN NUL(CF. SHLJAC) C IF(IRR.EQ.0) THEN GOTO 9941 ELSE IF(IRR.EQ.-1)THEN GOTO 9941 ENDIF C DJAC=ABS(DJAC)*POIGAU(IGAU) C C ON CHERCHE LES COEFF DES MAT DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF ((IGAU.LE.NBGMAT).AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL SEGDES MLREEL ENDIF ELSE IF (IMAT.EQ.1) THEN DO 9041 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9041 CONTINUE IF((IGAU.LE.NBGMAT).AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) ENDIF C C ON CALCULE SA RAIDEUR C C 3042 CONTINUE C C REMPLISSAGE DE XMATRI C 3041 CONTINUE c IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9941 CONTINUE SEGSUP WRK1,WRK2,WRK3 SEGDES MINTE1 GOTO 510 C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LE COQ2 C_______________________________________________________________________ C 44 CONTINUE DIM3=1.D0 NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2 DO 3044 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C C BOUCLE SUR LES POINTS DE GAUSS C DO 4044 IGAU=1,NBPGAU MPTVAL=IVACAR MELVAL=IVAL(1) IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(1,IBMN) IF (IVAL(2).NE.0) THEN MELVAL=IVAL(2) IBMN=MIN(IB,VELCHE(/2)) EXCEN =VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF IF (IFOUR.EQ.-2) THEN IF (IVAL(3).NE.0) THEN MELVAL=IVAL(3) IBMN=MIN(IB,VELCHE(/2)) DIM3 =VELCHE(1,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF C C APPEL A BCOQ2 ... C . EXCEN,DIM3,IRRT,XDPGE,YDPGE) C C GESTION D'ERREUR C LES ERREURS PREVUES SONT LONGEUR DE L'ELEMENT =0 OU RAYON C AU POINT D'INTEGRATION =0 OU RAPPORT R/L TROP PETIT (INFERIEUR C A 1.E-3). C IF(IRRT.EQ.1) THEN INTERR(1)=IB GOTO 9944 ELSE IF (IRRT.EQ.2) THEN INTERR(1)=IB GOTO 9944 ENDIF C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL SEGDES MLREEL ENDIF ELSE IF (IMAT.EQ.1) THEN * DO 9044 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9044 CONTINUE IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) ENDIF 4044 CONTINUE C C REMPLISSAGE DE XMATRI C 3044 CONTINUE C C IMPRESSION D'UN EVENTUEL MESSAGE D'ERREUR... IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9944 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LE COQ4 C_______________________________________________________________________ C 49 CONTINUE NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2,WRK4 c c ... Si le matériau n'est pas isotrope, dans le cas général les c tensions et le cisaillement NE sont PAS découplées. Ce qui veut c dire qu'on n'a pas le droit de les intégrer différemment ... c DO 3049 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C IRRT=1 NODI TROPPO VICINI IF(IRRT.EQ.1) THEN INTERR(1)=IB GOTO 9949 ELSE IF(IRRT.EQ.3) THEN IRRT = 0 NOPLAN = 1 ELSE NOPLAN = 0 ENDIF C C BOUCLE SUR LES POINTS DE GAUSS C MPTVAL=IVACAR MELVAL=IVAL(1) IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(1,IBMN) IF (IVAL(2).NE.0) THEN MELVAL=IVAL(2) IBMN=MIN(IB,VELCHE(/2)) EXCEN =VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF DO 4049 IGAU=1,NBPGAU C C APPEL A BCOQ4 C if(cmate.eq.'ISOTROPE') then + 0) else + 0) endif DJAC=DJAC*POIGAU(IGAU) C IRRT=1 JACOBIANO <= 0 IF(IRRT.EQ.1) THEN INTERR(1)=IB GOTO 9949 ENDIF C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL SEGDES MLREEL ENDIF ELSE IF (IMAT.EQ.1) THEN * DO 9049 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9049 CONTINUE IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) if(cmate.eq.'ISOTROPE') then else endif ENDIF 4049 CONTINUE C REL(6,6)=REL(5,5)*1.D-7 REL(12,12)=REL(6,6) REL(18,18)=REL(6,6) REL(24,24)=REL(6,6) ICOM=0 IF(ABS(EXCEN).GT.XPETIT .OR.CMATE.EQ.'COMPOSIT' 1 .OR. IMAT.EQ.2) ICOM=1 C C REMPLISSAGE DE XMATRI C 3049 CONTINUE C C IMPRESSION D'UN EVENTUEL MESSAGE D'ERREUR... IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF 9949 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT DST C_______________________________________________________________________ C 93 CONTINUE NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK2,WRK3,WRK4 IF(CMATE.NE.'ISOTROPE')THEN MPTVAL=IVAMAT IF(IMAT.EQ.1.AND.CMATE.EQ.'ORTHOTRO')THEN MELVAL=IVAL(7) ELSE MELVAL=IVAL(2) ENDIF NBGCOS=VELCHE(/1) ENDIF DO 3093 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C BPSS STOCKE LA MATRICE DE PASSAGE C C BOUCLE SUR LES POINTS DE GAUSS C DO 1193 IGAU=1,NBPGAU MPTVAL=IVACAR MELVAL=IVAL(1) IBMN =MIN(IB,VELCHE(/2)) EPAIST=VELCHE(1,IBMN) IF (IVAL(2).NE.0) THEN MELVAL=IVAL(2) IBMN =MIN(IB,VELCHE(/2)) EXCEN =VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF * * Dans le cas des matériaux orthotropes, les déformations sont d'abord * calculées dans le repère d'orthotropie (les formules utilisées par les * routines RCDST et BMFDST ne sont valables que dans ce repère); elles * sont ensuite exprimées dans le repère local de l'élément. * IF(CMATE.NE.'ISOTROPE')THEN IF(IGAU.LE.NBGCOS)THEN IF(IMAT.EQ.2)THEN MPTVAL=IVAMAT MELVAL=IVAL(2) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) COSA=VELCHE(IGMN,IBMN) MELVAL=IVAL(3) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) SINA=VELCHE(IGMN,IBMN) ENDIF ENDIF ENDIF C C ON CHERCHE LES COEFFICIENTS DE LA MATRICE DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT. + OR.NBGMAT.GT.1)) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL SEGDES MLREEL IF(CMATE.EQ.'ORTHOTRO') ENDIF ELSE IF (IMAT.EQ.1) THEN * DO 9093 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9093 CONTINUE IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) ENDIF * IF(CMATE.NE.'ISOTROPE')THEN IF(IGAU.LE.NBGCOS)THEN IF(IMAT.EQ.1.AND.CMATE.EQ.'ORTHOTRO')THEN COSA=VALMAT(7) SINA=VALMAT(8) ENDIF DO 1393 INO=1,NBNN XX=COSA*XEL(1,INO)+SINA*XEL(2,INO) YY=(-SINA)*XEL(1,INO)+COSA*XEL(2,INO) XE(1,INO)=XX XE(2,INO)=YY 1393 CONTINUE ENDIF CC C TERMES DE LA MATRICE DE RIGIDITE RELATIFS C AUX CISAILLEMENTS TRANSVERSES C C TERMES DE LA MATRICE B RELATIFS AUX EFFETS C DE MEMBRANE ET DE FLEXION C * DO 10 NPOI=1,3 SHPWRK(1,NPOI)=SHPTOT(1,NPOI,IGAU) SHPWRK(2,NPOI)=SHPTOT(2,NPOI,IGAU) SHPWRK(3,NPOI)=SHPTOT(3,NPOI,IGAU) 10 CONTINUE ELSE C C TERMES DE LA MATRICE DE RIGIDITE RELATIFS C AUX CISAILLEMENTS TRANSVERSES C C C TERMES DE LA MATRICE B RELATIFS AUX EFFETS C DE MEMBRANE ET DE FLEXION C ENDIF DJAC=DJAC*POIGAU(IGAU) C C ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT C IF (EXCEN.NE.0.) THEN DO 1593 IJL=1,3 DO 1593 IJC=1,LRE BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC) 1593 CONTINUE ENDIF C 1 IGAU,IMAT,EXCEN) 1193 CONTINUE REL(6,6)=REL(5,5)*1.D-7 REL(12,12)=REL(6,6) REL(18,18)=REL(6,6) ICOM=0 IF(ABS(EXCEN).GT.XPETIT .OR. CMATE.EQ.'COMPOSIT' 1 .OR. IMAT.EQ.2) ICOM=1 C C REMPLISSAGE DE XMATRI C 3093 CONTINUE C 9993 CONTINUE SEGSUP WRK1,WRK2,WRK3,WRK4 GOTO 510 * C======================================================================= C========= ERREUR : CAS NON PREVUS ===================================== C======================================================================= 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(9:12)='RIGI3' * 510 CONTINUE SEGSUP,MVELCH * SEGDES XMATRI RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales