Download vparf.eso

Back to the list

   1 : C VPARF     SOURCE    CHAT      05/01/13    04:09:39     5004           
   2 :       SUBROUTINE VPARF(YOUNG,POISSON,Y,CK,CN,RSIG0,RDSIG,RDEFP,
   3 :      &                RSIGF,DT)                                          
   4 : C                                                                               
   5 : C ==================================================================            
   6 : C CE SOUS-PROGRAMME REALISE L'INTEGRATION DE LA LOI DE VISCOPLASTICITE
   7 : C                                                                               
   8 : C ENTREES:                                                                      
   9 : C -------                                                                       
  10 : C YOUNG
  11 : C POISSON
  12 : C Y  limite elastique
  13 : C CK coefficient de viscosite
  14 : C CN puissance de la loi d'ecoulement
  15 : C RSIG0(6)  = CONTR. AU DEBUT DU PAS D'INTEGRATION                           
  16 : C RDSIG(6) = INCREMENT DES CONTR. CALCULE ELASTIQUEMENT                     
  17 : C                A PARTIR DE L'INCREMENT DES DEFORM. TOTALES                    
  18 : C                                                                          
  19 : C SORTIES:                                                                      
  20 : C -------                                                                       
  21 : C RSIGF(NSTRS)= CONTR. A LA FIN DU PAS D'INTEGRATION                             
  22 : C RDEFP(NSTRS)= INCREMENT DES DEFORM. PLASTIQUES A LA FIN DU PAS                 
  23 : C              D'INTEGRATION                                                    
  24 : C                                      
  25 :       IMPLICIT INTEGER(I-N)
  26 :       IMPLICIT REAL*8(A-H,O-Z)                                                      
  27 :       DIMENSION RSIG0(6),RDSIG(6),RDEFP(6),RSIGF(6),RSIGTR(6) 
  28 :       DIMENSION COEF(6)
  29 :       F(X,A,B,C,D,E,G) = X + 2.D0*G*B*((X-A)/C)**D - E
  30 : c      a c'est y
  31 : c      b c'est mu
  32 : c      c c'est k
  33 : c      d c'est cn
  34 : c      e c'est seqtr  
  35 : c      g c'est dt
  36 : c
  37 : c  executable
  38 : *
  39 :       DATA COEF/1.D0,1.D0,1.D0,2.D0,2.D0,2.D0/
  40 : *
  41 :       DO 5 I=1,6
  42 :           RDEFP(I) = 0.D0
  43 :           RSIGF(I) = 0.D0
  44 :   5   CONTINUE
  45 :       CMU = YOUNG / 2.D0 / (1.d0 +POISSON)
  46 :       DO 10 I=1,6 
  47 :         RSIGTR(I) = RSIG0(I) + RDSIG(I)
  48 :   10  CONTINUE
  49 : c
  50 : c   partie hydrostatique du trial stress
  51 :       PTR = (RSIGTR(1) +  RSIGTR(2) + RSIGTR(3))/3.D0  
  52 : c
  53 : c   on calcul la partie deviatorique du trial stress
  54 :       DO 20 I=1,3
  55 :          RSIGTR(I) = RSIGTR(I) - PTR
  56 :   20  CONTINUE
  57 : c
  58 : c   contrainte equivalente du trial stress
  59 :       SEQTR = 0.D0
  60 :       DO 30 I=1,6
  61 :           SEQTR = SEQTR + RSIGTR(I)*RSIGTR(I)*COEF(I)
  62 :   30  CONTINUE
  63 :       SEQTR = SQRT( 1.5D0 * SEQTR)
  64 : c
  65 :       IF ( SEQTR .GT. Y ) THEN
  66 : c          le materiau subit une evolution nonlineaire
  67 : c
  68 : c       ordre de grandeur de l'equation pour la convergence
  69 :         ODG = ABS (Y-SEQTR)
  70 : c      resolution de l'equation f(x) = 0   
  71 :         X1 = Y
  72 :         X2 = SEQTR
  73 : c        Y1 = F(X1,Y,CMU,CK,CN,SEQTR,DT)
  74 : c        Y2 = F(X2,Y,CMU,CK,CN,SEQTR,DT) 
  75 : c
  76 :         DO 40 I=1,200 
  77 : c          resolution par dicotomie
  78 : c         X3 = X1 + abs((X2 - X1)*Y1/ (Y2-Y1)) 
  79 :          X3 = (X1 +X2) /2.d0
  80 :          Y3 =  F(X3,Y,CMU,CK,CN,SEQTR,DT) 
  81 :          IF ( Y3 .GT. (1.D-4*ODG) ) THEN
  82 :            X2 = X3
  83 : c           Y2 = Y3
  84 :          ELSE IF ( Y3 .LT. (-1.D-4*ODG) ) THEN
  85 :            X1 = X3 
  86 : c           Y1 = Y3
  87 :          ELSE
  88 : c       on a converge
  89 :            GOTO 50
  90 :          ENDIF
  91 :   40    CONTINUE
  91 :         CALL ERREUR(268)
  92 : c        write (*,1000) young,poisson,y,ck,cn
  93 : c 1000   format('E=',1X,G12.7,1X,'Nu=',G12.7,1X,'Y=',G12.7/
  94 : c     & 'K=',G12.7,1X,'N=',G12.7)
  95 : c        WRITE(*,1001) X1,X2
  96 : c        WRITE(*,1001) Y1,Y2
  97 : c 1001   format('X1=',G12.7,' X2=',G12.7)
  98 : c        Print *, 'AIE CA NE CONVERGE PAS'
  99 :   50    CONTINUE
 100 : *
 101 :         AMPLI = X3 / SEQTR
 102 :         DO 60 I=1,6
 103 :           RSIGF(I) = RSIGTR(I) * AMPLI
 104 :   60    CONTINUE
 105 :         AMPLI = (1.D0/AMPLI -1.D0) / 2.D0 / CMU
 106 :         DO 70 I=1,6
 107 :           RDEFP(I) = RSIGF(I) * AMPLI * COEF(I)
 108 :   70    CONTINUE
 109 : c       de deviatorique a complet
 110 :         DO 80 I=1,3
 111 :           RSIGF(I) = RSIGF(I) + PTR
 112 :   80    CONTINUE
 113 : c        verification
 114 : c       zero = rsigtr(1) - rsigf(1)+ptr - 2.d0*cmu*rdefp(1)
 115 : c       if ( (abs(zero)) .GT. 1.d-3 ) then
 116 : c         print *, 'ouille',zero
 117 : c       endif
 118 :       ELSE
 119 : c    l'evolution est elastique
 120 :         DO 90 I=1,6
 121 :           RSIGF(I) = RSIGTR(I)
 122 :   90    CONTINUE       
 123 :         DO 100 I=1,3
 124 :           RSIGF(I) = RSIGF(I) + PTR
 125 :   100    CONTINUE
 126 :       ENDIF
 127 : c
 128 :       RETURN
 129 :       END     
 130 : 
 131 : 
 132 :  

© Cast3M 2003 - All rights reserved.
Disclaimer