Download charther.procedur

Back to the list

   1 : * CHARTHER  PROCEDUR  PASCAL    13/07/24    21:15:02     7799           
   2 : 'DEBP' CHARTHER PRECED*'TABLE'  tt*'FLOTTANT' IAPPEL*ENTIER; 
   3 : *mess ' entree dans charther tt vaut ' tt ' *****' ; 
   4 : * IAPPEL vaut   - 1 si l'appel vient de DUPONT2
   5 : *               - 2 si premier appel de TRANSNON
   6 : *               - 3 si deuxième appel de TRANSNON 
   7 : *
   8 : 
   9 : TAA=TABLE; ETAB=PRECED.'WTABLE';
  10 : 
  11 : 'SI' ETAB.'RAYO'; 
  12 : * pour le rayonnement le calcul des facteurs de forme et des matrices et du
  13 : * chpoint est à faire si appel par DUPONT2 
  14 : * Seul le calul des facteurs de formes en cas du premier appel par TRANSNON
  15 : * Seuls les matrices et CHPOINT pour deuxieme appel par TRANSNON
  16 : *
  17 : * travail pas beau sur le rayonnement pour ne pas tout refaire tout de
  18 : *   suite!!!!! pour cela on recree la table rayo_val
  19 : *
  20 : 
  21 :    mor= etab.'MOD_RAY';
  22 :    mar= etab.'MAT_RAY';
  23 :    tabray= 'EXTR' mor 'ZONE';
  24 :    NDIM3    = ('DIME' tabray) / 2 ;
  25 :    rayo_val=table;
  26 :    repe iuy ndim3;
  27 :      ia= 2*&iuy - 1;
  28 :      tabr= table;      
  29 :      rayo_val . &iuy =tabr;
  30 :      tabr.  'MODELE'=  tabray . ia;
  31 :      'SI' ('EXISTE' tabr.'MODELE' 'MATE' 'CAVITE' );
  32 :          tabr.'TYPE'=  'CAVITE';
  33 :      'SINON'; 
  34 :         'SI' ('EXISTE' tabr.'MODELE' 'MATE' 'INFINI');
  35 :            tabr.'TYPE'= 'INFINI';
  36 :            tabr.'EMIS_INFI'=1.;
  37 :          'SINON';
  38 :            tabr.'TYPE'= 'FAC_A_FAC';
  39 :          'FINSI';
  40 :       'FINSI';
  41 :    fin iuy;   
  42 :    NDIM3    = 'DIME' RAYO_VAL;   
  43 :    
  44 :    
  45 : * premiere partie du rayonnement calcul des facteurs de formes.    
  46 :   'SI' ('<'  IAPPEL 3 ) ;    
  47 :     'SI'('EXISTE' ETAB 'CTE_STEFAN_BOLTZMANN') ;                          
  48 :       CTE_SB = ETAB.'CTE_STEFAN_BOLTZMANN' ;                             
  49 :     'SINON' ;                                                             
  50 :       CTE_SB = 5.673E-8 ;                                                
  51 :       'MESS' 'ATTENTION ! Constante de Stefan-Boltzmann en unités SI' ;  
  52 :       'MESS' '            soit ' CTE_SB ;                                
  53 :     'FINSI' ;         
  54 :     etab.'DEJA_CALC_CHARTHER'=TT; 
  55 :     ifacfo=0;   
  56 :     'SI'(ETAB.'REA_GEOM' 'OU' ('NON' ('EXISTE'                      
  57 :            etab  'FAC_FORM'))); ifacfo=1;'FINSI';
  58 :      'SI' ( 'NON' ('EXIS' etab 'FAC_FORM'));
  59 :         etab .'FAC_FORM'= 'TABLE'; 
  60 :      'FINSI';
  61 :     'REPETER' BOU_RAY NDIM3 ;         
  62 :        mora= rayo_val . &BOU_RAY .'MODELE';
  63 :        mara= 'REDU' mar mora;
  64 : *!        'SI' ( 'EXIS' mora 'MATE' 'CAVITE'); 
  65 :          'SI' ( ( 'EXIS' mora 'MATE' 'CAVITE') 'ET' ('EGA' ifacfo 1) );   
  66 :              etab . 'FAC_FORM' . &bou_ray = 'FFOR' mora  mara;                  
  67 :          'FINSI' ;                                                        
  68 :                                                                                 
  69 : * 
  70 : *---On profite de la boucle pour vérifier s'il y a rayonnement à l'infin 
  71 : *              ou face a face                                           
  72 :        'SI'('EXIS' mora 'MATE' 'INFINI' );                                      
  73 :          'SI' ('NON' ('EXISTE'   RAYO_VAL.(&BOU_RAY) 'EMIS_INFI' ));         
  74 :               RAYO_VAL . (&BOU_RAY) . 'EMIS_INFI'  = 1.;                        
  75 :           'FINSI'  ;                                                            
  76 :        'FINSI' ;                                                                
  77 :    'FIN' BOU_RAY ;  
  78 :  'FINSI'; 
  79 :  
  80 :  
  81 : * deuxieme partie du rayonnement calcul matrices et chpoint
  82 :  'SI' ( ('EGA' IAPPEL 1 ) 'OU' ( 'EGA' IAPPEL 3));
  83 :        TREF=ETAB.'TREF'; TEMM=TT;  
  84 :        CTE_SB = ETAB.'CTE_STEFAN_BOLTZMANN' ;       
  85 :         
  86 :        U0=ETAB.'THER_COURANT' + TREF;   
  87 :        MAT_CHPO=(U0 'EXCO' 'T' 'Q' )*0.;  
  88 :        MAT_CHPO= CHANG 'ATTRIBUT' MAT_CHPO 'NATURE'  'DISCRET';                 
  89 :        NDIM3 = 'DIME' (RAYO_VAL) ;                                       
  90 :        'REPETER' BOU_RA1 NDIM3 ;                                                
  91 :           CH_EMI = 'REDU' ETAB.'CHMAT'                                          
  92 :                     (RAYO_VAL.(&BOU_RA1).'MODELE') ;                     
  93 :           CH_EMI2 = 'CHAN' 'NOEUD' (RAYO_VAL.(&BOU_RA1).'MODELE')               
  94 :                CH_EMI ;                                                  
  95 :                                                                          
  96 :           MAIL_RAD = 'EXTR' CH_EMI 'MAIL' ;                             
  97 :           CH_RAD  = 'REDU' U0  MAIL_RAD ;                                  
  98 :           RTYPE = RAYO_VAL.(&BOU_RA1).'TYPE' ;                               
  99 :                                                                          
 100 : *---------------------------------------------------------------------   
 101 :          'SI'  (NEG RTYPE 'CAVITE') ;                                           
 102 : *--------- Calcul des différents CHPOINT sur le maillage ----------      
 103 : *------------- Cas du rayonnement à l'infini -------------------------   
 104 : *------------------ou face a face --------------------------------       
 105 :                                                                         
 106 :     'SI' ('EGA' RTYPE   'FAC_A_FAC' )   ; 
 107 : *    on est en face a face 
 108 : *   on recupere les obnjets par extraire obje
 109 :       fac1 fac2 geo mcv= 'EXTR' (RAYO_VAL.&BOU_RA1.'MODELE')  'OBJE';           
 110 : *        MCV = RAYO_VAL.(&BOU_RA1).'MO_CONV' ;                                  
 111 : *      fac1 =  RAYO_VAL.(&BOU_RA1).'FAC1' ;                               
 112 : *      fac2 =  RAYO_VAL.(&BOU_RA1).'FAC2' ;                               
 113 :    mo_ray1 = 'REDU' (RAYO_VAL.(&BOU_RA1).'MODELE') FAC1  ;                 
 114 :    mo_ray2 = 'REDU' (RAYO_VAL.(&BOU_RA1).'MODELE') FAC2  ;                 
 115 :    ma_ray1 = 'REDU' CH_EMI2 mo_ray1 ;                                      
 116 :    ma_ray2 = 'REDU' CH_EMI2 mo_ray2 ;                                      
 117 : *                                                                        
 118 : *   CH_RAD = U0  'REDU'  MAIL_RAD  ;                                     
 119 : *                                                                        
 120 : *   GEO =  RAYO_VAL.(&BOU_RA1).'GEO' ;                                    
 121 : *                                                                        
 122 : *  correction 06/12/06: on met d'abord la face 1 puis la face 2 
 123 : *  en cohérence avec l'orientation des éléments du maillage GEO 
 124 :    MAT_RAD = HRAYO MCV  mo_ray1 ma_ray1 ( 'REDU' CH_RAD fac1) 
 125 :                         mo_ray2 ma_ray2 ( 'REDU' CH_RAD fac2) 
 126 :                     GEO  CTE_SB  ;
 127 : *TC                 list resu mat_rad;                                       
 128 :   'SINON' ;                                                               
 129 : *               rayonnement à l'infini  
 130 :        CH_TER = 'TIRE' (ETAB.'CHARGEMENT') 'TERA' TEMM ;                
 131 :        CH_TER = CH_TER + TREF ;                                     
 132 :      mcv = ('EXTR' (RAYO_VAL.(&BOU_RA1).'MODELE') 'MAIL')                
 133 :          'MODE' 'THERMIQUE' CONVECTION ;                                        
 134 :       mo_ray = RAYO_VAL.(&BOU_RA1).'MODELE' ;                            
 135 :       ma_ray =  'REDU' CH_EMI2 mo_ray ;                                    
 136 :   ma_inf = 'MATE' mo_ray 'EMIS'                                            
 137 :                (RAYO_VAL.(&BOU_RA1).'EMIS_INFI')  ;                    
 138 :       CH_TE1 = 'REDU' CH_TER  MAIL_RAD; 
 139 :                                     
 140 : *     CH_RAD = U_BOU1  'REDU'  MAIL_RAD  ;                               
 141 : *                                                                        
 142 :       MAT_RAD= HRAYO MCV  mo_ray ma_ray   CH_RAD                         
 143 :                           mo_ray ma_inf   CH_TE1                         
 144 :                        CTE_SB  ;                                       
 145 : *                                                                        
 146 :       CHAL_TES = 'CONVECTION' MCV MAT_RAD CH_TE1     ;                          
 147 :        MAT_CHPO = MAT_CHPO  + CHAL_TES  ;                                
 148 :    'FINSI' ;                                                               
 149 : *                                                                        
 150 :       RIG_RAD = 'CONDUCTIVITE' MCV MAT_RAD           ;  
 151 : *TC       list resu rig_rad;                                
 152 : *                                                                        
 153 :  'SINON' ;                                                               
 154 : *------------- Cas du rayonnement dans une cavite--------------------   
 155 : *---------------------------------------------------------------------   
 156 :                                                                          
 157 : *     'MESS' 'CH_RAD: ' ('MINI' CH_RAD) ('MAXI' CH_RAD); 
 158 : LDEFAUT=VRAI ; 
 159 : 'SI'  ('EXIS'  (RAYO_VAL.&BOU_RA1. 'MODELE')  'MATE' 'TRAYO' );
 160 :   LDEFAUT= FAUX; 
 161 : 'FINSI'; 
 162 : * méthode avec calcul de la matrice de rayonnement 
 163 : 'SI' LDEFAUT; 
 164 : * méthode avec le calcul de la température de rayonnement 
 165 : * à l'infini équivalente à l'ensemble de la cavité pour la 
 166 : * face considérée 
 167 : * 'MESS' ' méthode 2'; 
 168 :  
 169 :       U_CAK2 = 'CHAN' 'CHAM' (RAYO_VAL.(&BOU_RA1).'MODELE') 
 170 :            CH_RAD  'GRAVITE' ; 
 171 :  
 172 :       MRT = RAYO_VAL.(&BOU_RA1).'MODELE'; 
 173 :       TCAV = 'RAYE' MRT 1.E-7  (ETAB.'FAC_FORM'.&BOU_RA1) 
 174 :               CH_EMI U_CAK2; 
 175 :  
 176 :       HRAD =  HRCAV  MRT CH_EMI U_CAK2 TCAV; 
 177 :  
 178 :       TCAV_N1= 'CHAN' 'CHPO' MRT TCAV; 
 179 :  
 180 :       TCAV_N  = 'NOMC' TCAV_N1 'T' 'NATU' 'DIFFUS'; 
 181 :  
 182 :       RIG_RAD = 'COND' MRT HRAD; 
 183 :  
 184 :       CHAL_TES = 'CONV' MRT HRAD TCAV_N; 
 185 :  
 186 :       MAT_CHPO = MAT_CHPO  + CHAL_TES  ; 
 187 :  
 188 : *     list MAT_CHPO; 
 189 :  
 190 : 'SINON'; 
 191 : * (méthode par défaut) 
 192 :             MAT_RAYE = 'RAYE' (RAYO_VAL.(&BOU_RA1).'MODELE')             
 193 :                   (ETAB.'FAC_FORM'.&BOU_RA1) 
 194 :                   CH_EMI ;                                    
 195 :                                                                         
 196 :          U_CAK2 = 'CHAN' 'CHAM' (RAYO_VAL.(&BOU_RA1).'MODELE')           
 197 :               CH_RAD  'GRAVITE' ;                                        
 198 : *             ('REDU' U_BOU1 MAIL_RAD) 'GRAVITE' ;   
 199 :                                                                                 
 200 :             RIG_RAD = 'RAYN' (RAYO_VAL.(&BOU_RA1).'MODELE')              
 201 :                   MAT_RAYE U_CAK2 CTE_SB ;                               
 202 : 
 203 : 
 204 : 'FINSI'; 
 205 :  
 206 :  
 207 : *           MAT_COND = MAT_COND 'ET' RIG_RAD;                          
 208 : 'FINSI';                                                        
 209 : 'SI' ( &BOU_RA1 'EGA' 1);               
 210 :        bb=   rig_rad ;                                                          
 211 : 'SINON'; 
 212 :        bb=   rig_rad 'ET' bb;  
 213 : 'FINSI'  ;  
 214 :                                                                  
 215 :       'FIN' BOU_RA1 ; 
 216 :       
 217 :       
 218 :        
 219 :   TAA.'ADDI_SECOND'= MAT_CHPO; 
 220 :   TAA.'ADDI_MATRICE'=bb  ; 
 221 :   TAA.'RAYO_VALEUR' = RAYO_VAL;                                       
 222 : 'FINSI';                                                            
 223 : 'FINSI'; 
 224 : 
 225 : 'FINPROC' TAA; 
 226 :  
 227 :  
 228 :  
 229 :  
 230 :  
 231 :  
 232 :  
 233 :  
 234 :  
 235 :  

© Cast3M 2003 - All rights reserved.
Disclaimer