Download devfb5.eso

Back to the list

   1 : C DEVFB5    SOURCE    CHAT      05/01/12    22:45:35     5004           
   2 :       SUBROUTINE  DEVFB5(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,
   3 :      &        NLIAB,NPLB,IND,IND1,INDM1,NPA,NPAM1,IND2,PDT,PDTS2, 
   4 :      &        FEXPSM,NPC1,I,XABSCI,XORDON,NIP,IANNUL) 
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   7 : *--------------------------------------------------------------------*          
   8 : *                                                                    *          
   9 : *     Operateur DYNE : algorithme de Fu - de Vogelaere               *          
  10 : *     ________________________________________________               *          
  11 : *                                                                    *          
  12 : *     Calcul des forces de choc sur base B pour les liaisons de      *          
  13 : *     type POINT_POINT_DEPLACEMENT_PLASTIQUE.                        *      
  14 : *                                                                    *          
  15 : *     Parametres:                                                    *          
  16 : *                                                                    *          
  17 : * e   ITYP    type de la liaison.                                    *          
  18 : * es  FTOTB   Forces exterieures totalisees sur la base B.           *          
  19 : * e   XPTB    Tableau des deplacements des points                    *          
  20 : * e   IPALB   Renseigne sur la liaison.                              *          
  21 : * e   IPLIB   Tableau contenant les numeros "DYNE" de la liaison.    *          
  22 : * e   XPALB   Tableau contenant les parametres de la liaison.        *          
  23 : * es  XVALB   Tableau contenant les variables internes de liaisons.  *          
  24 : * e   NLIAB   Nombre de liaisons sur la base B.                      *          
  25 : * e   NPLB    Nombre total de points intervenant dans les liaisons.  *          
  26 : * e   IND     Indice du pas.                                         *          
  27 : * e   I       numero de la liaison.                                  *
  28 : * e   XABSCI  Tableau contenant les abscisses de la loi plastique    *
  29 : *             pour la liaison point-point-plastique                  *             
  30 : * e   XORDON  Tableau contenant les ordonnees de la loi plastique    *
  31 : *             pour la liaison point-point-plastique                  *
  32 : * e   NIP     Nombre de points dans l'evolution de la loi            *          
  33 : *                                                                    *          
  34 : *     Auteur, date de creation:                                      *          
  35 : *                                                                    *    
  36 : *     Nicolas WECXSTEEN 04/96 point-point- ... -plastique            *         
  37 : *                                                                    *          
  38 : *--------------------------------------------------------------------*          
  39 : *                                                                                                                      
  40 :       INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*)                                     
  41 :       REAL*8  XPALB(NLIAB,*),XPTB(NPLB,4,*),FTOTB(NPLB,*)                       
  42 :       REAL*8  XVALB(NLIAB,4,*),FEXPSM(NPLB,NPC1,2,*)
  43 :       REAL*8  XABSCI(NLIAB,*),XORDON(NLIAB,*) 
  44 : 
  45 : *                                                                               
  46 : * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE sans amortissement                           
  47 : *                                                                                       
  48 :       IF (ITYP.EQ.16) THEN                                                
  49 :          NPOA   = IPLIB(I,1)                                                    
  50 :          NPOB   = IPLIB(I,2)                                                    
  51 :          IDIM   = IPALB(I,3)                                                    
  52 :          IPERM  = IPALB(I,5)                                                    
  53 :          XJEU   = XPALB(I,1)
  54 :          XDPLAS = XPALB(I,2+IDIM)
  55 :          XELA   = XPALB(I,3+IDIM)                                                 
  56 :          XDPLAC = XPALB(I,4+IDIM)
  57 :          XDEP = 0.D0 
  58 :          XAMO = 0.d0
  59 :          XVIT = 0.d0                                                           
  60 :          DO 10 ID = 1,IDIM                                                      
  61 :             IDA = 3 + ID                                                      
  62 :             IDB = 3 + IDIM + ID                                                 
  63 :             XDEA = XPTB(NPOA,IND,ID)                                            
  64 :             XDEB = XPTB(NPOB,IND,ID)                                            
  65 :             XVALB(I,IND,IDA) = XDEA                                             
  66 :             XVALB(I,IND,IDB) = XDEB                                             
  67 :             XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID)                              
  68 :             XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
  69 : *
  70 : *  Dans le tableau XPALB(I,1+ID) se trouve les coord de la normale
  71 : *                              
  72 :             XDEP = XDEP + (XDEA - XDEB) * XPALB(I,1+ID)                        
  73 :  10         CONTINUE                                                            
  74 : *        end do
  75 : * On appel DYCHEC, SP qui calcul ,avec le deplacement xdep,
  76 : * la force xfla et le dep plastique xdplas sur l'evolution xabsci/xordon
  77 : * (loi de comportement)
  78 : * 
  78 :         call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
  79 :      &                  XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul) 
  80 : 
  81 : *
  82 :        XFLB = -1.D0 * XFLA                                                    
  83 :        XVALB(I,IND,1) = XFLA                                                  
  84 :        XVALB(I,IND,2) = XFLB
  85 :        XPALB(I,2+IDIM) = XDPLAS
  86 :        XPALB(I,3+IDIM) = XELA               
  87 :        XPALB(I,4+IDIM) = XDPLAC
  88 :        XVALB(I,IND,13) = XDPLAS
  89 :        XVALB(I,IND,14) = XELA
  90 :        XVALB(I,IND,15) = XDPLAC
  91 : *                                                  
  92 :          DO 12 ID = 1,IDIM                                                      
  93 :             FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,1+ID)              
  94 :             FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,1+ID)              
  95 :  12         CONTINUE                                                            
  96 : *        end do                                                                 
  97 : *                                                                               
  98 : * --- choc elementaire POINT_POINT_DEPLACEMENT_PLASTIQUE avec amortissement                           
  99 : *                                                                               
 100 :       ELSE IF (ITYP.EQ.17) THEN        
 101 :          NPOA   = IPLIB(I,1)                                                    
 102 :          NPOB   = IPLIB(I,2)                                                    
 103 :          IDIM   = IPALB(I,3)                                                    
 104 :          IPERM  = IPALB(I,5)  
 105 :          XJEU   = XPALB(I,1)                                                    
 106 :          XAMO   = XPALB(I,2)
 107 :          XDPLAS = XPALB(I,3+IDIM)
 108 :          XELA   = XPALB(I,4+IDIM)                                                   
 109 :          XDPLAC = XPALB(I,5+IDIM)
 110 :          XDEP = 0.D0                                                            
 111 :          XDEPM1 = 0.D0                                                          
 112 :          DO 20 ID = 1,IDIM                                                      
 113 :             IDA = 3 + ID                                                        
 114 :             IDB = 3 + IDIM + ID                                                 
 115 : *
 116 : *  Ici, l'indice IND2 sert a calculer les vitesses
 117 : *
 118 :             XDEA = XPTB(NPOA,IND,ID)                                            
 119 :             XDMA = XPTB(NPOA,IND2,ID)                                           
 120 :             XDEB = XPTB(NPOB,IND,ID)                                            
 121 :             XDMB = XPTB(NPOB,IND2,ID)                                           
 122 :             XVALB(I,IND,IDA) = XDEA                                             
 123 :             XVALB(I,IND,IDB) = XDEB                                             
 124 :             XDEA = XDEA + FEXPSM(NPOA,NPA,IND1,ID)                              
 125 :             XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)                              
 126 :             XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID)                           
 127 :             XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID)
 128 :             XDEB = XDEB + FEXPSM(NPOB,NPA,IND1,ID)
 129 : *
 130 : *  Dans le tableau XPALB(I,2+ID) on trouve les coord de la normale
 131 : *                            
 132 :             XDEP = XDEP + (XDEA - XDEB) * XPALB(I,2+ID)                         
 133 :             XDEPM1 = XDEPM1 + (XDMA - XDMB) * XPALB(I,2+ID)                     
 134 :  20         CONTINUE                                                            
 135 : *        end do                                                                 
 136 :          XVIT = (XDEP - XDEPM1) / PDTS2                                         
 137 :          XVALB(I,IND,3) = XVIT 
 138 : *
 139 : * Appel a DYCHEC pour calcul de la force et depla plastique
 140 : * 
 140 :         call DYCHEC(XDEP,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
 141 :      &                  XORDON,I,XFLA,NLIAB,NIP,XVIT,XAMO,iannul)                                                 
 142 : 
 143 :          XFLB = -1.D0 * XFLA                                                    
 144 :          XVALB(I,IND,1) = XFLA                                                  
 145 :          XVALB(I,IND,2) = XFLB
 146 :          XPALB(I,3+IDIM) = XDPLAS
 147 :          XPALB(I,4+IDIM) = XELA               
 148 :          XPALB(I,5+IDIM) = XDPLAC
 149 :          XVALB(I,IND,13) = XDPLAS
 150 :          XVALB(I,IND,14) = XELA
 151 :          XVALB(I,IND,15) = XDPLAC
 152 : *                                                               
 153 :          DO 22 ID = 1,IDIM                                                      
 154 :             FTOTB(NPOA,ID) = FTOTB(NPOA,ID) + XFLA * XPALB(I,2+ID)              
 155 :             FTOTB(NPOB,ID) = FTOTB(NPOB,ID) + XFLB * XPALB(I,2+ID)              
 156 :  22         CONTINUE
 157 : *
 158 : C   Rotule [
 159 : *                                                                               
 160 : * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE sans amortissement                           
 161 : *                                                                             
 162 :       ELSE IF (ITYP.EQ.50) THEN                                                      
 163 :          NPOA   = IPLIB(I,1)                                                    
 164 :          NPOB   = IPLIB(I,2)                                                    
 165 :          IDIM   = IPALB(I,3)                                                    
 166 :          IPERM  = IPALB(I,5)                                                    
 167 :          XJEU   = XPALB(I,1)
 168 :          XDPLAS = XPALB (I,2+IDIM)
 169 :          XELA   = XPALB (I,3+IDIM)                                                    
 170 :          XDPLAC = XPALB(I,4+IDIM)
 171 :          XROT = 0.D0 
 172 :          xamo = 0.d0
 173 :          xvit = 0.d0                                                       
 174 :          DO 30 ID = 1,IDIM                                                      
 175 :             IDA = 3 + ID                                                      
 176 :             IDB = 3 + IDIM + ID
 177 : *            
 178 : * On recupere les rotations des points A et B
 179 : * XROA = rotation point A
 180 : * XROB = rotation point B
 181 : *                    
 182 :             XROA = XPTB(NPOA,IND,ID+3)                                            
 183 :             XROB = XPTB(NPOB,IND,ID+3)                                       
 184 :             XVALB(I,IND,IDA) = XROA                                             
 185 :             XVALB(I,IND,IDB) = XROB                                             
 186 :             XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3)                              
 187 :            XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3)
 188 : *
 189 : *  Dans le tableau XPALB(I,1+ID) se trouve les coord de l'axe de rotation
 190 : *
 191 :             XROT = XROT + (XROA - XROB) * XPALB(I,1+ID)
 192 :  30         CONTINUE                                                            
 193 : *        end do
 194 : * On appel DYCHEC, SP qui calcul ,avec la rotation xrot,
 195 : * le moment xmla et la rota plastique xdplas sur l'evolution xabsci/xordon
 196 : * (loi de comportement)
 197 : * 
 197 :         call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
 198 :      &                  XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul) 
 199 :                                                         
 200 :          XMLB = -1.D0 * XMLA                                                    
 201 :          XVALB(I,IND,1) = XMLA                                                  
 202 :          XVALB(I,IND,2) = XMLB
 203 :          XPALB(I,2+IDIM) = XDPLAS
 204 :          XPALB(I,3+IDIM) = XELA 
 205 :          XPALB(I,4+IDIM) = XDPLAC
 206 :          XVALB(I,IND,13) = XDPLAS
 207 :          XVALB(I,IND,14) = XELA
 208 :          XVALB(I,IND,15) = XDPLAC
 209 : *                         
 210 :          DO 32 ID = 1,IDIM                                                      
 211 :             FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,1+ID)              
 212 :             FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,1+ID)              
 213 :  32         CONTINUE                                                            
 214 : *        end do                                                                 
 215 : *                                                                               
 216 : * --- choc elementaire POINT_POINT_ROTATION_PLASTIQUE avec amortissement                           
 217 : *                                                                               
 218 :       ELSE IF (ITYP.EQ.51) THEN                                                 
 219 :          NPOA   = IPLIB(I,1)                                                    
 220 :          NPOB   = IPLIB(I,2)                                                    
 221 :          IDIM   = IPALB(I,3)                                
 222 :          IPERM  = IPALB(I,5)                                                    
 223 :          XJEU   = XPALB(I,1)                                                   
 224 :          XAMO   = XPALB(I,2)
 225 :          XDPLAS = XPALB(I,3+IDIM)
 226 :          XELA   = XPALB(I,4+IDIM)                                                    
 227 :          XDPLAC = XPALB(I,5+IDIM)
 228 :          XROT   = 0.D0                                                            
 229 :          XDRPM1 = 0.D0                                                          
 230 :          DO 40 ID = 1,IDIM                                                      
 231 :             IDA = 3 + ID                                                        
 232 :             IDB = 3 + IDIM + ID 
 233 : *  Ici, l'indice IND2 sert a calculer les vitesses
 234 : *
 235 :             XROA = XPTB(NPOA,IND,ID+3)                                            
 236 :             XDMA = XPTB(NPOA,IND2,ID+3)                                           
 237 :             XROB = XPTB(NPOB,IND,ID+3)                                            
 238 :             XDMB = XPTB(NPOB,IND2,ID+3)                                           
 239 :             XVALB(I,IND,IDA) = XROA                                             
 240 :             XVALB(I,IND,IDB) = XROB 
 241 : ** Verifier indice pseudo-modes***                                                     
 242 :             XROA = XROA + FEXPSM(NPOA,NPA,IND1,ID+3)                              
 243 :             XROB = XROB + FEXPSM(NPOB,NPA,IND1,ID+3)                              
 244 :             XDMA = XDMA + FEXPSM(NPOA,NPAM1,INDM1,ID+3)                           
 245 :             XDMB = XDMB + FEXPSM(NPOB,NPAM1,INDM1,ID+3)
 246 : C
 247 : *  Dans le tableau XPALB(I,2+ID) on trouve les coord de l'axe de rotation
 248 : *                            
 249 :             XROT = XROT + (XROA - XROB) * XPALB(I,2+ID)                         
 250 :             XDRPM1 = XDRPM1 + (XDMA - XDMB) * XPALB(I,2+ID)                     
 251 :  40         CONTINUE                                                            
 252 : *        end do                                                                 
 253 :          XVIT = (XROT - XDRPM1) / PDTS2                                         
 254 :          XVALB(I,IND,3) = XVIT 
 255 : *
 256 : * Appel a DYCHEC pour calcul du moment et rotation plastique XDPLAS
 257 : * 
 257 :         call DYCHEC(XROT,XDPLAS,XDPLAC,XJEU,IPERM,XABSCI,
 258 :      &                  XORDON,I,XMLA,NLIAB,NIP,XVIT,XAMO,iannul)         
 259 :                                                                   
 260 :          XMLB = -1.D0 * XMLA                                                    
 261 :          XVALB(I,IND,1) = XMLA                                                  
 262 :          XVALB(I,IND,2) = XMLB
 263 :          XPALB(I,3+IDIM) = XDPLAS
 264 :          XPALB(I,4+IDIM) = XELA               
 265 :          XPALB(I,5+IDIM) = XDPLAC               
 266 :          XVALB(I,IND,13) = XDPLAS
 267 :          XVALB(I,IND,14) = XELA
 268 :          XVALB(I,IND,15) = XDPLAC
 269 : *                                                               
 270 :          DO 42 ID = 1,IDIM                                                   
 271 :             FTOTB(NPOA,ID+3) = FTOTB(NPOA,ID+3) + XMLA * XPALB(I,2+ID)              
 272 :             FTOTB(NPOB,ID+3) = FTOTB(NPOB,ID+3) + XMLB * XPALB(I,2+ID)              
 273 :  42         CONTINUE 
 274 : *
 275 : C   Rotule ]
 276 : C
 277 : *        end do
 278 : *                                                            
 279 : * --- choc ...........                                                          
 280 : *                                                                               
 281 : *     ELSE IF (ITYP.EQ.  ) THEN                                                 
 282 : *        .......                                                                
 283 : *        .......                                                                
 284 : *                                                                               
 285 :       ENDIF                                                                     
 286 : *                                                                    
 287 :       END 
 288 :        
 289 :  
 290 :  
 291 :  
 292 :  
 293 :  
 294 :  

© Cast3M 2003 - All rights reserved.
Disclaimer