Download pot_scal.procedur

Back to the list

   1 : * POT_SCAL  PROCEDUR  BAZE      97/02/05    21:18:17     2484           
   2 :  'DEBPROC' POT_SCAL TABGEO*'TABLE'  SOLIN/MOT ;                                 
   3 : ********************************************************************    
   4 : *    procedure  de mise en place des elements d un calcul 3d            
   5 : *       magnetostatique  potentiel scalaire reduit et total             
   6 : *            DPHI  zone de potentiel reduit                             
   7 : *            DPSI  zone de potentiel total 
   8 : *                                            
   9 : *      materiaux  isotropes ou isotropes transverses                            
  10 : *   ------------------------------------------------------              
  11 : *  ENTREES :                                                             
  12 : *       
  13 : * TABGEO.'MU0'   =   permeabilité du  vide  
  14 : *                                                                       
  15 : *******description du domaine dphi ( ZONE POTENTIEL REDUIT )  *******  
  16 : *                                                                       
  17 : * TABGEO.'DPHI' =  maillage    DPHI                                     
  18 : * TABGEO.'SEPPHI'= surface de separation avec DPSI (appartient a DPHI   
  19 : *     exclusivement 
  20 : *     optionnel : 
  21 : *
  22 : *           MOD1 = DPHI 'MODE' 'THERMIQUE' 'ISOTROPE' ;
  23 : *           RRR1 = 'CONDUC' MOD1  'K'  MU0 ;
  24 : *                             
  25 : *   TABGEO.'RIGCON' = RRR1  (RIGIDITE) 
  26 : *   ceci peut permetre de passer des rigidités condensées par super 
  27 : *   si besoin                                                   
  28 : *   ------------------------------------------------------              
  29 : * TABGEO.'POTSYM'= TAB0 table contenant des tables  de conditions sur   
  30 : *     SEPPHI  et son entourage eventuel   pour calcul et application    
  31 : *          du saut de potentiel                                         
  32 : *      TAB0=TABLE                                                       
  33 : *         TAB0.I  = TABLE STN ;STN.'LGEO'   = MAIL  (type ligne )          
  34 : *                              STN.'MTYP'  = TYPE (TBLOQ OU RENSE)       
  35 : *         eventuellement       STN.'SGEO'  = MAILLAGE (surfacique)      
  36 : *   ( geo est une portion de son contour  )                             
  37 : *                                                                               
  38 : *                                                                       
  39 : *******description du domaine dpsi  ( ZONE DE POTENTIEL TOTAL  ) ******
  40 : *
  41 : *     TABB.'DPSI' = maillage de DPSI 
  42 : *   
  43 : *     MATERIAUX FERRO_MAGNETIQUES : 
  44 : *                                                                    
  45 : *  Il peut y avoir plusieurs zones de perméabilités différentes isotropes
  46 : *    ou isotropes transverses 
  47 : * Elles doivent etre obligatoirement  dans un table  indexee par les        
  48 : *    objet modeles      MODI= MODE GEO THERMIQUE ISOTROPE (ORTHOTROPE)          
  49 : *             |  TABMAT.MODI = STN ;
  50 : *                  si materiau isotrope                                     
  51 : *             |  STN.'EV1'  =  MU1(H)  courbes MU1(H)   type evolution
  52 : *             |       peut etre obtenue par H_B a partir de B(H)      
  53 : *  Imat fois       si materiau orthotrope                               
  54 : *             |  STN.'EV2'  =  MU2(H)  sortie  voir H_B 
  55 : *             |  STN.'DIR1' = P1  direction associée  type point 
  56 : *             |  STN.'DIR2' = P2  direction associée  type point
  57 : *             | doit etre perpendiculaire à DIR1 
  58 : *                                                                       
  59 : * TABGEO.'TABNUSEC' = TABMAT   stockage de l'ensemble  de materiaux
  60 : *                              ferro-magnetiques 
  61 : *
  62 : *    AIR APPARTENANT À CE DOMAINE :
  63 : * 
  64 : *   TABGEO.'AIRPSI' = DAIR   zone geometrique correspondante 
  65 : *                      ( elle appartient a DPSI )
  66 : *     OU  
  67 : *
  68 : *           MOD2 = DAIR 'MODE' 'THERMIQUE' 'ISOTROPE' ;
  69 : *           RRRR = 'CONDUC' MOD2  'K'  MU0 ;
  70 : *                             
  71 : *   TABGEO.'RIGCSPSI' = RRRR  (RIGIDITE) 
  72 : *
  73 : *     NOTA =  RRRR  peut etre traité en SUPER ELEMENT ou etre 
  74 : * l'assemblage  de raideurs standard et se raideurs  condensées.    
  75 : *                                                                          
  76 : *                                                                       
  77 : * TABGEO.'SEPPSI'= surface de séparation appartient  a DPSI             
  78 : * TABGEO.'ORIG'  = point ou on impose PHI = PSI  sur SEPPHI                     
  79 : * TABGEO.'BLOQUE' = condition limite generale (sauf super elements)     
  80 : * TABGEO.'BIOT' = table contenant le champ de la bobine sur DPHI
  81 : *               ( contruit avec l opérateur BIOT par exemple)                   
  82 : *                                                                       
  83 : *   ------------------------------------------------------              
  84 : *   SOLIN    si present  on calcule un  la solution lineaire            
  85 : *            si absent le premier pas sera fait dans MAG_NLIN           
  86 : * TABGEO.'ISTEP'   2 on calcule FLHS dans un run separe                 
  87 : *                  1 on calcule tout a la fois                          
  88 : ************************************************************************        
  89 : ************************************************************************
  90 :  MU0  = TABGEO.'MUAIR' ;                                                  
  91 :                                                                         
  92 :  SEP_PHI= TABGEO.'SEPPHI';                                              
  93 :  B_ANTI = TABGEO.'POTSYM';                                              
  94 :  DPSI = TABGEO.'DPSI';                                              
  95 :  DPHI = TABGEO.'DPHI' ;
  96 :    'SI' ('NON' ('EXISTE' TABGEO 'ORIG' ))  ;                                    
  97 :  ORIG = (TABGEO.'SEPPHI ') POINT 1 ;
  98 : MESS ' LE POINT REFERENCE  (SAUT NUL) EST CHOISI ARBITRAIREMENT ';
  99 :    'SINON' ;
 100 :  ORIG = TABGEO.'ORIG' ;
 101 :    'OPTION' 'ERRE' 'CONTROLE' ; 
 102 :  BBB = ( SEP_PHI 'CHAN' POI1 ) 'ELEM' 'CONT' ORIG ; 
 103 :      'SI' ('EGA' ( 'TYPE' BBB) 'ANNULE  ') ;
 104 :    MESS '  ERREUR  LE   POINT OU POTENTIELS REDUIT ET TOTAL '  ;
 105 :    MESS '  SONT IDENTIQUES DOIT APPARTENIR A LA SURFACE   ' ;
 106 :    MESS '     DE  SEPARATION COTE POENTIEL REDUIT      '    ; 
 107 :      'FIN' ;
 108 :      'SINON' ;
 109 :      'OPTION' 'ERREUR' 'NORMAL' ;
 110 :      'FINSI' ;   
 111 :    'FINSI' ;
 112 :                                                   
 113 :  ISTEP = TABGEO.'ISTEP' ;                                               
 114 :        SI ( NON ('EXISTE' TABGEO 'LLLL' ) )  ;                          
 115 :  HS = TABGEO.'BIOT';                                                    
 116 :                                              
 117 :  'MESS' ' CALCUL DU FLUX DE HS   SUR LES ELEMENTS FRONTIERE ';                  
 118 : MMOD = DPHI MODE THERMIQUE ISOTROPE ;                                   
 119 : *                                                                       
 120 :  FLHS = (FLUX  MMOD  HS  (MOTS BX BY BZ )) * -1. * MU0 ;                
 121 : *                                                                               
 122 :  MESS ' RESULTANTE DU FLUX * MUO ' ( FLHS 'RESU' 'MAXI' ) ;                  
 123 :  'SAUTER' 5 'LIGNES'  ;                                                         
 124 :  'MESS' '   COORD  POINT  ORIGINE INTEGRATION DE V ';                   
 125 :  'MESS' ( coor 1 orig ) ( coor 2 orig ) ( coor 3 orig ) ;                       
 126 :  'SAUTER' 5 'LIGNES'  ;                                                 
 127 : *   integration sur la surface de separation de l equation  de          
 128 : *      de continuite tangentielle                                       
 129 :      'SI' ( 'EXISTE'  TABGEO  'MAILSEG' ) ;                             
 130 :  MAILSEG= TABGEO.'MAILSEG';                                             
 131 :      'SINON' ;                                                          
 132 : *    decomposition de la surface de separation en element d aretes      
 133 :  'MESS' ' CALCUL DES  ELEMENTS ARETES  DE LA SEPARATION ';                      
 134 :  MAILSEG = 'CHAN' 'LIGNES' SEP_PHI ;
 135 :  UU = MAILSEG ELEM 1 ; tyu = uu nbno   ;
 136 :  'SI' ( 'EGA' tyu 3) ;
 137 :  mailseg = chan mailseg seg2 ;
 138 :  'FINSI' ;                                   
 139 :  TABGEO.'MAILSEG'= MAILSEG  ; 
 140 :                                            
 141 :      'FINSI' ;                                                          
 142 : * TEMPS PLACE ;                                                         
 143 :  'MESS' '  CALCUL DU SAUT DE POTENTIEL  ';                              
 144 :  'SAUTER' 4 'LIGNES' ;                                                  
 145 :  IMENA= 3 ;                                                             
 146 :    'MESS'  ' CALCUL  DU SAUT DE POTENTIEL  ';                                 
 147 :    LLLL= IN_MINI MAILSEG  HS ORIG B_ANTI;                               
 148 : *****************!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1                    
 149 :   TABGEO.'LLLL'=LLLL ;                                                  
 150 :   TABGEO.'FLHS'= FLHS ;                                                 
 151 :  'MESS' ' FIN DE CALCUL DU SAUT DE POTENTIEL ';                         
 152 :            FINSI ;                                                      
 153 : 
 154 :                                                                         
 155 :   SI ( EGA  ISTEP  1 ) ;                                                
 156 :     'SI' ( 'EXISTE' TABGEO 'DPHI' ) ;                                   
 157 :  'MESS' '***********************************************************';  
 158 :  'MESS' '***********   POTENTIEL REDUIT ---- POTENTIEL TOTAL *******';  
 159 :  'MESS' '***********************************************************'; 
 160 :  
 161 :   'SI' ('NON' ('EXISTE'  TABGEO 'RIGCON')) ;
 162 :  'MESS' 'CONSTRUCTION DE LA MATRICE  CONSTANTE DE DPHI' ; 
 163 :  MOD1 = DPHI 'MODE' 'THERMIQUE' 'ISOTROPE' ;
 164 :  MAT1 = 'MATE' MOD1  'K' MU0 ;
 165 :  RIGCON = 'CONDUC' MOD1 MAT1 ; 
 166 :  'SINON' ;
 167 :   RIGCON = TABGEO.'RIGCON' ;
 168 :  'FINSI' ;
 169 :   'SI' ('NON' ('EXISTE'  TABGEO 'RIGCPSI')) ;
 170 :       'SI'('EXISTE' TABGEO 'AIRPSI') ;
 171 :  'MESS' 'CONSTRUCTION DE LA MATRICE  CONSTANTE DE DPSI ' ;                      
 172 :  DAIR = TABGEO.'AIRPSI' ;                            
 173 :  MOD2 = DAIR 'MODE' 'THERMIQUE' 'ISOTROPE' ;
 174 :  MAT2 = 'MATE' MOD2  'K' MU0 ;
 175 :  RIGC2 = 'CONDUC' MOD2 MAT2 ;
 176 :       'SINON' ;
 177 :  'MESS' 'VOUS N AVEZ PAS DONNE LE DOMAINE LINEAIRE DE POT. TOTAL  ' ;    
 178 :       'FINSI' ;  
 179 :  'SINON' ;
 180 :  RIGC2  = TABGEO.'RIGCPSI' ;
 181 :  'FINSI' ;
 182 :  
 183 :  'SI' ('EXISTE' RIGC2 ) ;
 184 :  'MESS' '       ASSEMBLAGE DES MATRICES CONSTANTES ' ;
 185 :  RIGCON = RIGCON ET RIGC2  ;
 186 :  'FINSI' ;
 187 :  
 188 :                                                                         
 189 :  LLLL = TABGEO.'LLLL' ;                                                 
 190 :  FLHS = TABGEO.'FLHS' ;                                                 
 191 :                                                                         
 192 : *                                                                       
 193 :  SEP_PHI = 'CHAN' 'POI1' SEP_PHI ;                                      
 194 :  III = 'INDEX' B_ANTI;IDI = 'DIME' III ;                                
 195 :  IZ = 0 ;                                                               
 196 :      'REPETER' IBOU IDI ;                                               
 197 :  IZ = IZ + 1 ;                                                          
 198 :   STN = B_ANTI.IZ;GGG = 'CHAN' ( STN.'LGEO' ) 'POI1';MMM=STN.'MTYP' ;    
 199 : *                                                                       
 200 :             'SI' ( 'EGA' MMM 'RENSE') ;                                 
 201 :      VAL = 'EXTR' LLLL 'SCAL' ( GGG 'POINT' 1 ) ;                       
 202 :        'SI' ( EXISTE STN 'SGEO' ) ;                                     
 203 :         GIMP = STN.'SGEO' ;                                             
 204 :         BIMP = 'BLOQUER' 'T' GIMP ;FDPI = 'DEPIMP' BIMP VAL ;           
 205 :         RIGCON = RIGCON  'ET' BIMP ;                                    
 206 :         FLHS = FLHS  'ET' FDPI ;                                        
 207 :             'SI' ( 'EGA' IZ 1 ) ;                                       
 208 :       ipasred = 1 ;                                                     
 209 :             GGZ = GGG ;                                                 
 210 :             'SINON' ;                                                   
 211 :             GGZ = GGZ 'ET' GGG ;                                        
 212 :             'FINSI' ;                                                   
 213 :         'FINSI' ;                                                       
 214 :             'FINSI' ;                                                   
 215 :       'FIN' IBOU ; 
 216 : *                                                     
 217 :   'SI' ( EGA IPASRED 1 ) ;                                              
 218 :    'MESS'  ' nb pts bloques par le saut' ( ggz   'NBNO') ;              
 219 :   SEP_RED= DIFF SEP_PHI GGZ ;                                     
 220 :   LLLL= ('REDU' LLLL SEP_RED ) 'NOMC' 'T';
 221 :       'SINON' ;
 222 :       SEP_RED = SEP_PHI ;                                           
 223 :       'FINSI' ;
 224 :   SEP_PSI = SEP_RED 'PLUS' (0. 0. 0. ) ;
 225 :   ELIM .0001 DPSI  SEP_PSI ;
 226 :      
 227 : *  RELT FDEPI= SAUT_POT SEP_RED SEP_PSI   LLLL  ;
 228 :                                                            
 229 :  NNN= SEP_RED 'NBNO';
 230 :  MESS ' CONSTRUCTION DU SAUT DE POTENTIEL ' NNN 'POINTS';                       
 231 :  IK= 0 ;ILO= 0 ;                                                        
 232 :  'REPETER' BLOC3 NNN;                                                   
 233 :  IK= IK + 1 ;                                                      
 234 :  IP=SEP_RED 'POINT' IK ;IQ= SEP_PSI 'POINT' 'PROCHE' IP ;                       
 235 :  RELP= 'RELA'  1. 'T'  IP - 1. 'T'  IQ ;                                    
 236 :  DEPIP= 'DEPIMP' RELP ('EXTR' LLLL 'SCAL' IP);                          
 237 :    'SI' ('EGA' ILO 0 ) ;                                                
 238 :    RELT=RELP;  FDEPI= DEPIP ;                                           
 239 :    ILO= 1 ;                                                             
 240 :    'SINON' ;                                                            
 241 :    REL2= RELT 'ET' RELP ;                                               
 242 :    FDEPI2= FDEPI 'ET' DEPIP ;                                           
 243 :    'DETR' RELT ; RELT= REL2 ; 'DETR' FDEPI ; FDEPI= FDEPI2 ;            
 244 :    'DETR' RELP ;'DETR' DEPIP ;                                          
 245 :    'FINSI';                                                                     
 246 :  'FIN' BLOC3 ;             
 247 :  
 248 : *  RELT = 'RELA' 1. 'T' SEP_RED - 1. 'T' SEP_PSI ; 
 249 : *  FDEPI = 'DEPIMP' RELT  LLLL ;
 250 :                      
 251 :  'MESS' ' FIN D APPLICATION DU SAUT DE POTENTIEL ';
 252 :                       
 253 :                                                    
 254 :   RIGCON = RIGCON 'ET' RELT ;RHS = FLHS 'ET' FDEPI ;                    
 255 : *****************                                                       
 256 : * LIST FSAUT ;                                                          
 257 :   'SAUTER' 5 'LIGNES' ;                                                 
 258 : *  TEMPS PLACE ;                                                        
 259 :       'SINON' ;                                                         
 260 :  'SAUTER' 5 'LIGNES' ;                                                  
 261 :  'MESS' '***********************************************************';  
 262 :  'MESS' '***********   DPHI N EXISTE PAS  ????????           *******';  
 263 :  'MESS' '***********************************************************';  
 264 :  'SAUTER' 5 'LIGNES' ;                                                  
 265 :       'FINSI' ;                                                         
 266 : ***********                                                             
 267 : *---   Creation Table des MUR Permeabilites Relatives INITIALES         
 268 : *                                                                       
 269 :  'SI' ( 'EXISTE' TABGEO 'TABNUSEC' ) ;                                  
 270 :     TA_NUSEC = TABGEO.'TABNUSEC' ;                                      
 271 :     'SINON' ;                                                           
 272 :     'MESS' '*  PRECISER la TABLE des NUsecants = MU(H)  *';             
 273 :  'FINSI' ;                                                              
 274 :  INDE_TAB = 'INDE' TA_NUSEC ;                                           
 275 :  NMURI = 'DIME' TA_NUSEC ;                                              
 276 :  IMURI = 0 ;                                                            
 277 :  'REPETER' BOUMURI NMURI ;                                              
 278 :     IMURI = IMURI + 1 ;                                                 
 279 :  MESS ' materiau 1 ' ;                                                  
 280 :     MOD_FERi = INDE_TAB.IMURI ;  STI  = TA_NUSEC.MOD_FERi ;             
 281 :  list STI ;                                                             
 282 :    ORTT = FAUX ;                                                        
 283 :          'SI' ('EXISTE' STI 'EV2' ) ;                                   
 284 :  MESS ' orthotrope ' ;                                                  
 285 :     ORTT = VRAI ;                                                       
 286 :     EV2  = STI.'EV2'   ;    DIR2 = STI.'DIR2' ;                         
 287 :     EV1  = STI.'EV1'   ;    DIR1 = STI.'DIR1' ;                         
 288 :    MU1  = EXTR (EXTR EV1  ORDO ) 1  ;                                   
 289 :    MU2 = EXTR ( EXTR EV2  ORDO ) 1 ;                                    
 290 :    MAT_FERi= 'MATR' MOD_FERi  DIRECTION DIR1 DIR2 PARALLELE             
 291 :      'K1'  MU1  'K2'  MU2   'K3'  MU2   ;                               
 292 :          'SINON' ;                                                      
 293 :  MESS ' isotrope   ' ;                                                  
 294 :    EV1 = STI.'EV1'   ;                                                  
 295 :    MU1  = EXTR (EXTR EV1  ORDO ) 1  ;                                   
 296 :    MAT_FERi = 'MATR' MOD_FERi 'K'  MU1      ;                           
 297 :          'FINSI'      ;                                                 
 298 : *                                                                       
 299 :    STI.KLAST = MAT_FERi ;                                               
 300 :         'SI' ( 'EGA' IMURI 1 ) ;                                        
 301 :          MATFER= MAT_FERi ;                                             
 302 :          OBJ_MFER =    MOD_FERi ;                                       
 303 :         'SINON' ;                                                       
 304 :          MATFER= MATFER ET  MAT_FERi ;                                  
 305 :          OBJ_MFER =   OBJ_MFER ET MOD_FERi ;                            
 306 :         'FINSI' ;                                                       
 307 :                                                                         
 308 :  'FIN' BOUMURI ;                                                        
 309 : *****************************                                           
 310 : *  IL FAUT EXTRAIRE LE FER ;                                            
 311 :  FER = 'EXTRA'  OBJ_MFER  'MAIL';                                               
 312 :  TABGEO.KLAST =  MATFER  ;                                              
 313 :   RIGFER='CONDUC' OBJ_MFER  MATFER  ;                                           
 314 : *                                                                       
 315 : *                                                                       
 316 :       'SI'( 'EXISTE' TABGEO 'IMPOSE') ;                                 
 317 :   'MESS' ' CONDITION GENERALE IMPOSEE ' ;                               
 318 :           CHIMG = (TABGEO.'IMPOSE' ) 'NOMC' 'T';                        
 319 :           MAIG = 'EXTR'  CHIMG  'MAILLAGE' ;                            
 320 :           RIMG = 'BLOQUER'  MAIG 'T'; FPOTG= 'DEPIMP' RIMG CHIMG ;      
 321 :           RIGCON = RIGCON 'ET' RIMG ;RHS = RHS 'ET' FPOTG ;             
 322 :       'FINSI' ;                                                         
 323 : *                                                                       
 324 :       'SI' ('EXISTE' TABGEO 'BLOQUE') ;                                 
 325 :   'MESS' ' CONDITION GENERALE BLOQUEE ' ;                               
 326 :            RIGCON= RIGCON  'ET' TABGEO.'BLOQUE'  ;                      
 327 :       TABGEO.'BLOCAGE' = TABGEO.'BLOQUE'  ;                             
 328 :       'FINSI' ;                                                         
 329 :       'SI' ( 'EXISTE' TABGEO 'ENS' ) ;                                  
 330 :  'MESS'  ' RELATIONS D ENSEMBLE ' ;                                     
 331 :    STN = TABGEO.'ENS' ;                                                 
 332 :    III = 'INDEX' STN ;INI ='DIME' III ;                                 
 333 :       IZ = 0 ;                                                          
 334 :       'REPETER' BENS INI ;                                              
 335 :       IZ= IZ + 1 ;      RRRI = STN.IZ ;                                 
 336 :       RIGCON = RIGCON 'ET' ('RELA' 'ENSE'  'T'  RRRI )  ;               
 337 :       'FIN' BENS  ;                                                     
 338 :        'FINSI' ;                                                        
 339 : *                                                                       
 340 : * RIGCON = RIGCON 'ET' RIGCPSI  ;                                        
 341 :  RIGT = RIGCON 'ET' RIGFER ;                                            
 342 :  TABGEO.'RHS'= RHS ;                                                    
 343 :  TABGEO.'RIGCON'= RIGCON ;                                              
 344 :  TABGEO.'RIGFER'= RIGFER ;                                              
 345 :  'SI' ( 'EXISTE'  SOLIN ) ;                                             
 346 :  'MESS' '********************************************************* ';   
 347 :  'MESS' '***************** CALCUL   LINEAIRE  ******************** ';   
 348 :  'MESS' '****************RESOLUTION  ***************************** ';   
 349 :  'MESS' 'DEBUT' ( TEMPS 'NOEC' ) ;                                      
 350 :     'SI' ( 'EXIST' TABGEO 'GRAD' ) ;                                    
 351 :  MESS ' GRADIENT CONJUGUE ' ;                                           
 352 :  SOL0= 'RESOU' 'GRAD' RIGT RHS ;                                        
 353 :     'SINON' ;                                                           
 354 :  SOL0= 'RESOU' RIGT RHS ;                                               
 355 :     'FINSI' ;                                                           
 356 :  'MESS' 'FIN  ' ( TEMPS 'NOEC' ) ;                                      
 357 :  TABGEO.'POTENTIEL'=('ENLEVER' SOL0  'LX') ;                            
 358 :  'FINSI' ;                                                              
 359 :    'SINON ';                                                            
 360 :  TABB.'ISTEP' = 1 ;                                                     
 361 :    FINSI ;                                                              
 362 :   'FINPROC'   ;                                                         
 363 :  

© Cast3M 2003 - All rights reserved.
Disclaimer