Télécharger xbif.procedur

Retour à la liste

Numérotation des lignes :

  1. * XBIF PROCEDUR MAGN 98/12/30 21:15:27 3420
  2. *X XBIF (Procedure)
  3. *X modele bifluide
  4. *X resolution d'equations de Navier-Stokes couplees
  5.  
  6. DEBPROC XBIF ;
  7. ARGU RV*TABLE RVP*TABLE RVC*TABLE
  8. KF*FLOTTANT KP*FLOTTANT ;
  9.  
  10. idime=vale 'DIME' ;
  11. si (ega idime 2) ;
  12. vnul=0. 0. ;
  13. sinon;
  14. vnul=0. 0. 0. ;
  15. finsi ;
  16. bidon = table ;
  17.  
  18. GR=rv.'GR' ;
  19. ALFA=rv.'ALFA' ;
  20. ITMA=rv.'ITMA' ;
  21. FIDT=rv.'FIDT' ;
  22. KIZT=rv.'INCO' ;
  23.  
  24. testpr=exist rv 'PRESSION' ;
  25. testdefo=exist rv 'DEFOR' ;
  26.  
  27. si testdefo ;
  28. verdefo rv ;
  29. finsi ;
  30.  
  31. si (non(exist rv 'HIST')) ;
  32. rv.'HIST'=bidon ;
  33. finsi ;
  34. HIST=rv.'HIST';
  35.  
  36. si (non(exist rv kizd)) ;
  37. kdia rv ;
  38. finsi ;
  39.  
  40. si (non(exist rvc kizd)) ;
  41. kdia rvc ;
  42. finsi ;
  43.  
  44. si (non(exist rvc kizc)) ;
  45. rvc.kizc=table 'KIZC' ;
  46. finsi ;
  47.  
  48. si (non(exist rvc kizg)) ;
  49. rvc.kizg=table 'KIZG' ;
  50. finsi ;
  51.  
  52. si (non(exist rv kizg)) ;
  53. rv.kizg=table 'KIZG' ;
  54. finsi ;
  55. KIZG=rv.'KIZG' ;
  56. si (non(exist rv kizg1)) ;
  57. rv.kizg1=table 'KIZG1' ;
  58. finsi ;
  59. KIZG1=rv.'KIZG1' ;
  60.  
  61. KD=rv.'KIZD' ;
  62.  
  63. si (exist rv kizc) ;
  64. KIZC=rv.'KIZC' ;
  65. sinon ;
  66. KIZC=table 'KIZC' ;
  67. rv.'KIZC'=KIZC ;
  68. finsi ;
  69.  
  70. SI testpr ;
  71. dmn=rvp.'DOMAINE' ;
  72. rvp=rv.'PRESSION' ;
  73. U=KIZT.'UN' ;
  74. V=KIZT.'VN' ;
  75. Du=KD.'UN' ;
  76. Dv=KD.'VN' ;
  77.  
  78. FV=RVC.'INCO'.'CN' ;
  79.  
  80. si (non(exist rvp diagv)) ;
  81. rvp.diagv=Du ;
  82. finsi ;
  83.  
  84. rvp.'KIZC' = kizc ;
  85.  
  86. si (non(exist rvp 'MATC')) ;
  87. C=kmac rvp ;
  88. rvp.'MATC'=C ;
  89. finsi ;
  90. C=rvp.'MATC' ;
  91.  
  92. P=kcht (rvp.domaine) SCAL CENTRE 0.;
  93. rvp.'PRESSION'=P ;
  94. GP=kcht (rvp.domaine) SCAL SOMMET 0.;
  95. FINSI ;
  96.  
  97. si (exist rv 'DECDOM') ;
  98. decdom rv ;
  99. quitter xbif ;
  100. finsi ;
  101.  
  102. diaga = DGSI $DOMTOT ;
  103. diagb = COPIE diaga ;
  104. diaga = NOMC diaga 'UX' ;
  105. diagb = NOMC diagb 'UY' ;
  106. diaga = CHAN 'ATTRIBUT' diaga 'NATURE' 'DIFFUS' ;
  107. diagb = CHAN 'ATTRIBUT' diagb 'NATURE' 'DIFFUS' ;
  108. diag0 = diaga ET diagb ;
  109. diag = kcht $DOMTOT vect sommet diag0 ;
  110.  
  111. nbop=dime (rv.listoper) ;
  112.  
  113. REPETER BLOC1 ITMA ;
  114.  
  115. repeter bloc2 nbop ;
  116. klop &bloc2 rv ;
  117. fin bloc2 ;
  118.  
  119. SI testpr ;
  120. dt=(rv.pasdetps.deltat)*ALFA ;
  121. rvp.deltat=dt ;
  122. P=rvp.'PRESSION' ;
  123. detr P ;
  124. f=KIZG.'UN' ;
  125. g=KIZG.'VN' ;
  126. g2=kops g '-' (kops diag '*' GR) ;
  127. f1=kops f '+' (kops diag '*' (kops KF '*' (kops U '-' V))) ;
  128. g1=kops g2 '+' (kops diag '*' (kops KP '*' (kops V '-' U))) ;
  129. dm1f=kops (kops f1 '/' Du) '-' (kops U '/' dt) ;
  130. P=kmf C dm1f ;
  131. detr dm1f ;
  132. kres rvp P ;
  133. rvp.'PRESSION'=P ;
  134. detr GP ;
  135. gp= kmtp C P ;
  136. GPF=gp ;
  137. RO=ROF/ROP ;
  138. GPP=kops RO '*' gp ;
  139. KIZG.'UN'=kops f1 '-' GPF ;
  140. KIZG.'VN'=kops g1 '-' GPP ;
  141. rset f vnul ;
  142. rset g vnul ;
  143. detr g2 ; detr f1 ; detr g1 ;
  144. dltt= rv.pasdetps.deltat ;
  145. FINSI ;
  146.  
  147. avct KIZT KIZC (rv.pasdetps) KIZG KD HIST ALFA 'IMPR' FIDT ;
  148.  
  149. si testdefo ;
  150. si (&bloc1 > itd) ;
  151. rvp.'PN'=elno (kcht dmn SCAL CENTRE P) dmn ;
  152. DEFO.'PN'=rvp.'PN' ;
  153. reponse = TDFO DEFO ;
  154. si (ega reponse vrai) ;
  155. DEFO.'MAIL' = KDEF DEFO.'VDEF' dmrv.MAILLAGE ;
  156. quitter XBIF ;
  157. finsi ;
  158. finsi ;
  159. finsi ;
  160.  
  161. si (testpr) ;
  162. detr (KIZG.'UN') ;
  163. detr (KIZG.'VN') ;
  164. KIZG.'UN'=f ;
  165. KIZG.'VN'=g ;
  166. finsi ;
  167.  
  168. VP = RV.'INCO'.'VN' ;
  169. RVC.1KONV.ARG1 = KSOF $DOMTOT VP ;
  170. RVC.1KONV.ARG2 = NOEL $DOMTOT VP ;
  171.  
  172. klop 1 RVC 'MUSCL' ;
  173. rvc.pasdetps.deltat =dltt ;
  174.  
  175. avct (RVC.'INCO') (RVC.'KIZC') (rvc.pasdetps) (RVC.'KIZG')
  176. (RVC.'KIZD') (RVP.DOMAINE) (RVC.'ALFA') 'IMPR' (RVC.'FIDT') ;
  177.  
  178. menage ;
  179.  
  180. FIN BLOC1 ;
  181.  
  182. si (testpr) ;
  183. rvp.'PRESSION'=kcht dmn scal centre P ;
  184. rvp.'PN'= elno dmn rvp.'PRESSION' ;
  185. rvp.gradp=GP ;
  186. finsi;
  187.  
  188. FINPROC ;
  189.  
  190.  

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