Télécharger pas_rayo.procedur

Retour à la liste

Numérotation des lignes :

  1. * PAS_RAYO PROCEDUR PASCAL 21/02/01 21:15:07 10875
  2. *
  3. * Procedure pour le calcul des termes dus au rayonnement
  4. * (facteurs de forme, matrices, seconds membres)
  5. *
  6. * PRECED table de calcul envoyee a PASAPAS
  7. * TEMM instant courant du calcul
  8. * IAPPEL vaut - 1 si l'appel vient de DUPONT2
  9. * - 2 si premier appel de TRANSNON
  10. * - 3 si deuxieme appel de TRANSNON
  11. *
  12. 'DEBP' PAS_RAYO PRECED*'TABLE' TEMM*'FLOTTANT' IAPPEL*'ENTIER' ;
  13.  
  14. *'MESS' '*--- Entree dans PAS_RAYO TEMM = ' TEMM IAPPEL '---*' ;
  15.  
  16. etab = PRECED.'WTABLE' ;
  17. TAA = 'TABLE' ;
  18.  
  19. *----------------------------------------------------------------------*
  20. * En cas d'appel non prevu : pas de rayonnement --> sortie directe
  21. *----------------------------------------------------------------------*
  22. 'SI' ('NON' etab.'RAYO') ;
  23. 'RESPRO' TAA ;
  24. 'QUITTER' PAS_RAYO ;
  25. 'FINSI' ;
  26. *----------------------------------------------------------------------*
  27. * Pour le rayonnement, le calcul des facteurs de forme, des matrices et
  28. * du chpoint est a faire si appel vient de DUPONT2.
  29. * Seul le calcul des facteurs de forme est a faire lors du premier appel
  30. * par TRANSNON.
  31. * Seuls les matrices et CHPOINT sont a evaluer lors du deuxieme appel
  32. * par TRANSNON.
  33. *----------------------------------------------------------------------*
  34. * 04/2014
  35. *! ne pas partitionner selon le type d'element mais
  36. *! utiliser la table deja obtenue avec 'PRRA' dans PAS_DEFA
  37. *! (procedure de pretraitement de PASAPAS):
  38. *! tabray = 'PRRA' (etab.'MOD_RAY');
  39. *! au lieu de:
  40. * tabray= 'EXTR' mor 'ZONE';
  41. *! NDIM3 = ('DIME' tabray) / 2 ;
  42. *! on obtient ainsi directement la table RAYO_VAL avec le type de
  43. *! la condition (infini, fac_a_fac, cavite)
  44. *----------------------------------------------------------------------*
  45. rayo_val = etab.'RAYONNEMENT' ;
  46. NDIM3 = 'DIME' rayo_val ;
  47.  
  48. *----------------------------------------------------------------------*
  49. * Premiere partie du rayonnement calcul des facteurs de forme
  50. *----------------------------------------------------------------------*
  51. 'SI' ('<' IAPPEL 3) ;
  52.  
  53. 'SI' ('NON' ('EXISTE' etab 'CTE_STEFAN_BOLTZMANN')) ;
  54. CTE_SB = 5.673E-8 ;
  55. etab.'CTE_STEFAN_BOLTZMANN' = CTE_SB ;
  56. 'MESS' 'ATTENTION ! Constante de Stefan-Boltzmann en unites SI' ;
  57. 'MESS' ' soit ' CTE_SB ;
  58. 'FINSI' ;
  59.  
  60. etab.'DEJA_CALC_PAS_RAYO' = TEMM ;
  61.  
  62. mar = etab.'MAT_RAY' ;
  63.  
  64. * Mise a jour des facteurs de forme (CAVITE) si necessaire :
  65. b_z = 'NON' ('EXIS' etab 'FAC_FORM') ;
  66. 'SI' b_z ;
  67. etab. 'FAC_FORM' = 'TABLE' ;
  68. 'FINSI' ;
  69.  
  70. 'SI' (etab.'REA_GEOM' 'OU' b_z) ;
  71. 'REPETER' bou_ray NDIM3 ;
  72. mo_ray = rayo_val . &bou_ray . 'MODELE' ;
  73. 'SI' ('EXIS' mo_ray 'MATE' 'CAVITE') ;
  74. ma_ray = 'REDU' mar mo_ray ;
  75. etab. 'FAC_FORM' . &bou_ray = 'FFOR' mo_ray ma_ray ;
  76. 'FINSI' ;
  77. 'FIN' bou_ray ;
  78. 'FINSI' ;
  79.  
  80. 'FINSI' ;
  81.  
  82. *----------------------------------------------------------------------*
  83. * Deuxieme partie du rayonnement calcul matrices et chpoint
  84. *----------------------------------------------------------------------*
  85. 'SI' ( ('EGA' IAPPEL 1) 'OU' ('EGA' IAPPEL 3) ) ;
  86. CTE_SB = etab.'CTE_STEFAN_BOLTZMANN' ;
  87.  
  88. TREF = etab.'TREF' ;
  89. U0 = etab.'THER_COURANT' '+' TREF ;
  90. MAT_CHPO = 0. ;
  91.  
  92. 'REPETER' bou_ray NDIM3 ;
  93.  
  94. mo_ray = rayo_val. &bou_ray .'MODELE';
  95. RTYPE = rayo_val. &bou_ray .'TYPE' ;
  96.  
  97. * Pourrait-on prendre etab.'MAT_RAY' plutot que etab.'CHMAT' ?
  98. CH_EMI = 'REDU' etab.'CHMAT' mo_ray ;
  99.  
  100. MAIL_RAD = 'EXTR' CH_EMI 'MAIL' ;
  101. CH_RAD = 'REDU' U0 MAIL_RAD ;
  102. * 'MESS' 'CH_RAD: ' ('MINI' CH_RAD) ('MAXI' CH_RAD);
  103.  
  104. *--------- Calcul des differents CHPOINTs sur le maillage -------------*
  105. *----------------------------------------------------------------------*
  106. 'SI' ('NEG' RTYPE 'CAVITE') ;
  107. *
  108. CH_EMI2 = 'CHAN' 'NOEUD' mo_ray CH_EMI ;
  109. *
  110. *------------- Cas du rayonnement face a face -------------------------*
  111. 'SI' ('EGA' RTYPE 'FAC_A_FAC') ;
  112. * on recupere les objets par extraire obje pour le face a face :
  113. fac1 fac2 geo mcv = 'EXTR' mo_ray 'OBJE' ;
  114. mo_ray1 = 'REDU' mo_ray fac1 ;
  115. mo_ray2 = 'REDU' mo_ray fac2 ;
  116. ma_ray1 = 'REDU' CH_EMI2 mo_ray1 ;
  117. ma_ray2 = 'REDU' CH_EMI2 mo_ray2 ;
  118. ch_rad1 = 'REDU' CH_RAD fac1 ;
  119. ch_rad2 = 'REDU' CH_RAD fac2 ;
  120. *
  121. * correction 06/12/06: on met d'abord la face 1 puis la face 2
  122. * en coherence avec l'orientation des elements du maillage GEO
  123. MAT_RAD = HRAYO mcv mo_ray1 ma_ray1 ch_rad1
  124. mo_ray2 ma_ray2 ch_rad2
  125. geo CTE_SB ;
  126. *
  127. *------------- Cas du rayonnement a l'infini --------------------------*
  128. 'SINON' ;
  129. ma_ray = 'REDU' CH_EMI2 mo_ray ;
  130. 'SI' ('EXIS' (etab.'CHARGEMENT') 'TERA') ;
  131. *Note on pourrait faire une seule fois ce TIRE !
  132. CH_TER = 'TIRE' (etab.'CHARGEMENT') 'TERA' TEMM ;
  133. 'SINON' ;
  134. CH_TER = 'EXCO' ma_ray 'T_IN' 'T' ;
  135. CH_TER = 'CHAN' 'CHPO' mo_ray CH_TER ;
  136. 'FINSI' ;
  137. CH_TE1 = 'REDU' CH_TER MAIL_RAD ;
  138. CH_TE1 = CH_TE1 '+' TREF ;
  139.  
  140. *??? mcv = mail_rad 'MODE' 'THERMIQUE' CONVECTION ;
  141. mcv = ('EXTR' mo_ray 'MAIL') 'MODE' 'THERMIQUE' CONVECTION ;
  142.  
  143. * on prend pour E_IM la valeur 1. par defaut :
  144. 'SI' ('NON' ('EXIS' MA_RAY 'E_IN'));
  145. ** ma_rayin = 'MATE' mo_ray 'E_IN' 1. ;
  146. ** ma_ray = ma_ray 'ET' ('CHAN' 'NOEUD' MO_RAY MA_RAYIN) ;
  147. ma_rayin = 'MANU' 'CHML' mo_ray 'E_IN' 1.
  148. 'TYPE' 'CARACTERISTIQUES' 'NOEUD' ;
  149. ma_ray = ma_ray 'ET' ma_rayin ;
  150. 'FINSI' ;
  151.  
  152. MAT_RAD = HRAYO mcv mo_ray ma_ray CH_RAD
  153. CH_TE1 CTE_SB ;
  154.  
  155. CHAL_TES = 'CONVECTION' mcv MAT_RAD CH_TE1 ;
  156. MAT_CHPO = MAT_CHPO '+' CHAL_TES ;
  157.  
  158. 'FINSI' ;
  159. *
  160. RIG_RAD = 'CONDUCTIVITE' mcv MAT_RAD ;
  161. *
  162. *------------- Cas du rayonnement dans une cavite--------------------
  163. 'SINON' ;
  164.  
  165. U_CAK2 = 'CHAN' 'CHAM' mo_ray CH_RAD 'GRAVITE' ;
  166. *
  167. * Methode avec calcul de la matrice de rayonnement
  168. 'SI' ('NON' ('EXIS' mo_ray 'MATE' 'TRAYO')) ;
  169. * methode avec le calcul de la temperature de rayonnement a l'infini
  170. * equivalente a l'ensemble de la cavite pour la face consideree
  171. MRT = mo_ray ;
  172. TCAV = 'RAYE' MRT 1.E-7 (etab.'FAC_FORM'.&bou_ray)
  173. CH_EMI U_CAK2 ;
  174. HRAD = HRCAV MRT CH_EMI U_CAK2 TCAV ;
  175. RIG_RAD = 'COND' MRT HRAD ;
  176.  
  177. TCAV_N1 = 'CHAN' 'CHPO' MRT TCAV ;
  178. TCAV_N = 'NOMC' TCAV_N1 'T' 'NATU' 'DIFFUS';
  179. CHAL_TES = 'CONV' MRT HRAD TCAV_N ;
  180. MAT_CHPO = MAT_CHPO '+' CHAL_TES ;
  181.  
  182. 'SINON';
  183. * Methode par defaut
  184. MAT_RAYE = 'RAYE' mo_ray (etab.'FAC_FORM'.&bou_ray)
  185. CH_EMI ;
  186. RIG_RAD = 'RAYN' mo_ray MAT_RAYE U_CAK2 CTE_SB ;
  187. 'FINSI';
  188.  
  189. 'FINSI';
  190. *---------------------------------------------------------------------
  191.  
  192. 'SI' ('EGA' &bou_ray 1) ;
  193. bb = rig_rad ;
  194. 'SINON';
  195. bb = rig_rad 'ET' bb;
  196. 'FINSI' ;
  197.  
  198. 'FIN' bou_ray ;
  199.  
  200. * On n'ajoute second membre que si c'est un CHPOINT !
  201. 'SI' ('NEG' MAT_CHPO 0.) ;
  202. TAA.'ADDI_SECOND' = MAT_CHPO ;
  203. 'FINSI' ;
  204. TAA.'ADDI_MATRICE' = bb ;
  205. TAA.'RAYO_VALEUR' = rayo_val ;
  206.  
  207. 'FINSI';
  208.  
  209. 'RESPRO' TAA ;
  210. 'FINPROC' ;
  211.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales