1 : C COTAT2 SOURCE KICH 09/09/11 21:17:37 6505 2 : C ROTAT2 SOURCE AM 00/12/13 21:42:14 4045 3 : C MAZARS SOURCE AM 93/02/26 21:18:27 808 4 : SUBROUTINE COTAT2 (WRK52,WRK53,WRK54,WRKK2,NSTRS1,NVARI,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 NSTRS1 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 : -INC DECHE 47 : * 48 : SEGMENT WRKK2 49 : REAL*8 EPSILI(NSTRS1) 50 : ENDSEGMENT 51 : INTEGER NSTRS11,NVARI 52 : REAL*8 EPSILO(6),EPSNT(3),SIGNT(3),T(3,3),EPSXY(3),SIGXY(3) 53 : REAL*8 MUP0,MU,MUP,EPCR 54 : REAL*8 EPSMAX,EPSNN,EPSMAX1 55 : REAL*8 SINUS,COSINUS 56 : INTEGER CAS 57 : PARAMETER (XZERO=0.D0 , UN=1.D0 , DEUX=2.D0, XPETIT=1.D-12) 58 : 59 : C 60 : C 61 : C recuperation des variables initiales dans les tableaux 62 : C 63 : C 64 : N=NSTRS1 65 : CMATE = 'ISOTROPE' 66 : YOUN = XMAT(1) 67 : XNU = XMAT(2) 68 : EPCR = XMAT(5) 69 : MUP0 = XMAT(6) 70 : EPSMAX = VAR0(1) 71 : EPSNN=VAR0(2) 72 : C 73 : C calcul de la deformation totale 74 : C 75 : DO 100 ISTRS=1,NSTRS1 76 : EPSILO(ISTRS)=EPSILI(ISTRS)+DEPST(ISTRS) 77 : 100 CONTINUE 78 : EPSXY(1)=EPSILO(1) 79 : EPSXY(2)=EPSILO(2) 80 : EPSXY(3)=EPSILO(4) 80 : CALL DIACL (EPSXY,SINUS,COSINUS) 81 : t(1,1)=COSINUS**2 82 : t(2,1)=SINUS**2 83 : t(3,1)=-2.D0*COSINUS*SINUS 84 : t(1,2)=SINUS**2 85 : t(2,2)=COSINUS**2 86 : t(3,2)=2.D0*COSINUS*SINUS 87 : t(1,3)=COSINUS*SINUS 88 : t(2,3)=-COSINUS*SINUS 89 : t(3,3)=COSINUS**2 - SINUS**2 90 : DO I=1,3 91 : EPSNT(I)=0.D0 92 : DO J=1,3 93 : EPSNT(I)=EPSNT(I)+T(I,J)*EPSXY(J) 94 : END DO 95 : END DO 96 : * 97 : *INITIALISATION DU EPSM 98 : * 99 : IF (ISTEP .EQ. 2) THEN 100 : EPSNNM=EPSNN 101 : ELSE 102 : EPSNNM=EPSNT(1) 103 : END IF 104 : EPSMAX1=MAX(EPSMAX,EPCR) 105 : * 106 : *CALCUL DE MU DANS LES DIFFERENTS CAS 107 : * 108 : IF (EPSNNM.LE.0.d0) THEN 109 : MUP=1.D0 110 : MU=MUP 111 : CAS=1 112 : ELSE IF (EPSNNM .LE. EPSMAX1) THEN 113 : IF (EPSMAX1.LE. EPCR*(1.D0-1.D0/MUP0))THEN 114 : MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/EPSMAX1 115 : ELSE 116 : MUP=0.D0 117 : END IF 118 : CAS=2 119 : MU=MUP 120 : ELSE IF (EPSNNM .LE. EPCR*(1.D0-1.D0/MUP0))THEN 121 : IF (EPSMAX1 .LT. EPCR)THEN 122 : MUP=(EPCR+MUP0*(EPSNNM-EPCR)-EPSMAX1)/(EPSNNM-EPSMAX1) 123 : ELSE 124 : MUP=MUP0 125 : END IF 126 : MU=(EPCR+MUP0*(EPSNNM-EPCR))/EPSNNM 127 : EPSMAX=EPSNNM 128 : CAS=3 129 : ELSE 130 : IF ( EPSMAX1 .LT. EPCR*(1.D0-1.D0/MUP0)) then 131 : MUP=(EPCR+MUP0*(EPSMAX1-EPCR))/(EPSMAX1-EPSNNM) 132 : ELSE 133 : MUP=0.D0 134 : END IF 135 : MU=0.D0 136 : CAS=4 137 : EPSMAX1=EPSNNM 138 : END IF 139 : C 140 : C On calcule la contrainte dans le repere principal 141 : C 142 : IF (ISTEP .NE. 1) THEN 143 : EPSNN=EPSNT(1) 144 : EPSTT=EPSNT(2) 145 : SIGNN=MU*YOUN/(1.D0-XNU*XNU*MU)*(EPSNN+XNU*EPSTT) 146 : SIGTT=YOUN/(1.D0-XNU*XNU*MU)*(EPSTT+XNU*MU*EPSNN) 147 : SIGNT(1)=SIGNN 148 : SIGNT(2)=SIGTT 149 : SIGNT(3)=0.D0 150 : C 151 : C Finalement la contrainte est calculee dans le repere de travail 152 : C 153 : DO I=1,3 154 : SIGXY(I)=0.D0 155 : DO J=1,3 156 : SIGXY(I)=SIGXY(I)+T(J,I)*SIGNT(J) 157 : END DO 158 : END DO 159 : SIGF(1)=SIGXY(1) 160 : SIGF(2)=SIGXY(2) 161 : SIGF(3)=XZERO 162 : SIGF(4)=SIGXY(3) 163 : 164 : C 165 : C et les deformations inelastiques finales 166 : C 167 : EPSIN=(UN-MU)/(UN-XNU*XNU*MU)*(EPSNN+XNU*EPSTT) 168 : EPINF(1)=T(1,1)*EPSIN 169 : EPINF(2)=T(1,2)*EPSIN 170 : EPINF(3)=XZERO 171 : EPINF(4)=T(1,3)*EPSIN 172 : END IF 173 : VARF(1)= MAX(EPSMAX,EPSNN) 174 : VARF(2)=EPSNNM 175 : C print*,cas,epsmax1,epsnnm,mu,epsin 176 : C print*,'epsnt=',epsnt 177 : C print*,'signt=',signt 178 : C print*,'sigxy=',sigxy evol1 fx); 179 : C print*,'istep=',istep 180 : C print*,'epsnn=',epsnn 181 : C print*,'epsnnm=',epsnnm 182 : C print*,'epcr=',epcr,'mup0=',mup0 183 : C print*,'mu=',mu,epsin 184 : C PRINT*,'VARF',(VARF(I),I=1,2) 185 : C PRINT*,'EPINF',(EPINF(I),I=1,NSTRS1) 186 : C PRINT*,'SIGF',(SIGF(I),I=1,NSTRS1) 187 : C PRINT*,'EPSILO',(EPSILO(I),I=1,NSTRS1) 188 : C PRINT*,'EPSILI',(EPSILI(I),I=1,NSTRS1) 189 : C PRINT*,'DEPST',(DEPST(I),I=1,NSTRS1) 190 : C print* 191 : RETURN 192 : END 193 : 194 : 195 : 196 : 197 : 198 : 199 :
© Cast3M 2003 - All rights reserved.
Disclaimer