Download rotat2.eso

Back to the list

   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