Download advan1.eso

Back to the list

   1 : C ADVAN1    SOURCE    STRU      07/05/31    21:15:02     5744           
   2 : 
   3 : C=======================================================================
   4 : C=                                                                     =
   5 : C=  THIS ROUTINE UPDATES THE STRAINS ,STRESSES & INTERNAL VARIABLES.   =
   6 : C=                                                                     =
   7 : C=======================================================================
   8 : 
   9 :       SUBROUTINE ADVAN1 (TAU,SIG,EPSV,VAR,SIG1,EPSV1,VAR1,DSPT,EPSVPT,
  10 :      .                   VARPT,XMAT,NSTRS,NVARI,IFOUR,INPLAS,MFR)
  11 : 
  12 :       IMPLICIT INTEGER(I-N)
  13 :       IMPLICIT REAL*8(A-H,O-Z)
  14 : 
  15 :       DIMENSION SIG(*),EPSV(*),VAR(*),SIG1(*),EPSV1(*),VAR1(*),
  16 :      .          DSPT(*),EPSVPT(*),VARPT(*),XMAT(*)
  17 : 
  18 :       DATA UN / 1.D0 /
  19 : 
  20 : C  STEP-1 : UPDATING STRAINS
  21 : C ----------------------------
  22 :       YOU=XMAT(1)
  23 :       XNU=XMAT(2)
  24 :       IF (INPLAS.EQ.107) THEN
  25 : C= EPSVPT contient les vit de def viscopl. + densification + gonflement
  26 :          DO 10 I=1,NSTRS
  27 :            A=VARPT(5)+VARPT(6)
  28 :            IF (I.GT.3) A=0.D0
  29 :            EPSV1(I)=EPSV(I)+TAU*(EPSVPT(I)-A)
  30 :   10     CONTINUE
  31 :       ELSE
  32 :          DO 15 I=1,NSTRS
  33 :            EPSV1(I)=EPSV(I)+TAU*EPSVPT(I)
  34 :   15     CONTINUE
  35 :       ENDIF
  36 : C  STEP-2 : UPDATING STESSES
  37 : C ----------------------------
  38 : C= Mode de calcul 2D contraintes planes
  39 :       IF (IFOUR.EQ.-2) THEN
  40 :         SIG(3)=0.D0
  41 :         X2MU = YOU/(UN+XNU)
  42 :         XCO = X2MU/(UN-XNU)
  43 :         SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  44 :         SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  45 :         SIG1(3) = 0.D0
  46 :         SIG1(4) = SIG(4) + TAU*(DSPT(4)-X2MU*EPSVPT(4))
  47 : C= Modes de calcul 3D, 2D deformations planes (GENE ou non),
  48 : C=                 2D axisymetrique, 2D series de Fourier
  49 :       ELSE IF (IFOUR.EQ.2.OR.IFOUR.EQ.0.OR.IFOUR.EQ.1.OR.
  50 :      .         IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN
  51 :         X2MU = YOU/(UN+XNU)
  52 :         ALMB = X2MU*XNU/(UN-2*XNU)
  53 :         IF (MFR.EQ.5) THEN
  54 :           X2MU = YOU/(UN+XNU)
  55 :           XCO = X2MU/(UN-XNU)
  56 :           SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  57 :           SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  58 :           SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3))
  59 :           SIG1(4) = SIG(4) + TAU*(DSPT(4)-X2MU*EPSVPT(4))
  60 :           SIG1(5) = SIG(5) + TAU*(DSPT(5)-X2MU*EPSVPT(5))
  61 :         ELSE
  62 :           TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
  63 :           CC=ALMB*TRACE
  64 :           DO 20 I=1,3
  65 :             SIG1(I) = SIG(I) + TAU*(DSPT(I)-CC-X2MU*EPSVPT(I))
  66 :   20      CONTINUE
  67 :           DO 21 I=4,NSTRS
  68 :             SIG1(I) = SIG(I) + TAU*(DSPT(I)-X2MU*EPSVPT(I))
  69 :   21      CONTINUE
  70 :         ENDIF
  71 : C= Modes de calcul 1D contraintes planes suivant z (DYCZ et GYCZ)
  72 :        ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8) THEN
  73 :          SIG(3) = 0.D0
  74 :          XCO = YOU/(UN-XNU*XNU)
  75 :          SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(2)))
  76 :          SIG1(2) = SIG(2) + TAU*(DSPT(2)-XCO*(EPSVPT(2)+XNU*EPSVPT(1)))
  77 :          SIG1(3) = 0.D0
  78 : C= Modes de calcul 1D contraintes planes suivant y (CYDZ et CYGZ) et
  79 : C=                 1D axisymetrique contraintes axiales nulles (AXCZ)
  80 :        ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN
  81 :          SIG(2) = 0.D0
  82 :          XCO = YOU/(UN-XNU*XNU)
  83 :          SIG1(1) = SIG(1) + TAU*(DSPT(1)-XCO*(EPSVPT(1)+XNU*EPSVPT(3)))
  84 :          SIG1(2) = 0.D0
  85 :          SIG1(3) = SIG(3) + TAU*(DSPT(3)-XCO*(EPSVPT(3)+XNU*EPSVPT(1)))
  86 : C= Modes de calcul 1D contraintes planes suivant y et z (CYCZ)
  87 :        ELSE IF (IFOUR.EQ.6) THEN
  88 :          SIG(2) = 0.D0
  89 :          SIG(3) = 0.D0
  90 :          SIG1(1) = SIG(1) + TAU*(DSPT(1)-YOU*EPSVPT(1))
  91 :          SIG1(2) = 0.D0
  92 :          SIG1(3)=0.D0
  93 : C= Autres modes de calcul 1D deformations planes (DYDZ GYDZ DYGZ GYGZ)
  94 : C=                        1D axisymetrique (AXDZ AXGZ) et 1D spherique
  95 :        ELSE IF (IFOUR.EQ. 3.OR.IFOUR.EQ. 7.OR.IFOUR.EQ. 9.OR.IFOUR.EQ.11
  96 :      .      .OR.IFOUR.EQ.12.OR.IFOUR.EQ.14.OR.IFOUR.EQ.15) THEN
  97 :          X2MU = YOU/(UN+XNU)
  98 :          TRACE = EPSVPT(1)+EPSVPT(2)+EPSVPT(3)
  99 :          XCO = X2MU*XNU*TRACE/(UN-XNU)
 100 :          SIG1(1) = SIG(1) + TAU*(DSPT(1)-X2MU*EPSVPT(1)-XCO)
 101 :          SIG1(2) = SIG(2) + TAU*(DSPT(2)-X2MU*EPSVPT(2)-XCO)
 102 :          SIG1(3) = SIG(3) + TAU*(DSPT(3)-X2MU*EPSVPT(3)-XCO)
 103 :        ENDIF
 104 : 
 105 : C  STEP-3 : UPDATING THE INTERNAL VARIABLES
 106 : C------------------------------------------
 107 :        IF (MFR.EQ.5) THEN
 108 :          NSTRS0=NSTRS+1
 109 :        ELSE
 110 :          NSTRS0=NSTRS
 111 :        ENDIF
 112 :        IF ((INPLAS.GE.19.AND.INPLAS.LE.23).OR.INPLAS.EQ.61) THEN
 113 :          DO 30 I=1,2*NSTRS0+3
 114 :            VAR1(I)=VARPT(I)
 115 :   30     CONTINUE
 116 :          NSUB=2*NSTRS0+4
 117 :          VAR1(NSUB)=VAR(NSUB)+TAU*VARPT(NSUB)
 118 :          IF (INPLAS.EQ.20.OR.INPLAS.EQ.22.OR.INPLAS.EQ.23.OR.
 119 :      .       INPLAS.EQ.61) THEN
 120 :            DO 40 I=1,NSTRS0
 121 :              VAR1(NSUB+I)=VAR(NSUB+I)+TAU*VARPT(NSUB+I)
 122 :   40       CONTINUE
 123 :          ENDIF
 124 :        ELSE IF (INPLAS.EQ.24) THEN
 125 :          VAR1(1) = VAR(1) + TAU*VARPT(1)
 126 :          VAR1(2) = VAR(2) + TAU*VARPT(2)
 127 :        ELSE IF (INPLAS.EQ.25.OR.INPLAS.EQ.53.OR.INPLAS.EQ.70.OR.
 128 :      .          INPLAS.EQ.76.OR.INPLAS.EQ.77) THEN
 129 :          DO 50 I=1,NVARI
 130 :            VAR1(I)=VAR(I)+TAU*VARPT(I)
 131 :   50     CONTINUE
 132 :        ELSE IF (INPLAS.EQ.107) THEN
 133 :          DO 60 I=1,NVARI
 134 :            VAR1(I)=VAR(I)+TAU*VARPT(I)
 135 :   60     CONTINUE
 136 :          IF (VAR1(2).LT.0.D0) THEN
 137 :            VAR1(2) = 0.D0
 138 :          ELSE IF (VAR1(2).GT.0.3D0) THEN
 139 :            VAR1(2) = 0.3D0
 140 :          ENDIF
 141 :        ELSE IF(INPLAS.EQ.130) THEN
 142 :          DO 70 I=1,NVARI                                                          
 143 :            VAR1(I)=VAR(I)+TAU*VARPT(I)                                              
 144 :   70     CONTINUE
 145 :          IF (VAR1(3).GE.0.98D0) THEN    
 146 :             VAR1(3) = 0.98D0
 147 :          ENDIF     
 148 :          IF (VAR1(4).GE.0.98D0) THEN      
 149 :             VAR1(4) = 0.98D0
 150 :          ENDIF
 151 :        ENDIF
 152 : 
 153 :        RETURN
 154 :        END
 155 :  
 156 :  
 157 :  
 158 :  

© Cast3M 2003 - All rights reserved.
Disclaimer