Download t1t2dp.eso

Back to the list

   1 : C T1T2DP    SOURCE    CHAT      05/01/13    03:29:37     5004           
   2 :       SUBROUTINE T1T2DP(SIG,DSIG,YOUN,ANU,RT1,RT2,H1,H2,RDP,ADP,HDP,            
   3 :      1 XLAM1,XLAM2,XLAM3,IDAM,ANG,EPPLDP,ALPHA,KERRE)                           
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : -INC CCOPTIO                                                                    
   7 :       DIMENSION SIG(3),DSIG(3),SGG(3),DSGG(3),SFG(3),DSFG(3),                   
   8 :      1 A(3),B(3),IDAM(3),EPC(3),SSI(3),SI(3),EPC1(3),SG1(3),                    
   9 :      1 SG2(3),EC1(3),EC2(3),AT(4),BT(2),EPDP(3),EPPLDP(3)                       
  10 :       ITER=0                                                                    
  11 :       Y=YOUN/(1.D0-ANU*ANU)                                                     
  12 :       DO 5 ITYP=1,3                                                             
  13 :       EPPLDP(ITYP)=0.D0                                                         
  14 :     5 EPDP(ITYP)=0.D0                                                           
  15 :       XT=0.D0                                                                   
  16 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9999)                                          
  17 : 9999  FORMAT(1X,'T1T2DP TRIPLAGE TRACTION 1 TRACTION 2 DRUCKER',/)              
  18 :  9998 FORMAT(1X,'T1T2DP ',I4,'ITERATIONS INTERNES',/)                           
  19 : C                                                                               
  20 : C------------------------------------------------                               
  21 : C     TRIPLAGE TRACTION TRACTION DRUCKER                                        
  22 : C------------------------------------------------                               
  23 : C----------------------------------------------                                 
  24 : C     DEFINITION D UNE CONTRAINTE DE REFERENCE                                  
  25 : C     SI RMAX DU DRUCKER INFERIEURE A CETTE VALEUR                              
  26 : C     ALORS SIGMA=0                                                             
  27 : C----------------------------------------------                                 
  28 : C                                                                               
  29 :       RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
  30 :       SIREF=1.E-6*YOUN                                                          
  31 : C                                                                               
  32 : C--------------------------------------------------                             
  33 : C     CAS OU LE RAYON DU DRUCKER EST INFERIEUR                                  
  34 : C     A UNE VALEUR DE REFERENCE                                                 
  35 : C--------------------------------------------------                             
  36 : C                                                                               
  37 :       IF(SIREF.GT.RMAX) THEN                                                    
  38 :       DO 10 ITYP=1,3                                                            
  39 :   10  SIG(ITYP)=SIG(ITYP)+DSIG(ITYP)                                            
  40 :       RDP=0.D0                                                                  
  41 :       HDP=0.D0                                                                  
  42 :       ADP=0.D0                                                                  
  42 :       CALL NORME(SIG,DL3)                                                       
  43 :       DL3=DL3/YOUN*10.D0                                                        
  44 :       XLAM3=XLAM3+DL3                                                           
  44 :       CALL CPHOIN(SIG,EPPLDP,YOUN,ANU)                                          
  45 :       DO 20 ITYP=1,3                                                            
  46 :       IDAM(ITYP)=0                                                              
  47 :       DSIG(ITYP)=0.D0                                                           
  48 :   20  SIG(ITYP)=0.D0                                                            
  49 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
  50 :       RETURN                                                                    
  51 :       ENDIF                                                                     
  52 : C-----------------------------------------------                                
  53 : C     ON SE PLACE DANS LE REPERE DE FISSURATION                                 
  54 : C-----------------------------------------------                                
  55 : C                                                                               
  55 :       CALL CHREP(SIG,SFG,ANG)                                                   
  55 :       CALL CHREP(DSIG,DSFG,ANG)                                                 
  56 : C                                                                               
  57 : C-----------------------------------------------------                          
  58 : C     ESTIMATION DU PAS D'INCREMENT DE CONTRAINTES                              
  59 : C-----------------------------------------------------                          
  60 : C                                                                               
  60 :       CALL SIJ(SFG,SI,SIETOI)                                                   
  60 :       CALL EPSDP(SI,SIETOI,ADP,EPC)                                             
  60 :       CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA)                                       
  60 :       CALL SCAL2(EPC,SSI,VAL)                                                   
  61 :       VAL=VAL-HDP                                                               
  62 :       IF(VAL.LT.0.D0) THEN                                                      
  63 :       KERRE=459                                                                 
  64 :       RETURN                                                                    
  65 :       ENDIF                                                                     
  65 :       CALL SCAL(SSI,DSFG,VAL)                                                   
  65 :       CALL NORME(DSFG,VA1)                                                      
  65 :       CALL NORME(SSI,VA2)                                                       
  66 :       IF(VA1.EQ.0.D0) THEN                                                      
  67 :       IDAM(1)=0                                                                 
  68 :       IDAM(2)=0                                                                 
  69 :       IDAM(3)=0                                                                 
  70 :       RETURN                                                                    
  71 :       ENDIF                                                                     
  72 :       RMIN=MIN((RDP/1.73),(RDP/(1.D0+2.D0*ADP)))                                
  73 :       X=VAL/VA1/VA2                                                             
  74 :       IF(X.GE.1.D0) THEN                                                        
  75 :       X=1.D0                                                                    
  76 :       GOTO 25                                                                   
  77 :       ENDIF                                                                     
  78 :       X=1.D0/SQRT(1.0001D0-X*X)*RMIN/VA1/8.D0                                   
  79 :       IF(X.GT.1.D0) X=1.D0                                                      
  80 : C                                                                               
  81 : C----------------------------------------------------------                     
  82 : C     ON ECOULE ET ON REGARDE LA VARIATION DE NORMALE                           
  83 : C----------------------------------------------------------                     
  84 : C                                                                               
  85 : C                                                                               
  86 : C---------------------------------------                                        
  87 : C     RESOLUTION DU SYSTEME EN DL3                                              
  88 : C---------------------------------------                                        
  89 :    25 X=X/2.D0                                                                  
  90 :       EC1(1)=1.D0                                                               
  91 :       EC1(2)=0.D0                                                               
  92 :       EC1(3)=0.D0                                                               
  93 :       EC2(1)=0.D0                                                               
  94 :       EC2(2)=1.D0                                                               
  95 :       EC2(3)=0.D0                                                               
  95 :       CALL CPHOOB(EC1,SG1,YOUN,ANU)                                             
  95 :       CALL CPHOOB(EC2,SG2,YOUN,ANU)                                             
  96 :    51 X=X*2.D0                                                                  
  97 :    52 RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
  98 :       ITER=ITER+1                                                               
  99 :   653 IF(ITER.GT.200) THEN                                                      
 100 :       KERRE=460                                                                 
 101 :       RETURN                                                                    
 102 :       ENDIF                                                                     
 103 :       IF(SIREF.GT.RMAX) THEN                                                    
 104 :       RDP=0.D0                                                                  
 105 :       ADP=0.D0                                                                  
 106 :       HDP=0.D0                                                                  
 107 :       DO 60 ITYP=1,3                                                            
 108 :    60 SFG(ITYP)=SFG(ITYP)+(1.D0-XT)*DSFG(ITYP)                                  
 108 :       CALL NORME(SFG,DL3)                                                       
 109 :       DL3=DL3/YOUN*10.D0                                                        
 110 :       XLAM3=XLAM3+DL3                                                           
 110 :       CALL CPHOIN(SFG,EPPLDP,YOUN,ANU)                                          
 111 :       DO 70 ITYP=1,3                                                            
 112 :    70 EPDP(ITYP)=EPDP(ITYP)+EPPLDP(ITYP)                                        
 112 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 113 :       DO 80 ITYP=1,3                                                            
 114 :       IDAM(ITYP)=0                                                              
 115 :       DSIG(ITYP)=0.D0                                                           
 116 :    80 SIG(ITYP)=0.D0                                                            
 117 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
 118 :       RETURN                                                                    
 119 :       ENDIF                                                                     
 120 :       IF((XT+X).GT.1.D0) X=1.D0-XT                                              
 120 :       CALL SIJ(SFG,SI,SIETOI)                                                   
 120 :       CALL EPSDP(SI,SIETOI,ADP,EPC)                                             
 120 :       CALL CPHOMO(EPC,SSI,YOUN,ANU,ALPHA)                                       
 120 :       CALL SCAL2(EPC,SSI,VAL)                                                   
 121 :       VAL=VAL-HDP                                                               
 122 :       IF(VAL.LT.0.D0) THEN                                                      
 123 :       KERRE=459                                                                 
 124 :       RETURN                                                                    
 125 :       ENDIF                                                                     
 126 : C                                                                               
 127 : C                                                                               
 128 :    90 ITER=ITER+1                                                               
 129 :       IF(ITER.GT.201) GOTO 653                                                  
 130 :       AT(1)=Y-H1                                                                
 131 :       AT(4)=Y-H2                                                                
 132 :       AT(2)=Y*ANU                                                               
 133 :       AT(3)=AT(2)                                                               
 134 :       DO 95 ITYP=1,3                                                            
 135 :    95 DSGG(ITYP)=X*DSFG(ITYP)                                                   
 136 :       BT(1)=SFG(1)+DSGG(1)-RT1                                                  
 137 :       BT(2)=SFG(2)+DSGG(2)-RT2                                                  
 137 :       CALL SYLIN2(AT,BT,DL11,DL21)                                              
 138 :       BT(1)=-SSI(1)                                                             
 139 :       BT(2)=-SSI(2)                                                             
 139 :       CALL SYLIN2(AT,BT,DL12,DL22)                                              
 140 :       DO 100 ITYP=1,3                                                           
 141 :       A(ITYP)=SFG(ITYP)+DSGG(ITYP)-DL11*SG1(ITYP)-DL21*SG2(ITYP)                
 142 :   100 B(ITYP)=-DL12*SG1(ITYP)-DL22*SG2(ITYP)-SSI(ITYP)                          
 142 :       CALL DLAMDP(A,B,DL3,RDP,ADP,HDP,ITEST)                                    
 143 :       IF(ITEST.EQ.1) THEN                                                       
 144 :       X=X/2.D0                                                                  
 145 :       GOTO 90                                                                   
 146 :       ENDIF                                                                     
 147 :       DL1=DL11+DL3*DL12                                                         
 148 :       DL2=DL21+DL3*DL22                                                         
 149 :       DO 105 ITYP=1,3                                                           
 150 :       SGG(ITYP)=SFG(ITYP)-DL1*SG1(ITYP)-DL2*SG2(ITYP)                           
 151 :   105 SGG(ITYP)=SGG(ITYP)-DL3*SSI(ITYP)+X*DSFG(ITYP)                            
 152 :       IF(DL1.LT.-1.D-10) IDAM(1)=0                                              
 153 :       IF(DL2.LT.-1.D-10) IDAM(2)=0                                              
 154 :       IF(DL3.LT.-1.D-10) IDAM(3)=0                                              
 155 :       IF(IDAM(1).EQ.0.OR.IDAM(2).EQ.0.OR.IDAM(3).EQ.0) THEN                     
 156 :       DL1=0.D0                                                                  
 157 :       DL2=0.D0                                                                  
 158 :       DL3=0.D0                                                                  
 159 :       X=0.D0                                                                    
 160 :       GOTO 2000                                                                 
 161 :       ENDIF                                                                     
 162 : C                                                                               
 163 : C-------------------------------------------------------                        
 164 : C     ON  VERIFIE SI LA NORMALE DU DRUCKER VARIE PEU                            
 165 : C-------------------------------------------------------                        
 166 : C                                                                               
 166 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 166 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 166 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 166 :       CALL NORME(EPC,VA1)                                                       
 166 :       CALL NORME(EPC1,VA2)                                                      
 167 :       CO=VAL/VA1/VA2                                                            
 168 :       IF(CO.LT.0.99) THEN                                                       
 169 :       X=X/2.D0                                                                  
 170 :       GOTO 90                                                                   
 171 :       ENDIF                                                                     
 172 : C                                                                               
 173 : C-------------------------------------------------                              
 174 : C     CAS OU LA TRACTION PASSE EN DESSOUS DE 0                                  
 175 : C-------------------------------------------------                              
 176 : C                                                                               
 177 :       IF((RT1-H1*DL1).GE.-1.E-10) GOTO 200                                      
 178 : C                                                                               
 179 : C                                                                               
 180 :       IF(H1.EQ.0.D0) H1=1.D0                                                    
 181 :       DL1=RT1/H1                                                                
 182 :       AT(1)=-DSFG(1)                                                            
 183 :       AT(3)=-DSFG(2)                                                            
 184 :       AT(4)=Y-H2                                                                
 185 :       AT(2)=Y*ANU                                                               
 186 :       BT(1)=SFG(1)-DL1*SG1(1)                                                   
 187 :       BT(2)=SFG(2)-DL1*SG1(2)-RT2                                               
 187 :       CALL SYLIN2(AT,BT,X1,DL21)                                                
 188 :       BT(1)=-SSI(1)                                                             
 189 :       BT(2)=-SSI(2)                                                             
 189 :       CALL SYLIN2(AT,BT,X2,DL22)                                                
 190 :       DO 110 ITYP=1,3                                                           
 191 :       A(ITYP)=SFG(ITYP)+X1*DSFG(ITYP)-DL1*SG1(ITYP)-DL21*SG2(ITYP)              
 192 :   110 B(ITYP)=X2*DSFG(ITYP)-DL22*SG2(ITYP)-SSI(ITYP)                            
 192 :       CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)                               
 193 :       DO 111 ITYP=1,3                                                           
 194 :       SGG(ITYP)=A(ITYP)+DL31*B(ITYP)                                            
 195 :   111 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)                                           
 195 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 195 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 195 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 195 :       CALL NORME(EPC,VA1)                                                       
 195 :       CALL NORME(EPC1,VA2)                                                      
 196 :       CO1=VAL/VA1/VA2                                                           
 196 :       CALL SIJ(DSGG,SI,SIETOI)                                                  
 196 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 196 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 196 :       CALL NORME(EPC,VA1)                                                       
 196 :       CALL NORME(EPC1,VA2)                                                      
 197 :       CO2=VAL/VA1/VA2                                                           
 198 :       XIN1=X1+X2*DL31                                                           
 199 :       XIN2=X1+X2*DL32                                                           
 200 :       DLIN1=DL21+DL31*DL22                                                      
 201 :       DLIN2=DL21+DL32*DL22                                                      
 202 :       IF(XIN1.GT.-1.E-10.AND.DLIN1.GT.-1.E-10.AND.XIN1.LE.X                     
 203 :      1 .AND.CO1.GT.0.9) THEN                                                    
 204 :       DL3=DL31                                                                  
 205 :       X=XIN1                                                                    
 206 :       DL2=DLIN1                                                                 
 207 :       GOTO 200                                                                  
 208 :       ENDIF                                                                     
 209 :       IF(XIN2.GT.-1.E-10.AND.DLIN2.GT.-1.E-10.AND.XIN2.LE.X                     
 210 :      1 .AND.CO2.GT.0.9) THEN                                                    
 211 :       DL3=DL32                                                                  
 212 :       X=XIN2                                                                    
 213 :       DL2=DLIN2                                                                 
 214 :       GOTO 200                                                                  
 215 :       ENDIF                                                                     
 216 :       IF(IIMPI.EQ.9) WRITE(IOIMP,10101)                                         
 217 : 10101 FORMAT(1X,'T1T2DP  ERREUR TRAC 1')                                        
 218 :       DL3=DL31                                                                  
 219 :       X=XIN1                                                                    
 220 :       DL2=DLIN1                                                                 
 221 :   200 IF((RT2-H2*DL2).GE.-1.E-10) GOTO 300                                      
 222 : C                                                                               
 223 : C-------------------------------------------------                              
 224 : C     CAS OU LA TRACTION 2 PASSE EN DESSOUS DE 0                                
 225 : C-------------------------------------------------                              
 226 : C                                                                               
 227 : C                                                                               
 228 : C                                                                               
 229 :       IF(H2.EQ.0.D0) H2=1.D0                                                    
 230 :       DL2=RT2/H2                                                                
 231 :       AT(1)=-DSFG(1)                                                            
 232 :       AT(3)=-DSFG(2)                                                            
 233 :       AT(2)=Y-H1                                                                
 234 :       AT(4)=Y*ANU                                                               
 235 :       BT(1)=SFG(1)-DL2*SG2(1)-RT1                                               
 236 :       BT(2)=SFG(2)-DL2*SG2(2)                                                   
 236 :       CALL SYLIN2(AT,BT,X1,DL11)                                                
 237 :       BT(1)=-SSI(1)                                                             
 238 :       BT(2)=-SSI(2)                                                             
 238 :       CALL SYLIN2(AT,BT,X2,DL12)                                                
 239 :       DO 210 ITYP=1,3                                                           
 240 :       A(ITYP)=SFG(ITYP)+X1*DSFG(ITYP)-DL11*SG1(ITYP)-DL2*SG2(ITYP)              
 241 :   210 B(ITYP)=X2*DSFG(ITYP)-DL12*SG1(ITYP)-SSI(ITYP)                            
 241 :       CALL DLAMD(A,B,DL31,DL32,RDP,ADP,HDP,ITEST)                               
 242 :       DO 211 ITYP=1,3                                                           
 243 :       SGG(ITYP)=A(ITYP)+DL31*B(ITYP)                                            
 244 :   211 DSGG(ITYP)=A(ITYP)+DL32*B(ITYP)                                           
 244 :       CALL SIJ(SGG,SI,SIETOI)                                                   
 244 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 244 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 244 :       CALL NORME(EPC,VA1)                                                       
 244 :       CALL NORME(EPC1,VA2)                                                      
 245 :       CO1=VAL/VA1/VA2                                                           
 245 :       CALL SIJ(DSGG,SI,SIETOI)                                                  
 245 :       CALL EPSDP(SI,SIETOI,ADP,EPC1)                                            
 245 :       CALL SCAL(EPC,EPC1,VAL)                                                   
 245 :       CALL NORME(EPC,VA1)                                                       
 245 :       CALL NORME(EPC1,VA2)                                                      
 246 :       CO2=VAL/VA1/VA2                                                           
 247 :       XIN1=X1+X2*DL31                                                           
 248 :       XIN2=X1+X2*DL32                                                           
 249 :       DLIN1=DL11+DL31*DL12                                                      
 250 :       DLIN2=DL11+DL32*DL12                                                      
 251 :       IF(XIN1.GT.-1.E-10.AND.DLIN1.GT.-1.E-10.AND.XIN1.LE.X                     
 252 :      1 .AND.CO1.GT.0.9) THEN                                                    
 253 :       DL3=DL31                                                                  
 254 :       X=XIN1                                                                    
 255 :       DL1=DLIN1                                                                 
 256 :       GOTO 300                                                                  
 257 :       ENDIF                                                                     
 258 :       IF(XIN2.GT.-1.E-10.AND.DLIN2.GT.-1.E-10.AND.XIN2.LE.X                     
 259 :      1 .AND.CO2.GT.0.9) THEN                                                    
 260 :       DL3=DL32                                                                  
 261 :       X=XIN2                                                                    
 262 :       DL1=DLIN2                                                                 
 263 :       GOTO 300                                                                  
 264 :       ENDIF                                                                     
 265 :       IF(IIMPI.EQ.9) WRITE(IOIMP,20202)                                         
 266 : 20202 FORMAT(1X,'T1T2DP  ERREUR TRAC 2')                                        
 267 :       DL3=DL31                                                                  
 268 :       X=XIN1                                                                    
 269 :       DL1=DLIN1                                                                 
 270 :   300 DO 310 ITYP=1,3                                                           
 271 :       SGG(ITYP)=SFG(ITYP)-DL1*SG1(ITYP)-DL2*SG2(ITYP)                           
 272 :   310 SGG(ITYP)=SGG(ITYP)-DL3*SSI(ITYP)+X*DSFG(ITYP)                            
 273 :       RDP=RDP-DL3*HDP                                                           
 274 :       RMAX=MAX((RDP/1.73),(RDP/(1.D0-2.D0*ADP)))                                
 275 :       IF(RMAX.LT.SIREF) THEN                                                    
 276 :       RDP=0.D0                                                                  
 277 :       GOTO 52                                                                   
 278 :       ENDIF                                                                     
 279 :       XT=XT+X                                                                   
 280 :       DO 330 ITYP=1,3                                                           
 281 :       EPDP(ITYP)=EPDP(ITYP)+DL3*EPC(ITYP)                                       
 282 :   330 SFG(ITYP)=SGG(ITYP)                                                       
 283 :       XLAM1=XLAM1+DL1                                                           
 284 :       XLAM2=XLAM2+DL2                                                           
 285 :       XLAM3=XLAM3+DL3                                                           
 286 :       RT1=RT1-H1*DL1                                                            
 287 :       IF(RT1.LT.1.E-10) THEN                                                    
 288 :       H1=0.D0                                                                   
 289 :       RT1=0.D0                                                                  
 290 :       ENDIF                                                                     
 291 :       RT2=RT2-H2*DL2                                                            
 292 :       IF(RT2.LT.1.E-10) THEN                                                    
 293 :       H2=0.D0                                                                   
 294 :       RT2=0.D0                                                                  
 295 :       ENDIF                                                                     
 296 :       C=1.D0-1.D-10                                                             
 297 :       IF(XT.GE.C) THEN                                                          
 298 :       DO 350 ITYP=1,3                                                           
 299 :       IDAM(ITYP)=0                                                              
 300 :   350 DSIG(ITYP)=0.D0                                                           
 300 :       CALL CHREP(SFG,SIG,-ANG)                                                  
 300 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 301 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
 302 :       RETURN                                                                    
 303 :       ENDIF                                                                     
 304 :       GOTO 51                                                                   
 305 :  2000 CONTINUE                                                                  
 305 :       CALL CHREP(SFG,SIG,-ANG)                                                  
 306 :       DO 2010 ITYP=1,3                                                          
 307 :  2010 DSFG(ITYP)=(1.D0-XT)*DSFG(ITYP)                                           
 307 :       CALL CHREP(DSFG,DSIG,-ANG)                                                
 307 :       CALL CHREP(EPDP,EPPLDP,-ANG)                                              
 308 :       IF(IIMPI.EQ.9) WRITE(IOIMP,9998) ITER                                     
 309 :       RETURN                                                                    
 310 :       END                                                                       
 311 :  

© Cast3M 2003 - All rights reserved.
Disclaimer