Download lispp1.eso

Back to the list

   1 : C LISPP1    SOURCE    CHAT      05/01/13    01:23:10     5004           
   2 :       SUBROUTINE LISPP1(XN0,XM0,XNT,XMT,QSI,W,YOU,XNU,WORK,                     
   3 :      1   XLAM0,PRECIS,XNE,XME,XNP,XMP,DLAM,KERRE)                               
   4 : C=======================================================================        
   5 : C     CALCULE L ECOULEMENT PLASTIQUE DANS LE CAS DU LINESPRING                  
   6 : C   ENTREES                                                                     
   7 : C    XN0,XM0   = EFFORTS SUR LE DEBUT DU PAS                                    
   8 : C    XNT,XMT   = EFFORTS TOATAUX                                                
   9 : C    QSI       = RAPPORT PROFONDEUR DE FISSURE SUR EPAISSEUR                    
  10 : C    W         = EPAISSEUR LINESPRING                                           
  11 : C    YOU       = MODULE D YOUNG                                                 
  12 : C    XNU       = COEFFICIENT DE POISSON                                         
  13 : C    SIG,XLAM  = COURBE (SIG0,PHIP)                                             
  14 : C    NCOURB    = NOMBRE DE POINTS DE LA COURBE DE TRACTION                      
  15 : C    XLAM0     = PARAMETRE D ECROUISSAGE AU DEBUT DU PAS                        
  16 : C    PRECIS    = PRECISION DES ITERATIONS                                       
  17 : C   SORTIES                                                                     
  18 : C    XNE,XME   = EFFORTS FIN DU PAS SUR SURFACE DE CHARGE                       
  19 : C    XNP,XMP   = DEFORMATIONS PLASTIQUES     FIN DU PAS                         
  20 : C    DLAM      = INCREMENT SUR LE PAS DU PARAMETRE D ECROUISSAGE                
  21 : C    KERRE     = INDICATEUR D ERREUR                                            
  22 : C     EBERSOLT      AVRIL 86                                                    
  23 : C     REVISION  J. BROCHARD  AOUT 90     ECOULEMENT NON ASSOCIE                 
  24 : C                                                                               
  25 : C=======================================================================        
  26 :       IMPLICIT INTEGER(I-N)
  27 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  28 :       SEGMENT/WORK/(SIG(NCOURB)*D,XLAM(NCOURB)*D)                               
  29 :       PARAMETER(UNSIX=.166666666666666D0,SIX=6.D0)                              
  30 :       PARAMETER(DEUX=2.D0,UNDEMI=.5D0,UN=1.D0,XZER=0.D0)                        
  31 :       PARAMETER(NITER=50,PENA=1.D6,EPSINV=1.D-3)                                
  32 : C                                                                               
  33 :       PREC=PRECIS*UNDEMI                                                        
  34 :       IBI=0
  35 : C                                                                               
  36 : C                                                                               
  37 : C    ON CALCULE LES PARAMETRES DE L ECOULEMENT                                  
  38 : C                                                                               
  39 :       NCOURB=SIG(/1)                                                            
  39 :       CALL TRACTI(SIGMA0,XLAM0,SIG,XLAM,NCOURB,2,IBI)
  40 :       IF(IBI.EQ.1) THEN
  41 :         KERRE=75
  42 :         RETURN
  43 :       ENDIF
  43 :       CALL LISPPA(QSI,W,SIGMA0,GA,GB,A,B,C,D,E,F)                               
  44 : C                                                                               
  45 : C     CALCUL DE LA MATRICE DE HOOKE                                             
  46 : C                                                                               
  47 :       DD2 = YOU*UNDEMI/(UN-XNU*XNU)                                             
  48 :       IF(QSI.GT.EPSINV) THEN                                                    
  48 :       CALL LISPAL(QSI,ALMM,ALMF,ALFF,DELTA)                                     
  49 : C                                                                               
  50 :       DDD = DD2/DELTA                                                           
  51 :       D11 = ALFF * DDD                                                          
  52 :       D12 =-ALMF * DDD  * W * UNSIX                                             
  53 :       D21 =-ALMF * DDD  * W * UNSIX                                             
  54 :       D22 = ALMM * DDD  * W * W * UNSIX * UNSIX                                 
  55 :       ELSE                                                                      
  56 :       D11 =DD2*PENA*W                                                           
  57 :       D22 =DD2*PENA*W*W*W*UNSIX*UNDEMI                                          
  58 :       D12 =XZER                                                                 
  59 :       D21 =XZER                                                                 
  60 :       ENDIF                                                                     
  61 : C                                                                               
  62 : C     VARIABLE D ECROUISSAGE : ROTATION PLASTIQUE                               
  63 : C     RECHERCHE DE LA SOLUTION PAR DICHOTOMIE                                   
  64 : C     ENTRE LE CAS TOUT ELASTIQUE ET LE CAS TOUT PLASTIQUE                      
  65 : C                                                                               
  66 :       XNE1=XNT                                                                  
  67 :       XME1=XMT                                                                  
  68 :       XNP1=XZER                                                                 
  69 :       XMP1=XZER                                                                 
  70 :       XLAM1=XLAM0                                                               
  70 :       CALL LISPQ(XNE1,XME1,W,SIGMA0,GA,GB,QSI,Q1)                               
  71 :       XNE2=XN0                                                                  
  72 :       XME2=XM0                                                                  
  73 :       XX1=XNT - XN0                                                             
  74 :       XX2=XMT - XM0                                                             
  75 :       DDX=  2.D0*(1.D0 -XNU* XNU)/YOU                                           
  76 :       XNP2= ALMM*XX1       + ALMF*XX2*SIX/W                                     
  77 :       XMP2= ALMF*XX1*SIX/W + ALFF*XX2*SIX*SIX/(W*W)                             
  78 :       XNP2= XNP2*DDX                                                            
  79 :       XMP2= XMP2*DDX                                                            
  80 :       ALPH= XNP2 / XMP2                                                         
  81 :       XLAM2=XLAM0+ABS(XMP2)                                                     
  81 :       CALL TRACTI(SIGMA2,XLAM2,SIG,XLAM,NCOURB,2,IBI)
  82 :       IF(IBI.EQ.1) THEN
  83 :         KERRE=75
  84 :         RETURN
  85 :       ENDIF
  85 :       CALL LISPQ(XNE2,XME2,W,SIGMA2,GA,GB,QSI,Q2)                               
  86 :       IF(ABS(Q2).LT.PREC) THEN                                                  
  87 :       XNE3=XNE2                                                                 
  88 :       XME3=XME2                                                                 
  89 :       XNP3=XNP2                                                                 
  90 :       XMP3=XMP2                                                                 
  91 :       GOTO 200                                                                  
  92 :       ENDIF                                                                     
  93 :       NBIT=0                                                                    
  94 : 100   CONTINUE                                                                  
  95 :       NBIT=NBIT+1                                                               
  96 :       IF(NBIT.GT.NITER) THEN                                                    
  97 : C                                                                               
  98 : C     PAS DE CONVERGENCE EN MOINS DE NITER ITERATIONS                           
  99 : C                                                                               
 100 :       KERRE=2                                                                   
 101 :       RETURN                                                                    
 102 :       ENDIF                                                                     
 103 :       DQ = (Q2 - Q1) / (XMP2 - XMP1)                                            
 104 :       XMP3= XMP1 - Q1 / DQ                                                      
 105 :       XNP3= ALPH * XMP3                                                         
 106 :       XNE3=XNT - D11*XNP3 - D12*XMP3                                            
 107 :       XME3=XMT - D21*XNP3 - D22*XMP3                                            
 108 :       XLAM3=XLAM0+ABS(XMP3)                                                     
 108 :       CALL TRACTI(SIGMA3,XLAM3,SIG,XLAM,NCOURB,2,IBI)
 109 :       IF(IBI.EQ.1) THEN
 110 :         KERRE=75
 111 :         RETURN
 112 :       ENDIF
 112 :       CALL LISPQ(XNE3,XME3,W,SIGMA3,GA,GB,QSI,Q3)                               
 113 :       IF(ABS(Q3).LT.PREC) GOTO 200                                              
 114 :       IF ((Q1*Q3).LT.XZER) THEN                                                 
 115 :          XNP2=XNP3                                                              
 116 :          XMP2=XMP3                                                              
 117 :          Q2=Q3                                                                  
 118 :          GOTO 100                                                               
 119 :       ENDIF                                                                     
 120 :       IF ((Q2*Q3).LT.XZER) THEN                                                 
 121 :          XNP1=XNP3                                                              
 122 :          XMP1=XMP3                                                              
 123 :          Q1=Q3                                                                  
 124 :          GOTO 100                                                               
 125 :       ENDIF                                                                     
 126 : C                                                                               
 127 : C                                                                               
 128 : C     ON A CONVERGE EN MOINS DE NITER ITERATIONS                                
 129 : C                                                                               
 130 :   200 CONTINUE                                                                  
 131 :       XNE=XNE3                                                                  
 132 :       XME=XME3                                                                  
 133 :       XNP=XNP3                                                                  
 134 :       XMP=XMP3                                                                  
 135 :       DLAM=ABS(XMP)                                                             
 136 : C                                                                               
 137 :       RETURN                                                                    
 138 :       END                                                                       
 139 :  
 140 :  

© Cast3M 2003 - All rights reserved.
Disclaimer