1 : C ROTAT2 SOURCE CHAT 05/01/13 03:05:03 5004 2 : C MAZARS SOURCE AM 93/02/26 21:18:27 808 3 : SUBROUTINE ROTAT2 (WRK0,WRK1,WRKK2,WRK5,NSTRS,NVARI, 4 : 1 NMATT,ISTEP,ICARA) 5 : C 6 : C 7 : C variables en entree 8 : C 9 : C 10 : C WRK0 pointeur sur un segment deformation au pas precedent 11 : C 12 : C WRK1 pointeur sur un segment increment de deformation 13 : C 14 : C WRKK2 pointeur sur un segment variables internes au pas precedent 15 : C 16 : C WRK5 pointeur sur un segment de deformations inelastiques 17 : C 18 : C XMATER constantes du materiau 19 : C 20 : C NSTRS nombre de composantes dans les vecteurs des contraintes 21 : C et les vecteurs des deformations 22 : C 23 : C NVARI nombre de variables internes (doit etre egal a 2) 24 : C 25 : C NMATT nombre de constantes du materiau 26 : C 27 : C ISTEP flag utilise pour separer les etapes dans un calcul non local 28 : C ISTEP=0 -----> calcul local 29 : C ISTEP=1 -----> calcul non local etape 1 on calcule les seuils 30 : C ISTEP=2 -----> calcul non local etape 2 on continue le calcul 31 : C a partir des seuils moyennes 32 : C 33 : C variables en sortie 34 : C 35 : C VARINF variables internes finales 36 : C 37 : C SIGMAF contraintes finales 38 : C 39 : C C. LA BORDERIE MARS 1992 40 : C declaration des variables 41 : C 42 : C 43 : IMPLICIT INTEGER(I-N) 44 : IMPLICIT REAL*8(A-H,O-Z) 45 : -INC CCOPTIO 46 : SEGMENT WRK0 47 : REAL*8 XMAT(NMATT) 48 : ENDSEGMENT 49 : * 50 : SEGMENT WRK1 51 : REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 52 : REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 53 : REAL*8 DEFP(NSTRS),XCAR(ICARA) 54 : ENDSEGMENT 55 : SEGMENT WRKK2 56 : REAL*8 EPSILI(NSTRS) 57 : ENDSEGMENT 58 : SEGMENT WRK5 59 : REAL*8 EPIN0(NSTRS),EPINF(NSTRS),EPST0(NSTRS) 60 : ENDSEGMENT 61 : CHARACTER*8 CMATE 62 : INTEGER NSTRS,NVARI,NMATT,ISTEP 63 : REAL*8 EPSILO(6),EPSNT(3),SIGNT(3),T(3,3),EPSXY(3),SIGXY(3) 64 : REAL*8 MUP0,MU,MUP,EPCR 65 : REAL*8 EPSMAX,EPSNN,EPSMAX1 66 : REAL*8 SINUS,COSINUS 67 : INTEGER CAS 68 : PARAMETER (XZERO=0.D0 , UN=1.D0 , DEUX=2.D0, XPETIT=1.D-12) 69 : 70 : C 71 : C 72 : C recuperation des variables initiales dans les tableaux 73 : C 74 : C 75 : N=NSTRS 76 : CMATE = 'ISOTROPE' 77 : YOUN = XMAT(1) 78 : XNU = XMAT(2) 79 : EPCR = XMAT(5) 80 : MUP0 = XMAT(6) 81 : EPSMAX = VAR0(1) 82 : EPSNN=VAR0(2) 83 : C 84 : C calcul de la deformation totale 85 : C 86 : DO 100 ISTRS=1,NSTRS 87 : EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS) 88 : 100 CONTINUE 89 : EPSXY(1)=EPSILO(1) 90 : EPSXY(2)=EPSILO(2) 91 : EPSXY(3)=EPSILO(4) 91 : CALL DIACL (EPSXY,SINUS,COSINUS) 92 : t(1,1)=COSINUS**2 93 : t(2,1)=SINUS**2 94 : t(3,1)=-2.D0*COSINUS*SINUS 95 : t(1,2)=SINUS**2 96 : t(2,2)=COSINUS**2 97 : t(3,2)=2.D0*COSINUS*SINUS 98 : t(1,3)=COSINUS*SINUS 99 : t(2,3)=-COSINUS*SINUS 100 : t(3,3)=COSINUS**2 - SINUS**2 101 : DO I=1,3 102 : EPSNT(I)=0.D0 103 : DO J=1,3 104 : EPSNT(I)=EPSNT(I)+T(I,J)*EPSXY(J) 105 : END DO 106 : END DO 107 : * 108 : *INITIALISATION DU EPSM 109 : * 110 : IF (ISTEP .EQ. 2) THEN 111 : EPSNNM=EPSNN 112 : ELSE 113 : EPSNNM=EPSNT(1) 114 : END IF 115 : EPSMAX1=MAX(EPSMAX,EPCR) 116 : * 117 : *CALCUL DE MU DANS LES DIFFERENTS CAS 118 : * 119 : IF (EPSNNM.LE.0.d0) THEN 120 : MUP=1.D0 121 : MU=MUP 122 : CAS=1 123 : ELSE IF (EPSNNM .LE. EPSMAX1) THEN 124 : IF (EPSMAX1.LE. EPCR*(1.D0-1.D0/MUP0))THEN 125 : MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/EPSMAX1 126 : ELSE 127 : MUP=0.D0 128 : END IF 129 : CAS=2 130 : MU=MUP 131 : ELSE IF (EPSNNM .LE. EPCR*(1.D0-1.D0/MUP0))THEN 132 : IF (EPSMAX1 .LT. EPCR)THEN 133 : MUP=(EPCR+MUP0*(EPSNNM-EPCR)-EPSMAX1)/(EPSNNM-EPSMAX1) 134 : ELSE 135 : MUP=MUP0 136 : END IF 137 : MU=(EPCR+MUP0*(EPSNNM-EPCR))/EPSNNM 138 : EPSMAX=EPSNNM 139 : CAS=3 140 : ELSE 141 : IF ( EPSMAX1 .LT. EPCR*(1.D0-1.D0/MUP0)) then 142 : MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/(EPSMAX1-EPSNNM) 143 : ELSE 144 : MUP=0.D0 145 : END IF 146 : MU=0.D0 147 : CAS=4 148 : EPSMAX1=EPSNNM 149 : END IF 150 : C 151 : C On calcule la contrainte dans le repere principal 152 : C 153 : IF (ISTEP .NE. 1) THEN 154 : EPSNN=EPSNT(1) 155 : EPSTT=EPSNT(2) 156 : SIGNN=MU*YOUN/(1.D0-XNU*XNU*MU)*(EPSNN+XNU*EPSTT) 157 : SIGTT=YOUN/(1.D0-XNU*XNU*MU)*(EPSTT+XNU*MU*EPSNN) 158 : SIGNT(1)=SIGNN 159 : SIGNT(2)=SIGTT 160 : SIGNT(3)=0.D0 161 : C 162 : C Finalement la contrainte est calculee dans le repere de travail 163 : C 164 : DO I=1,3 165 : SIGXY(I)=0.D0 166 : DO J=1,3 167 : SIGXY(I)=SIGXY(I)+T(J,I)*SIGNT(J) 168 : END DO 169 : END DO 170 : SIGF(1)=SIGXY(1) 171 : SIGF(2)=SIGXY(2) 172 : SIGF(3)=XZERO 173 : SIGF(4)=SIGXY(3) 174 : 175 : C 176 : C et les deformations inelastiques finales 177 : C 178 : EPSIN=(UN-MU)/(UN-XNU*XNU*MU)*(EPSNN+XNU*EPSTT) 179 : EPINF(1)=T(1,1)*EPSIN 180 : EPINF(2)=T(1,2)*EPSIN 181 : EPINF(3)=XZERO 182 : EPINF(4)=T(1,3)*EPSIN 183 : END IF 184 : VARF(1)= MAX(EPSMAX,EPSNN) 185 : VARF(2)=EPSNNM 186 : C print*,cas,epsmax1,epsnnm,mu,epsin 187 : C print*,'epsnt=',epsnt 188 : C print*,'signt=',signt 189 : C print*,'sigxy=',sigxy evol1 fx); 190 : C print*,'istep=',istep 191 : C print*,'epsnn=',epsnn 192 : C print*,'epsnnm=',epsnnm 193 : C print*,'epcr=',epcr,'mup0=',mup0 194 : C print*,'mu=',mu,epsin 195 : C PRINT*,'VARF',(VARF(I),I=1,2) 196 : C PRINT*,'EPINF',(EPINF(I),I=1,NSTRS) 197 : C PRINT*,'SIGF',(SIGF(I),I=1,NSTRS) 198 : C PRINT*,'EPSILO',(EPSILO(I),I=1,NSTRS) 199 : C PRINT*,'EPSILI',(EPSILI(I),I=1,NSTRS) 200 : C PRINT*,'DEPST',(DEPST(I),I=1,NSTRS) 201 : C print* 202 : RETURN 203 : END 204 : 205 :
© Cast3M 2003 - All rights reserved.
Disclaimer