epsi3
C EPSI3 SOURCE OF166741 24/10/21 21:15:11 12042 & IVAMAT,LHOOK,IMAT,MATE,CMATE,NMATT,NSTRS,MFR,IPMINT, & NCARR,NDEP,NBPGAU,NBPTEL,MELE,LRE,LW,IREPS2,IVAEPS, & IPMIN1,UZDPG,RYDPG,RXDPG,NPINT,IIPDPG) C---------------------------------------------------------------------* C * C CALCUL DES DEFORMATIONS * C * C poutres,tuyaux,coq3,dkt,coq4,coq8,coq2 ,dst,joint 3D,joints 2D * C * C---------------------------------------------------------------------* C * C ENTREES : * C ________ * C * C IPMAIL Pointeur sur un segment MELEME * C IVADEP Pointeur sur le chamelem de deplacements * C IVACAR Pointeur sur les chamelems de caracteristiques * C NELMAT Taille maxi des melval du materiau (No d'element) * C NBGMAT Taille maxi des melval du materiau (pt de gauss) * C IVAMAT Pointeur sur un segment MPTVAL pour le materiau ou * C LHOOK Dimension de la matrice de Hooke * C IMAT (2 il y a une matrice de HOOKE,1 non ) * C MATE Numero du materiau * C CMATE Nom du materiau * C NMATT Nombre de composante de materiau (IMAT=1) * C NSTRS Nombre de composante de contraintes/deformations * C pour une matrice de hooke * C MFR Numero de formulation de l'element fini * C IPMINT Pointeur sur un segment MINTE * C IPMIN1 Pointeur sur un segment MINTE * C NDEP Nombre de composantes de deplacements * C NBPGAU Nombre de point d'integration pour la rigidite * C NBPTEL Nombre de points par element * C MELE Numero de l'element fini * C LRE Nombre de ddl dans la matrice de rigidite * C LW Dimension du tableau de travail de l'element * C IRESP2 Flag pour indiquer si on veut les contraintes * C de Piola-Kirchhoff * C dans le cas des elements de coque integres * C * C SORTIES : * C ________ * C * C IVAEPS pointeur sur un segment MPTVAL contenant les * C les melvals de déformations C * C---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC SMCHAML -INC SMCHPOI -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC SMLREEL SEGMENT WRK1 REAL*8 DDHOOK(NSTRS,NSTRS) ,XDDL(LRE) ,XSTRS(NSTRS) REAL*8 XE(3,NBBB),DDHOMU(NSTRS,NSTRS) ENDSEGMENT SEGMENT WRK2 ENDSEGMENT SEGMENT WRK3 ENDSEGMENT SEGMENT WRK4 REAL*8 BPSS(3,3) ,XEL(3,NBBB) ,XDDLOC(LRE) ENDSEGMENT SEGMENT WRK5 REAL*8 XSTRS1(NSTRS1) ENDSEGMENT segment wrk7 real*8 out(30),propel(45),wk7d(1),wk7rel(1) endsegment SEGMENT MPTVAL INTEGER IPOS(NS),NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT SEGMENT,MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT CHARACTER*8 CMATE CHARACTER*(NCONCH) CONM PARAMETER (NINF=3) INTEGER INFOS(NINF) dimension rel(18,18) C initialisation pour l'optimiseur MELVAL=0 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 IREF=(IIPDPG-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE XDPGE=0.D0 YDPGE=0.D0 ENDIF C MELEME = IPMAIL NBNN = NUM(/1) NBELEM = NUM(/2) C NHRM=NIFOUR C MINTE=IPMINT NBBB=NBNN C Petite verification prealable (normalement inutile) mptval = IVAEPS if (NSTRS.ne.ival(/1)) then write(ioimp,*) 'EPSI3 : incoherence NSTRS & IVAEPS' return endif do icomp = 1, NSTRS melval = IVAL(ICOMP) if (melval.le.0) then write(ioimp,*) 'EPSI3 : incoherence IVAEPS ival(',icomp,')=0' return endif if (NBPTEL.NE.melval.velche(/1)) then write(ioimp,*) 'EPSI3 : incoherence NSTRS & IVAEPS' return endif if (NBELEM .NE. melval.velche(/2)) then write(ioimp,*) 'EPSI3 : incoherence NSTRS & IVAEPS' return endif enddo 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,27,99,99,99,99,99,99,99,99,99,99,99, 2 41,27,99,44,99,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,27,85,86,87,88,99,99,99,99,93,99,99,99,99),MELE C GOTO(168,169,170,171,172),MELE-167 if(mele.eq.260) go to 260 C GOTO 99 C_______________________________________________________________________ C ELEMENT SHB8 C_______________________________________________________________________ 260 continue SEGINI WRK1,WRK7 DO 3260 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CHERCHE LES DEPLACEMENTS C IE=1 MPTVAL=IVADEP DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo propel(1)=1 propel(2)=0.3 propel(3)=ireps2 C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS IE=1 DO IGAU=1,NBPTEL DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=out(IE) IE=IE+1 enddo enddo C 3260 CONTINUE SEGSUP WRK1,WRK7 GOTO 510 C C_______________________________________________________________________ C C ELEMENTS COQ3 POUTRE ET TUYAU ET POUTRE TIMOSCHENKO C_______________________________________________________________________ C 27 CONTINUE 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 DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo IF(MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.84) GO TO 5029 C CAS DES COQ3 C C ON MET LA MATRICE DE HOOKE A L IDENTITE C C IF(IREPS2.EQ.1) C MPTVAL=IVAEPS DO 6027 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(1,IB)=XSTRS(ICOMP) 6027 CONTINUE C GOTO 3027 C C CAS DES POUTRES ET DES TUYAUX C ON STOCKE DES CARACTERISTIQUES GEOMETRIQUES DANS WORK C 5029 CONTINUE C C pour les poutres et tuyaux on cherche le module d'young et nu si C section reduite If( mele.eq.29.or.mele.eq.42) then mptval = ivamat melval=ival(1) IGMN=MIN(IGAU,VELCHE(/1)) ibmn= MIN(IB,VELCHE(/2)) youtc=VELCHE(IGMN,IBMN) melval=ival(2) IGMN=MIN(IGAU,VELCHE(/1)) ibmn= MIN(IB,VELCHE(/2)) xnutc=VELCHE(IGMN,IBMN) endif C C ON CHERCHE LES CARACTERISTIQUES DE L ELEMENT IB C MPTVAL=IVACAR DO 6029 IC=1,NCARR MELVAL = IVAL(IC) IF (MELVAL.NE.0) THEN I2MN = VELCHE(/2) I1MN = VELCHE(/1) IF (I1MN.GT.0.AND.I2MN.GT.0) THEN IBMN = MIN(IB,I2MN) r_z = 0.D0 DO 4029 IGAU=1,NBNN IGMN = MIN(IGAU,I1MN) r_z = r_z + VELCHE(IGMN,IBMN) 4029 CONTINUE ELSE ENDIF ELSE ENDIF 6029 CONTINUE C C CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE C EQUIVALENTE IF(MELE.EQ.42) THEN ENDIF C C ON CALCULE LES DEFORMATIONS C IF(MELE.EQ.84) THEN C IF(CMATE.EQ.'SECTION') THEN IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN ELSE ENDIF ELSE C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN C ELSE ENDIF ENDIF ELSE C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN $ ,youtc,xnutc) ELSE C $ , youtc,xnutc) ENDIF ENDIF C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C IE=12 C MPTVAL=IVAEPS DO IGAU=1,NBPTEL DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IE=IE+1 enddo enddo C 3027 CONTINUE SEGSUP WRK1,WRK3 GOTO 510 C_______________________________________________________________________ C C ELEMENT DKT C_______________________________________________________________________ C 28 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 IF(NPINT.NE.0)THEN NSTRS1=6 SEGINI WRK5 ENDIF DO 3028 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CHERCHE L EPAISSEUR ET L EXCENTREMENT C MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(1,IBMN) ELSE EPAIST=0.D0 ENDIF MELVAL=IVAL(2) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) EXCEN=VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF C C BPSS STOCKE LA MATRICE DE PASSAGE C IF(NPINT.EQ.0)THEN C C COQUE GLOBAL C C BOUCLE SUR LES POINTS DE GAUSS C DO 5028 IGAU=1,NBPTEL & SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) C C ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT C IF (EXCEN.NE.0.) THEN DO IJL=1,3 DO IJC=1,LRE BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC) enddo enddo ENDIF C C C CALCUL DES EPS 2 C IF(IREPS2.EQ.1) C C RMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9028 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) 9028 CONTINUE 5028 CONTINUE C ELSE C C COQUE INTEGREE C NBPGA1=NBPGAU/NPINT C C BOUCLE SUR LES POINTS DE GAUSS DE LA SURFACE C DO 5001 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 IJL=1,3 DO IJC=1,LRE BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC) enddo enddo ENDIF C C BOUCLE SUR LES NAPPES C DO 5002 INAP=1,NPINT IGAU1=(INAP-1)*NBPGA1+IGAU C C C CALCUL DES EPS 2 C IF(IREPS2.EQ.1) C ZZZ=DZEGAU(IGAU1)*(0.5D0*EPAIST) XSTRS(1)=XSTRS1(1)+ZZZ*XSTRS1(4) XSTRS(2)=XSTRS1(2)+ZZZ*XSTRS1(5) XSTRS(3)=0.D0 XSTRS(4)=XSTRS1(3)+ZZZ*XSTRS1(6) C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9001 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU1,IB)=XSTRS(ICOMP) 9001 CONTINUE C C FIN DE BOUCLE SUR LES NAPPES DE POINTS 5002 CONTINUE C FIN DE BOUCLE SUR LES POINTS DANS CHAQUE NAPPE 5001 CONTINUE C FIN DE BOUCLE SUR LES POINTS D'INTEGRATION ENDIF C FIN DE BOUCLE SUR LES ELEMENTS 3028 CONTINUE SEGSUP WRK1,WRK2,WRK4 IF(NPINT.NE.0) SEGSUP WRK5 C GOTO 510 C_______________________________________________________________________ C C ELEMENTS COQ8 ET COQ6 C_______________________________________________________________________ C 41 CONTINUE SEGINI WRK1,WRK3 MINTE1=IPMIN1 SEGACT MINTE1 NBPGA1=MINTE1.SHPTOT(/3) C 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 ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CHERCHE LES EPAISSEURS ET LES EXCENTREMENTS, C ON LES MOYENNE SUR L'ELEMENT. C MPTVAL=IVACAR MELVAL=IVAL(1) EPAIST=0.D0 IF (MELVAL.NE.0) THEN IBMN=MIN(IB ,VELCHE(/2)) DO IGAU=1,NBPGAU IGMN=MIN(IGAU,VELCHE(/1)) EPAIST=EPAIST+VELCHE(IGMN,IBMN) ENDDO EPAIST=EPAIST/NBPGAU ENDIF C MELVAL=IVAL(2) EXCEN=0.D0 IF (MELVAL.NE.0) THEN IBMN=MIN(IB ,VELCHE(/2)) DO IGAU=1,NBPGAU IGMN=MIN(IGAU,VELCHE(/1)) EXCEN=EXCEN+VELCHE(IGMN,IBMN) ENDDO EXCEN=EXCEN/NBPGAU ENDIF C C ON CALCULE LES DEFORMATIONS C C C ON REMPLIT LES DEFORMATIONS C MPTVAL=IVAEPS IE=1 DO IGAU=1,NBPGAU DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IE=IE+1 enddo enddo C 3041 CONTINUE SEGSUP WRK1,WRK3 GOTO 510 C_______________________________________________________________________ C C ELEMENT COQ2 C_______________________________________________________________________ C 44 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2 C NDDD=NDEP IF (IFOUR.EQ.-3) NDDD=NDEP-3 DO 3044 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDDD MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo IF (IFOUR.EQ.-3) THEN XDDL(IE)=UZDPG XDDL(IE+1)=RYDPG XDDL(IE+2)=RXDPG ENDIF C C BOUCLE SUR LES POINTS DE GAUSS C DO 4044 IGAU=1,NBPGAU MPTVAL=IVACAR MELVAL=IVAL(2) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) EXCEN=VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF C APPEL A BCOQ2 C . EXCEN,1.D0,IRR,XDPGE,YDPGE) C C GESTION D'ERREUR C IF (IRR.EQ.1) THEN INTERR(1)=IB GOTO 9944 ELSE IF(IRR.EQ.2) THEN INTERR(1)=IB GOTO 9944 ENDIF C IF(IREPS2.EQ.1) C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9044 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) 9044 CONTINUE 4044 CONTINUE 3044 CONTINUE C 9944 CONTINUE SEGSUP WRK1,WRK2 GOTO 510 C_______________________________________________________________________ C C ELEMENT COQ4 C_______________________________________________________________________ C 49 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO 3049 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C IERT=1 NODI TROPPO VICINI IF (IERT.EQ.1) THEN INTERR(1)=IB GOTO 9949 ELSE IF(IERT.EQ.3) THEN IERT = 0 NOPLAN = 1 ELSE NOPLAN = 0 END IF C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C BOUCLE SUR LES POINTS DE GAUSS C MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(1,IBMN) ELSE EPAIST=0.D0 ENDIF C MELVAL=IVAL(2) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) EXCEN=VELCHE(1,IBMN) ELSE EXCEN=0.D0 ENDIF C DO 4049 IGAU=1,NBPGAU C if(cmate.eq.'ISOTROPE') then CALL BCOQ4 & (IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,EXCEN,NOPLAN,IERT,1) else CALL BCOQ4O & (IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,EXCEN,NOPLAN,IERT,1) endif C IERT=1 JACOBIANO <= 0 IF(IERT.EQ.1) THEN INTERR(1)=IB GOTO 9949 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9049 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) 9049 CONTINUE 4049 CONTINUE 3049 CONTINUE C 9949 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JOI2) C_______________________________________________________________________ C 85 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO 3085 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C BOUCLE SUR LES POINTS DE GAUSS C DO 4085 IGAU=1,NBPGAU C . BGENE,DJAC,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF(IRRT.NE.0) THEN INTERR(1)=IB GOTO 9985 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9085 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) 9085 CONTINUE 4085 CONTINUE 3085 CONTINUE C 9985 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JGI2) C_______________________________________________________________________ C 170 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C NDDD=NDEP IF (IFOUR.EQ.-3) NDDD=NDEP-3 C DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDDD MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 ENDDO ENDDO IF (IFOUR.EQ.-3) THEN XDDL(IE)=UZDPG XDDL(IE+1)=RYDPG XDDL(IE+2)=RXDPG ENDIF C C BOUCLE SUR LES POINTS DE GAUSS C DO IGAU=1,NBPGAU C C ON CHERCHE L EPAISSEUR DU JOINT C MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(IGMN,IBMN) ELSE EPAIST=0.D0 ENDIF C CcPPj CALL BJO2GN(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK, CcPPj. EPAIST,BGENE,DJAC,XDPGE,YDPGE,IRRT) . EPAIST,BGENE,DJAC,XDPGE,YDPGE,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF (IRRT.NE.0) THEN INTERR(1)=IB GOTO 9970 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) ENDDO ENDDO ENDDO C 9970 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JCT3) en 2D cisaillement C_______________________________________________________________________ C 168 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C IE=1 MPTVAL=IVADEP DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 END DO END DO C C BOUCLE SUR LES POINTS DE GAUSS C DO IGAU=1,NBPGAU C . BGENE,DJAC,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF(IRRT.NE.0) THEN INTERR(1)=IB GOTO 9968 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) END DO END DO END DO C 9968 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JGT3) GENERALISE C_______________________________________________________________________ C 171 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 END DO END DO C C BOUCLE SUR LES POINTS DE GAUSS C DO IGAU=1,NBPGAU C C ON CHERCHE L'EPAISSEUR DU JOINT C MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(IGMN,IBMN) ELSE EPAIST=0.D0 ENDIF C C ON CALCULE B C CcPPj CALL BJT3G(IGAU,MFR,IFOUR,NIFOUR,XEL,BPSS,SHPTOT,SHPWRK, . EPAIST,BGENE,DJAC,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF (IRRT.NE.0) THEN INTERR(1)=IB GOTO 9971 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IBMN)=XSTRS(ICOMP) END DO END DO END DO C 9971 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JCI4) en 2D cisaillement C_______________________________________________________________________ C 169 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 ENDDO ENDDO C C BOUCLE SUR LES POINTS DE GAUSS C DO IGAU=1,NBPGAU C C IRRT.NE.0 JACOBIEN <= 0 IF(IRRT.NE.0) THEN INTERR(1)=IB GOTO 9969 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IBMN)=XSTRS(ICOMP) ENDDO ENDDO ENDDO C 9969 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JGI4) GENERALISE C_______________________________________________________________________ C 172 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 ENDDO ENDDO C C BOUCLE SUR LES POINTS DE GAUSS C DO IGAU=1,NBPGAU C C ON CHERCHE L'EPAISSEUR DU JOINT C MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) EPAIST=VELCHE(IGMN,IBMN) ELSE EPAIST=0.D0 ENDIF C CcPPj CALL BJO4G(IGAU,XEL,BPSS,SHPTOT,SHPWRK,EPAIST, > BGENE,DJAC,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF (IRRT.NE.0) THEN INTERR(1)=IB GOTO 9972 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IBMN)=XSTRS(ICOMP) ENDDO ENDDO ENDDO C 9972 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JOI3) IMPLEMENTATION SANS TEST DE PLANEITE C ET SANS REPERE LOCAL C_______________________________________________________________________ C 86 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO 3086 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C BOUCLE SUR LES POINTS DE GAUSS C DO 4086 IGAU=1,NBPGAU C C . BGENE,DJAC,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF (IRRT.NE.0) THEN INTERR(1)=IB GOTO 9986 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9086 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IBMN)=XSTRS(ICOMP) 9086 CONTINUE 4086 CONTINUE 3086 CONTINUE C C IMPRESSION D'UN MESSAGE D'ERREUR C 9986 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JOT3) C_______________________________________________________________________ C 87 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO 3087 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C BOUCLE SUR LES POINTS DE GAUSS C DO 4087 IGAU=1,NBPGAU C . BGENE,DJAC,IRRT) C IRRT.NE.0 JACOBIEN <= 0 IF (IRRT.NE.0) THEN INTERR(1)=IB GOTO 9987 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9087 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IBMN)=XSTRS(ICOMP) 9087 CONTINUE 4087 CONTINUE 3087 CONTINUE C 9987 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT JOINT (JOI4) C_______________________________________________________________________ C 88 CONTINUE NBNO=NBNN SEGINI WRK1,WRK2,WRK4 C DO 3088 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C BOUCLE SUR LES POINTS DE GAUSS C DO 4088 IGAU=1,NBPGAU C C IRRT.NE.0 JACOBIEN <= 0 IF (IRRT.NE.0) THEN INTERR(1)=IB GOTO 9988 ENDIF C C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9088 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) 9088 CONTINUE 4088 CONTINUE 3088 CONTINUE C 9988 CONTINUE SEGSUP WRK1,WRK2,WRK4 GOTO 510 C_______________________________________________________________________ C C ELEMENT DST C_______________________________________________________________________ C 93 CONTINUE NBNO=NBNN NV1=NMATT SEGINI WRK1,WRK2,WRK3,WRK4,MVELCH 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 IRTD = 1 DO 3093 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CHERCHE LES DEPLACEMENTS C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo 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 EPAIST=0.D0 MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) DO IGAU=1,NBPGAU IGMN=MIN(IGAU,VELCHE(/1)) EPAIST=EPAIST+VELCHE(IGMN,IBMN) ENDDO EPAIST=EPAIST/NBPGAU ENDIF C EXCEN=0.D0 MELVAL=IVAL(2) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) DO IGAU=1,NBPGAU IGMN=MIN(IGAU,VELCHE(/1)) EXCEN=EXCEN+VELCHE(IGMN,IBMN) ENDDO EXCEN=EXCEN/NBPGAU ENDIF C C BOUCLE SUR LES POINTS DE GAUSS C DO 5093 IGAU=1,NBPTEL C C Dans le cas des matériaux orthotropes, les déformations sont d'abord C calculées dans le repère d'orthotropie (les formules utilisées par les C routines RCDST et BMFDST ne sont valables que dans ce repère); elles C sont ensuite exprimées dans le repère local de l'élément. C C ON CHERCHE 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 ELSE IF (IMAT.EQ.1) THEN DO 9193 IM=1,NMATT MELVAL=IVAL(IM) IF (MELVAL.NE.0) THEN IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9193 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) ELSE 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 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 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 C ELSE C C TERMES DE LA MATRICE B RELATIFS AUX CISAILLEMENTS TRANSVERSES C C C TERMES DE LA MATRICE B RELATIFS AUX EFFETS C DE MEMBRANE ET DE FLEXION C ENDIF C C ON MODIFIE LA MATRICE B EN CAS D'EXCENTREMENT C IF (EXCEN.NE.0.) THEN DO IJL=1,3 DO IJC=1,LRE BGENE(IJL,IJC)=BGENE(IJL,IJC)+EXCEN*BGENE(IJL+3,IJC) enddo enddo ENDIF C C C CALCUL DES EPS 2 C IF(IREPS2.EQ.1)THEN IF(CMATE.EQ.'ORTHOTRO')THEN ELSE ENDIF ENDIF C C CHANGEMENT DE REPERE: ORTHO -> LOCAL C IF(CMATE.EQ.'ORTHOTRO') C C RMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C MPTVAL=IVAEPS DO 9093 ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) VELCHE(IGAU,IB)=XSTRS(ICOMP) 9093 CONTINUE 5093 CONTINUE 3093 CONTINUE C ERREUR LE MATERIAU PAS ENCORE IMPLEMENTER POUR C LA FORMULATION MFR ET L OPTION IFOUR IF (IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP WRK1,WRK2,WRK3,WRK4,MVELCH GOTO 510 C____________________________________________________________________ 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(9:12)='EPSI' 510 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales