Download fronabs.procedur

Back to the list

   1 : * FRONABS   PROCEDUR  WANG      96/09/17    21:16:10     2279           
   2 : 'DEBPROC'  FRONABS  TAB_VAL*'TABLE   '  TYP_FRON/'MOT     ' 
   3 :                     NHARM/'ENTIER  ';
   4 : ************************************************************************        
   5 : *                                                                               
   6 : *                           F R O N A B S                                       
   7 : *                           -------------                                       
   8 : *                                                                               
   9 : * FONCTION:                                                                     
  10 : * ---------                                                                     
  11 : *                                                                               
  12 : *     Calcule la matrice d'amortissement d'une frontière absorbante.            
  13 : *                                                                               
  14 : * PHRASE D'APPEL (EN GIBIANE):                                                  
  15 : * ----------------------------                                                  
  16 : *                                                                               
  17 : *     RIG1  =  FRONABS  TAB1  ( TYP_FRON ) NHARM ;                              
  18 : *                                                                               
  19 : * OPERANDES:                                                                    
  20 : * ----------                                                                    
  21 : *                                                                               
  22 : *     TAB1      'TABLE   '  indice 'FRONTIERE' : frontière.                     
  23 : *                           indice 'MASSE_VOLUMIQUE' : masse volumique.         
  24 : *                           indice 'POISSON' : coef de poisson.                 
  25 : *                           indice 'YOUNG' : module d'young.                    
  26 : *     TTYP_FRON 'MOT     '  type de la frontière utilisée                       
  27 : *                                    type WHITE                                
  28 : *                                    type LYSMER (par défaut)                   
  29 : *     NHARM     'ENTIER'    numéro du mode FOURIER ( en MODE FOUR )
  30 : *                                                                               
  31 : * RESULTATS:                                                                    
  32 : * ----------                                                                    
  33 : *                                                                               
  34 : *     RIG1      'RIGIDITE'  matrice d'amortissement.                            
  35 : *
  36 : *
  37 : *
  38 : * REMARQUE:
  39 : * ---------
  40 : *     On ne traite pas les modèles tridimensionnels ni les frontières
  41 : *     obliques.           
  42 : *
  43 : *
  44 : *                                                                               
  45 : * AUTEUR, DATE DE CREATION:                                                     
  46 : * -------------------------                                                     
  47 : *                                                                               
  48 : *     L. V.              13 février 1989                                        
  49 : *                                                                               
  50 : * MODIFICATION:                                                                 
  51 : * -------------                                                                 
  52 : *                                                                               
  53 : *     F. WANG            12 mai     1992                                        
  54 : *                                                                               
  55 : *   - Modification de la matrice d'amortissement de la frontière                
  56 : *     horizontale de l'option axisymetrique 'AXIS' ;                            
  57 : *                                                                               
  58 : *   - Creation de frontière absorbante pour le mode de calcul                   
  59 : *     déformation plane 'PLANDEFO' .                                            
  60 : *                                                                               
  61 : *                                                                               
  62 : ************************************************************************        
  63 : *                                                                               
  64 : SI      = 'MOT' 'SI' ;     SINON = 'MOT' 'SINON' ;
  65 : FINSI   = 'MOT' 'FINSI' ;               
  66 : REPETER = 'MOT' 'REPETER'; FIN   = 'MOT' 'FIN';                                 
  67 : EXISTE  = 'MOT' 'EXISTE' ;                                                      
  68 : *                                                                               
  69 : MAIL    =  TAB_VAL.'FRONTIERE' ;                                                
  70 : YO      =  TAB_VAL.'YOUNG' ;                                                    
  71 : RHO     =  TAB_VAL.'MASSE_VOLUMIQUE' ;                                          
  72 : NU      =  TAB_VAL.'POISSON' ;                                                  
  73 : DEUXPI  =  2.0 * PI ;                                                           
  74 : L_NU    = 'PROG'  0.     0.05   0.1    0.15   0.2    0.25   0.3  
  75 :                   0.35   0.4    0.45  ;          
  76 : L_COEFA = 'PROG'  0.959  0.967  0.975  0.982  0.986  0.986  0.986               
  77 :                   0.992  1.007  1.011  ;                                        
  78 : L_COEFB = 'PROG'  0.769  0.761  0.756  0.751  0.747  0.744  0.742               
  79 :                   0.740  0.746  0.773  ;                                        
  80 : *                                                                               
  81 : G  = YO / ( 2.0 * ( 1.0 + NU ) ) ;                                              
  82 : CS = ( G / RHO ) ** 0.5 ;                                                       
  83 : CP = ( ( 2.0 * (1.0 - NU) ) / ( 1.0 - ( 2.0 * NU ) ) ) ** 0.5 ;                 
  84 : CP = CP * CS ;                                                                  
  85 : *                                                                               
  86 : TYP_MODE = 'MOT' ('VALEUR' 'MODE') ;
  87 : SI ('EGA' TYP_MODE 'FOUR') ;
  88 :   LIST_MOT = 'MOTS' 'UR' 'UZ' 'UT' ;                                            
  89 :   ITYP = 1 ;                                                                    
  90 : SINON ; SI ('EGA' TYP_MODE 'AXIS') ;
  91 :   LIST_MOT = 'MOTS' 'UR' 'UZ' ;                                                 
  92 :   ITYP = 2 ;                                                                    
  93 : SINON ; SI ('EGA' TYP_MODE 'PLANDEFO') ;
  94 :   LIST_MOT = 'MOTS' 'UX' 'UY' ;                                                 
  95 :   ITYP = 3 ;                                                                    
  96 : SINON ;                                                                         
  97 :   MESSAGE '           *****  ERREUR  *****' ;                                   
  98 :   MESSAGE '   On ne traite pas les modèles tridimensionnels.'                 
  99 :   MESSAGE '   Arrêt de la procédure.' ;                                         
 100 :   QUITTER BOUCERR ;                                                             
 101 : FINSI ; FINSI ; FINSI ;                                                         
 102 : SI (EXISTE TYP_FRON) ;                                                          
 103 :   SI ('EGA' TYP_FRON 'WHITE') ;                                                 
 104 :     MESSAGE '   Type de frontière : WHITE' ;                                    
 105 :     SI (NU '<EG' 0.45) ;                                                        
 106 :       COEF_A = 'IPOL'  NU  L_NU  L_COEFA ;                                      
 107 :       COEF_B = 'IPOL'  NU  L_NU  L_COEFB ;                                      
 108 :     SINON ;                                                                     
 109 :       S2 = ( 1.0 - (2.0 * NU) ) / ( 2.0 * (1.0 - NU) ) ;                        
 110 :       S  = S2 ** 0.5 ;                                                          
 111 :       RAP = 8.0 / (15.0 * PI) ;                                                 
 112 :       COEF_A = RAP * ( 5.0 + (2.0 * S) - (2.0 * S2) ) ;                         
 113 :       COEF_B = RAP * ( 3.0 + (2.0 * S) ) ;                                      
 114 :     FINSI ;                                                                     
 115 :   SINON ;                                                                       
 116 :     MESSAGE '   Type de frontière : LYSMER' ;                                   
 117 :     COEF_A = 1. ;                                                               
 118 :     COEF_B = 1. ;                                                               
 119 :   FINSI ;                                                                       
 120 : SINON ;                                                                         
 121 :     MESSAGE '   Type de frontière : LYSMER' ;                                   
 122 :   COEF_A = 1. ;                                                                 
 123 :   COEF_B = 1. ;                                                                 
 124 : FINSI ;                                                                         
 125 : CP = COEF_A * CP ;                                                              
 126 : CS = COEF_B * CS ;                                                              
 127 : *                                                                               
 128 : *   Boucle sur les éléments                                                     
 129 : *                                                                               
 130 : NB_ELEM = 'NBEL' MAIL ;                                                         
 131 : I_EL = 0 ;                                                                      
 132 : REPETER BOUCELE NB_ELEM ;                                                       
 133 :   I_EL = I_EL + 1 ;                                                             
 134 :   ELEM_I = MAIL 'ELEMENT' I_EL ;                                                
 135 :   ELEM_B = 'CHANGER' ELEM_I 'POI1' ;                                            
 136 :   NOEU1 = ELEM_B 'POINT' 1 ;                                                    
 137 :   NOEU2 = ELEM_B 'POINT' 2 ;                                                    
 138 :   NOEU3 = ELEM_B 'POINT' 3 ;                                                    
 139 :   R1 = 'COOR' NOEU1 1 ;                                                         
 140 :   R3 = 'COOR' NOEU3 1 ;                                                         
 141 :   Z1 = 'COOR' NOEU1 2 ;                                                         
 142 :   Z3 = 'COOR' NOEU3 2 ;                                                         
 143 : *                                                                 
 144 : *   Paroi verticale   
 145 : *                                                                               
 146 :   SI ( ('ABS' (R3 - R1)) '<' 1.E-5 ) ;                                          
 147 :     LONG = 'ABS' (Z3 - Z1) ;                                                    
 148 :     AV =  RHO * R1 * LONG *  4.0 / 30. ;                                        
 149 :     BV =  RHO * R1 * LONG *  2.0 / 30. ;                                        
 150 :     CV =  RHO * R1 * LONG * 16.0 / 30. ;                                        
 151 :     DV =  RHO * R1 * LONG * -1.0 / 30. ;                                        
 152 :     EV =  RHO * R1 * LONG *  2.0 / 30. ;                                        
 153 :     FV =  RHO * R1 * LONG *  4.0 / 30. ;                                        
 154 :     SI ('EGA' ITYP 1) ;                                                         
 155 :     LIST_REE = 'PROG' (AV * CP) 0. (AV * CS) 0. 0. (AV * CS)                    
 156 :                       (BV * CP) 0. 0. (CV * CP) 0. (BV * CS) 0. 0.              
 157 :                       (CV * CS) 0. 0. (BV * CS) 0. 0. (CV * CS)                 
 158 :                       (DV * CP) 0. 0. (EV * CP) 0. 0. (FV * CP) 0.              
 159 :                       (DV * CS) 0. 0. (EV * CS) 0. 0. (FV * CS) 0. 0.           
 160 :                       (DV * CS) 0. 0. (EV * CS) 0. 0. (FV * CS) ;   
 161 : 
 162 :     SI ( NHARM EGA 0 ) ;
 163 :     C_HARM = 2.0 * PI ;
 164 :     FINSI ;
 165 :     SI ( NHARM EGA 1 ) ;
 166 :     C_HARM = PI ;
 167 :     FINSI ;
 168 : 
 169 :     LIST_REE =  LIST_REE * C_HARM ;
 170 :             
 171 :     SINON ; SI ('EGA' ITYP 2) ;                                                 
 172 :     LIST_REE = 'PROG' (AV * CP) 0. (AV * CS)                                    
 173 :                       (BV * CP) 0. (CV * CP) 0. (BV * CS) 0. (CV * CS)          
 174 :                       (DV * CP) 0. (EV * CP) 0. (FV * CP) 0.                    
 175 :                       (DV * CS) 0. (EV * CS) 0. (FV * CS) ;                     
 176 :     LIST_REE =  LIST_REE * 2.0 * PI ;
 177 :                                                                                 
 178 : ********************   Modification 12 mai 92   **********************          
 179 :                                                                                 
 180 :     SINON ; SI ('EGA' ITYP 3) ;                                                 
 181 :     LIST_REE =  ( 'PROG' (AV * CP) 0. (AV * CS)                                 
 182 :                       (BV * CP) 0. (CV * CP) 0. (BV * CS) 0. (CV * CS)          
 183 :                       (DV * CP) 0. (EV * CP) 0. (FV * CP) 0.                    
 184 :                       (DV * CS) 0. (EV * CS) 0. (FV * CS) ) / R1 ;              
 185 :     FINSI ;                                                                     
 186 : **********************************************************************          
 187 :     FINSI ; FINSI ;                                                             
 188 : *                                                                               
 189 : *   Paroi horizontale                                                           
 190 : *                                                                               
 191 :   SINON ; SI ( ('ABS' (Z3 - Z1)) '<' 1.E-5 ) ;                                  
 192 :     LONG = 'ABS' (R3 - R1) ;                                                    
 193 :     AH =  RHO * LONG * (( 7.0 * R1) +          R3) / 60.0 ;                     
 194 :     BH =  RHO * LONG * (  4.0 * R1               ) / 60.0 ;                     
 195 :     CH =  RHO * LONG * ((16.0 * R1) + (16.0 * R3)) / 60.0 ;                     
 196 :     DH =  RHO * LONG * ((-1.0 * R1) + (-1.0 * R3)) / 60.0 ;                     
 197 :     EH =  RHO * LONG * (                4.0 * R3 ) / 60.0 ;                     
 198 :     FH =  RHO * LONG * (        R1  + ( 7.0 * R3)) / 60.0 ;                     
 199 :                                                                                 
 200 :     SI ('EGA' ITYP 1) ;                                                         
 201 :     LIST_REE = 'PROG' (AH * CS) 0. (AH * CP) 0. 0. (AH * CS)                    
 202 :                       (BH * CS) 0. 0. (CH * CS) 0. (BH * CP) 0. 0.              
 203 :                       (CH * CP) 0. 0. (BH * CS) 0. 0. (CH * CS)                 
 204 :                       (DH * CS) 0. 0. (EH * CS) 0. 0. (FH * CS) 0.              
 205 :                       (DH * CP) 0. 0. (EH * CP) 0. 0. (FH * CP) 0. 0.           
 206 :                       (DH * CS) 0. 0. (EH * CS) 0. 0. (FH * CS) ; 
 207 : 
 208 :     SI ( NHARM EGA 0 ) ;
 209 :     C_HARM = 2.0 * PI ;
 210 :     FINSI ;
 211 :     SI ( NHARM EGA 1 ) ;
 212 :     C_HARM = PI ;
 213 :     FINSI ;
 214 : 
 215 :     LIST_REE =  LIST_REE * C_HARM ;
 216 :   
 217 : *******************   Modification  12 mai 92   **********************          
 218 :                                                                                 
 219 :     SINON ; SI ('EGA' ITYP 2) ;                                                 
 220 :     LIST_REE = 'PROG' (AH * CS) 0. (AH * CP)                                    
 221 :                       (BH * CS) 0. (CH * CS) 0. (BH * CP) 0. (CH * CP)          
 222 :                       (DH * CS) 0. (EH * CS) 0. (FH * CS) 0.                    
 223 :                       (DH * CP) 0. (EH * CP) 0. (FH * CP) ;                     
 224 :     LIST_REE =  LIST_REE * 2.0 * PI ;
 225 :                                                                                 
 226 :     SINON ; SI ('EGA' ITYP 3) ;                                                 
 227 :     AH =  RHO * LONG *  4.0 / 30. ;                                             
 228 :     BH =  RHO * LONG *  2.0 / 30. ;                                             
 229 :     CH =  RHO * LONG * 16.0 / 30. ;                                             
 230 :     DH =  RHO * LONG * -1.0 / 30. ;                                             
 231 :     EH =  RHO * LONG *  2.0 / 30. ;                                             
 232 :     FH =  RHO * LONG *  4.0 / 30. ;                                             
 233 :                                                                                 
 234 :     LIST_REE = 'PROG' (AH * CS) 0. (AH * CP)                                    
 235 :                       (BH * CS) 0. (CH * CS) 0. (BH * CP) 0. (CH * CP)          
 236 :                       (DH * CS) 0. (EH * CS) 0. (FH * CS) 0.                    
 237 :                       (DH * CP) 0. (EH * CP) 0. (FH * CP) ;                     
 238 :     FINSI ;                                                                     
 239 : ***********************************************************************         
 240 :                                                                                 
 241 :     FINSI ;  FINSI ;                                                            
 242 :   SINON ;                                                                       
 243 :     MESSAGE '           *****  ERREUR  *****' ;                                 
 244 :     MESSAGE '   On ne traite pas des frontières obliques.' ;                    
 245 :     MESSAGE '   Arrêt de la procèdure.' ;                                       
 246 :     QUITTER BOUCELE ;                                                           
 247 :   FINSI ; FINSI ; 
 248 :                                                               
 249 :   SI ('EGA' I_EL 1) ;                                                           
 250 :      RIGT = 'MANUEL'  'RIGIDITE'  'TYPE' 'AMORTISSEMENT'  ELEM_I                
 251 :             LIST_MOT  LIST_REE  ;                                               
 252 :   SINON ;                                                                       
 253 :      RIGT = RIGT 'ET' ('MANUEL'  'RIGIDITE'  'TYPE' 'AMORTISSEMENT'             
 254 :             ELEM_I  LIST_MOT  LIST_REE) ;                                       
 255 :   FINSI ;                                                                       
 256 : FIN BOUCELE ;                                                                   
 257 :       
 258 : 'FINPROC' RIGT ;                                                                
 259 :                                                                                 
 260 : ***********************************************************************
 261 :  

© Cast3M 2003 - All rights reserved.
Disclaimer