Vous êtes sur la page 1sur 28

   


      
 

 

 
 
! "#
$# %&&'#
 ( )
*+ ,&& -#./#&
01/2 *+
($& 32 4556
789:;<=>? A@ B8CD E?D?F GH<IF;J<?:K LMMNO PQQ ;<=>?J ;FJF;IFRO


 

  
  
   !"#                                   
$ %&' % ()*)+!( !,  +( -./                        
$ 123*)+!(4 4!'5 6 +( -./                        
$$ 7 8!3&'+(9 8 %+8*' 4!3"8 ) "%4 +( -./               



0
0
:

; <
=> ? = = @ A B @C D <?@ E@ 
$ 7G-H-  !"#                                 
$ J!&3'*)+!( K*'*(8 23*)+!(4                      
$$ -!% () )"*(4,!"%                            
$0 99" 9*)+!( *(6 K" *M*9 23*)+!(                   
$$ %&' % ()*)+!( !, 7G-H- +( -./                      
$$ 123*)+!(4 4!'5 6 +( -./                        
$$$ !'3)+!( ) 8(+23                            

F
I
I
L

$
$
0

NB=>D

O


P QD= NB=> B=    <?@ E@
 (&3) ,!"                                   
 T #U!"64 ,!" +(&3) 6*)* V'                       
$ '9!"+)% ,!"                             
0 1W*%&' 34+(9                            
$ (&3) ,!" 7G-H-                                
$ T #U!"64 ,!" +(&3) 6*)* V'                       
$$ '9!"+)% ,!" 7G-H-                         
$0 1W*%&' 34+(9 7G-H-                         

R
S
S
S
X
$
$
$
$

          
       



  
( * 9*4 4!'+64 %+W)3"  ) ) "%!8 %+8*' 4)*) 8*( K 6 ) "%+( 6 K#  5*"+*K' 4 438 *4
5!+6 ,"*8)+!(  %*44 ,"*8)+!( *(6 ()*'&#   !U 5 "  +, !) " 6 & (6 (8+ 4 W+4) K )U (
) 4 5*"+*K' 4  ) 6 9" 4 !, ," 6!% 6 8" *4 )! !   8!%&!4+)+!( 5 8)!" " +4 6 V( 6
)! +(8'36 ! 5*"+*K' 4  U+8 +4 * 43K4 ) !,    )"*(4&!") 23*)+!( ,!" ) 8!%&!4+)+!(
5 8)!" *4 ) ,!"% #
6 " "( ) * "(
(
6$ % & '
'
'
U " " *4 8!%&!( ()4 '"+ ",  - - -  ". ( *(6 & '"( *(6 * '"( *" ) 8*(9 4 +( " 63 )!
8 %+8*' " *8)+!(4 *(6 )"*(4&!")  " 4& 8)+5 '#  8!%&!4+)+!( !, " *8)+5 / !U4 +4 * 0 8) 6
K# " *8)+!(4 *(6 )"*(4&!") U+8 +(8'36 4 8!(5 8)+!( *(6 6+0 34+!(
1  ( 2 .7 8!6 4 34 ,"*8)+!(*' )+% 4) &&+(9 ,!" " *8)+5 / !U 8*'83'*)+!(4  4&'+))+(9
) 8(+23 4 8*( K *&&'+ 6 4! )*) ) 6+0 " () &"!8 44 4 *" )" *) 6 +( 4 &*"*) ,"*8)+!(*'
4) &4 ( ) V"4) ,"*8)+!(*' )+% 4) &  ) 8*(9 63 )! 8!(5 8)+!( *(6 6+0 34+!( +4 4!'5 6
,!" 5 "# (!6 34+(9 #
6 " * "(
$(
6$ % '
'
U+) ) +(+)+*' 8!(6+)+!( " '$(   4!'3)+!( !, 12 '$ ( +4 6 (!) 6 *4 "3 '$ ) 4$(  ( ) ( W)
,"*8)+!(*' )+% 4) &  ) 8*(9 63 )! 8 %+8*' " *8)+!(4 +4 4!'5 6 34+(9 #
6 " "(
0(
6$ % & '
'
U+) ) +(+)+*' 8!(6+)+!( "3 '$ ) 4$(   8!%&!4+)+!( !, *'' (!6 4 *" ) ( *&&"!W+%*) 6 )!
" $ ) 4$(   !5 "*'' ,"*8)+!(*' )+% 4) &&+(9 +4 " &" 4 () 6 *4 #
'
9:
:
" $( 5678;< 65 " 3 $ ) 4$( 6=7>5?
:(
<
; 8 " '$ ) 4$(@
'
'
'

 8 %+8*' 4!3"8 ) "%4 *" 6 8!3&' 6 ,"!% ) )"*(4&!") ) "%4 *(6 8*( K )" *) 6
U+) A 8+ () (3% "+8*' % )!64 438 *4  34  4!'5+(9 ,!" 8 %+8*' 4!3"8 ) "%4
+4 K*4 6 !( * 9+5 ( 8 %+8*' 8!%&!4+)+!( *) )+% $ )! 6 ) "%+( ) 8!%&!4+)+!( *) )+%
$ ) 4$ " 43')+(9 ,"!% 8 %+8*' " *8)+!(4 ( * )+%  6 & (6 () V(+)  5!'3% 8!6  12 0 ( +4
'
+() 9"*) 6 " & )+)+5 '# ,!" *8 (!6 *) 5 "# )+% 4) & U+) *8 ( U 4 ) !, +(+)+*' 8!(6+)+!(4
 44 ()+*' +6 *4 *(6 +(9" 6+ ()4 !, )  *&&"!*8   $ *" 43%%*"+B 6 *4 ,!''!U4
*(6 ) / !U 8*") +4 4!U( +( .+9  #
  4&'+))+(9 48 % +4 %&'!# 6 4! )*) ) &"!K' % +4 " 638 6 )! 6 ) "%+(+(9 )
" *8)+!( %*&&+(9 C '"( U+8 +4 ) 4!'3)+!( )! 12 '0 ( *,) " * )+% 4$ ,"!% ) +(+)+*'
8!(6+)+!( "3 
$  )*K' +4 K3+') +( 4+)3 *4 ) " *8)+5 / !U 8*'83'*)+!( +4 & ",!"% 6 4! )*) !('# )
*88 44 6 " 9+!( !, ) 8!%&!4+)+!( 4&*8 +4 )*K3'*) 6


Perform DI
Return Exact Values FIRST QUERY
Start Tabulation

NEXT QUERY

Traverse
Binary Tree

Check if Query
Point inside
EOA
Update Tabulation

NO

Perform DI

YES
Perform Linear
Interpolation
(Retrieve)

YES

Check if error
less than Error
Tolerance

Growth

NO

Addition

Return Integrated
Value

.+93"  #  / !U 8*") !, ) M # 4) &4 +( 


0  )*K' ()"# '!" " 8!"6 ( 8!(4+4)4 !, '+ ( * " , " (8 8!%&!4+)+!( 5 8)!" "  '++( ) " 
*8)+!( %*&&+(9 5*'3*) 6 *) ) " , " (8 8!%&!4+)+!( 5 8)!" C '" ( '+++ ( ) *8!K+*(
%*)"+W ,!" ) " *8)+!( %*&&+(9 5*'3*) 6 *) ) " , " (8 8!%&!4+)+!(
5 8)!" '" (
*(6 '+5 ( +(,!"%*)+!( ( 6 6 )! 6 V( ) ''+&4!+6 !, *883"*8# '1H (   " *8)+!(
%*&&+(9
*(6 +)4 *8!K+*( 8*( ) ( K 34 6 )! !K)*+( * '+( *" *&&"!W+%*)+!( )! )
" *8)+!( %*&&+(9 5*'3*) 6 *) * ( *"K# 23 "# 8!%&!4+)+!( " #


C " (  C " ( )  " ( " ; " (


'
'
' '
''+&4!+6*' " 9+!(  8 () " 6 *) "  U+)+( U+8

'

 1H +4 *(
12 ' ( +4 M(!U( )! K
*883"*) 
:  1H +4 6 V( 6 +( ) "%4 !, ) 4+(93'*" 5*'3 4 !, ) *8!K+*( %*)"+W *(6 * 34 "
4& 8+V 6 ""!" )!' "*(8  ( 1H +4 +(+)+*'+B 6 *(6 9"!U( )! (43" )*) 'U+) +9
&"!K*K+'+)# ( ) ""!" +(5!'5 6 +( 12 ' ( +4 U+)+( ) 34 " 4& 8+V 6 ""!" )!' "*(8 
  " 8!"64 *" 4)!" 6 +( * K+(*"# )" U+8  9+5 ( * 23 "# 8!%&!4+)+!( "  8*( K
)"*5 "4 6 )! !K)*+( * )*K' ()"# " U+8 +( 4!% 4 (4 +4 8'!4 )! " 
S 1*8 8*'' )!  +4 " , "" 6 )! *4 *  , ) ( U 23 "# &!+() +4 U+)+( ) 1H 
) ( 12 ' ( +4 %&'!# 6 )! 4)+%*) ) " *8)+!( %*&&+(9 +4 4) & +4 M(!U( *4 *







X , ) 23 "# +4 (!) ,3'V'' 6 K# *


 ) ( ) " *8)+!( %*&&+(9 +4 8!%&3) 6 K#
7 *4 6 !( ) " 43')  ) 1H +4 W*%+( 6 )! 6 ) "%+( +, ) '+( *" *&&"!W+%*)+!(
+4 43 A 8+ ()'# *883"*)  , +) +4  ) ( ) 1H +4 9"!U( )! +(8'36 ) 23 "# &!+()
+4 +4 " , "" 6 )! *4 *    , ) 23 "# +4 (!) 4*)+4V 6 K# * 9"!U ) ( ) &!+() +4
)*K3'*) 6 *4 * ( U 6*)* &!+()  " , "" 6 )! *4  
I 4 ) 8*'83'*)+!( &"!8 64  U+) +(8" *4+(9 &"!K*K+'+)# ) 23 "# 8!%&!4+)+!( " '+ 4
U+)+( ) 1H !, * )*K' ()"# "  4! )*) ) %*&&+(9 +4 A 8+ ()'# " )"+ 5 6 34+(9
12 ' (  ( * )#&+8*' 8*'83'*)+!(  ) )*K' +4 %&)# *) ) V"4) )+% 4) & 34 * ( U'#
8" *) 6 )*K' +4 6!%+(*) 6 K#   ,!''!U 6 K# *( +() "% 6+*) & "+!6 6!%+(*) 6 K#
   .+(*''#  ) )*K' " *8 4 %*)3"+)# U " *'%!4) 5 "# 23 "# &!+() ' *64 )! *
  !5 "*'' 8!%&3)*)+!(*' A 8+ (8# +(8" *4 4 6"*%*)+8*''# !(8 ) )*K' +4
%*)3" 4+(8 ) " )"+ 5 4) & +4 8!%&3)*)+!(*''# +( W& (4+5 *4 8!%&*" 6 )! 7
 +4 * .!")"*( '+K"*"# U+8 +%&' % ()4 )  *'9!"+)% ,!" * 5 8)!"5*'3 6
9 ( "*' ,3(8)+!( B 'P ( 0    34 " %34) &"!5+6 * 43K"!3)+( )! 5*'3*) B 'P ( 9+5 ( )
5 8)!" P *(6 +)4 6 "+5*)+5 4  ,3(8)+!( B 'P ( *(6 5 8)!" P 6 (!) C '"( *(6 " " 4& 8)+5 '#
(  ) )+% 4) & 4$ +4 *'4! )*K3'*) 6 *(6 )34 ( 6 (!) K * VW 6 5*'3 ,!" ) ()+"
4+%3'*)+!( 0  








 

 
            

 ;    
D D
 @   
 & *) 6  " *" ) 23*)+!(4 4!'5 6 +( -./  +(8'36+(9 8!()+(3+)#  4& 8+ 4  *(6 ( "9#
,!" 9*4 *(6 4!'+64 &*4 4 : #
         
#$

%C
(
)
!(
 $ ' 
'  "  % +  & (
&'
#*+

% C ) @
) ) ( ) ! - ) ) ) (
 $ '
'
"
% + &
&'

'

S(

'

X(

      ,
 


()! (
C
 $ '  -  &
'  -  & "  %  & (

) ) ) & ( ) ! - ) ) ) & ) (
C ) & @
 $ '
'
- "
%

I(
L(
'
'

Time marching loop

Calculate velocities

Calculate volumetric fractions


Calculate temperatures
Calculate species mass fractions

Check for
convergence
No
Yes
Go to the next time step

.+93" $ #  / !U 8*") !, -./


     



 *
- !*
! - )   ) *  ; * ( ;  
 )
    $ " 
 % ;

 '

6
)  *  ; * ( (
7  ' 7  
  * )
! -  )   ) * ) * (
) @
 )  ) 9 )  )  ) - ! * ) 

$ "
% ;  ;  ' ;  ; 6

'

 (

(
 43K48"+&)4 9 *(6 4
+(6+8*) ) 9*4 *(6 4!'+64 &*4 4
" 4& 8)+5 '# *(6 6 (!) 4
* 3(+23 4& 8+ 4 H) " 5*"+*K' 4 +(8'36 ) &*4+8 5!'3% ,"*8)+!(  6 (4+)#  5 '!8+)#
5 8)!" "  %*44 ,"*8)+!( -  "*) !, ,!"%*)+!( C *(6 (3%K " !, 8 %+8*' 4& 8+ 4   .+93" $
4!U4 ) / !U 8*") !, -./
 ; ; <> 
 >AC
> D => =CD
 @   
 23*)+!(4 4!U( *4 'S ( *" +() 9"*) 6 !5 " * 8!%&3)*)+!(*' 8 '' +( ) V(+) 5!'3%
% )!6  43*''# ) 8 %+4)"# +4 4)+0  ,!" W*%&'  63 )! ) '*"9 "*(9 !, )+% 48*' 4
 )+%  4&'+))+(9 % )!6  8*( K %&'!# 6 )! 4!'5 ) 8!()+(3+)#  4& 8+ 4 *(6 ( "9#
23*)+!(4  8 %+8*' 4!3"8 ) "%4 U+8 *&& *" +( ) 8!()+(3+)#  4& 8+ 4 *(6 ( "9#
23*)+!(4 *" 6 8!3&' 6 4! )*) ) # 8*( K 4!'5 6 34+(9 
&&'#+(9 )+%  4&'+))+(9 ) 8(+23 4 )! -./  ) 8*'83'*)+!( !, 4& 8+ 4 %*44 ,"*8)+!(4 
5!'3% )"+8 ,"*8)+!(4 *(6 ) %& "*)3" 4 " 23+" 4 )U! 4) &4 #
'

 ( ) V"4) ,"*8)+!(*' )+% 4) &  ) 8*(9 63 )! 8!(5 8)+!( +4 4!'5 6 ,!" 5 "# (!6
34+(9 124 'S ( '( K# 4 ))+(9 ) %*44 *(6  *) 9 ( "*)+!( 63 )! " *8)+!(4 23*' )!
B "!  " 43')+(9 23*)+!(4 *5 ) ,!"% #

()! (

$ (
 $ ' 
'  "  % (
'

) ) ( ) ! - ) ) ) (

0 (
 $ '
'
"
% (
'

()! (

 $ '  -  &
'  -  & "  % (

) ) ) & ( ) ! - ) ) ) & ) (

 $ '
'
- "
% (

 *
- !*
! - )   ) * ) ; * (
 )
    $ " 
 % ;

 '

)  *  ; * ( (
7  ' 7  
  * )
! -  ) ;   ) * ) ; * (@
 )  ) 9 )  )  ) - ! * )

$ "
 % ;
 '


: (
(
'

'

'

S (

X (
U+) ) +(+)+*' 8!(6+)+!(4 -  & '$( - ) & '$( ) '$(  '$( *  '$( *(6 *) '$(   4!'3)+!(4
!, 124 '$ ( 'X ( *" - 3& '$ ) 4$( - 3) & '$ ) 4$( 3) '$ ) 4$( 3 '$ ) 4$( * 3 '$ ) 4$( *(6
* 3) $ ) 4$(  .!" 8'*"+)#  ) 4&*)+*' 6 & (6 (8# !, *8 ) "% +4 43&&" 44 6 !U 5 " 
) '" *6 " 4!3'6 M & +( %+(6 )*) ) 5*"+*K' 4 %34) K 3&6*) 6 +( )+% *) 5 "#
9"+6 8 ''
$ ( ) ( W) ,"*8)+!(*' )+% 4) &  ) 8*(9 63 )! ) 8 %+8*' 4!3"8 ) "%4 ,!" %*44
,"*8)+!(4 *" #
6
I (
'
6 $ '  -  & ( % C  & (
6 ) )  ( C) @
L (
'
6 $ ' - & % &
'

7+0 " ()+*)+(9 124 'I ( *(6 'L ( *(6 " *""*(9+(9 ) "%4 #+ '64 #
6 ( C & - & 6 (
6 $ '-  & %   ;   6 $ '  (
6 ) ( C) & - ) & 6 ) ) (
6 $ '- & % ) ) ; ) ) 6 $ ' (


$ (
$(
'
'

U " ) 8*(9 !, 5!'3% )"+8 ,"*8)+!(4  *(6 ) *" 8*'83'*) 6 ,"!% ) 8!()+(3+)#
23*)+!( ,!" ) 4!'+64 &*4 #
#*+
6 ) ) ( %
C )
$$ (
6 $ '
% + &
'
&'
U+)  ) )' + ) %  123*)+!( '$$ ( 8*( K " *""*(9 6 *4 #
#*+
6 ) (  %
$0 (
'
6 $ ' % ) &' + C) &
4+(8 ) +4 8!(4)*() 9+((+(9 U+) ) 8!()+(3+)# 23*)+!( ,!" ) 9*4 &*4 #
6 ( %#$ C
$: (
6 $ '  % &' +  &
'
) 23*)+!( 8*( K " U"+)) ( #
6  % 6 ) %#$ C @
$(
 6 $ ;  ) + 6 $ % +  &
'
'
&'
 (  ) 8*(9 !, 9*4 6 (4+)# +4 #
6 (  %#$ C ) % 6 ) @
$S (
6 $ '  %  &' +  &  ) ' + 6 $ 
'
."!% ) ( "9# 23*)+!(4 ,!" ) 9*4 *(6 4!'+64 &*4  ) 8*(9 63 )! ) 8 %+8*'
4!3"8 ) "%4 *" U"+)) ( *4 #
6
9 6$ * (
$X (
   '  % ;   6  (
'
 )  ) 9) 6 * ) (
$I (

6 $ ' % ;   6 )
'
*(6 124 '$X ( *(6 '$I ( 8*( K " *""*(9 6 *4 #


6 * ( ;   6
$L (
6 $ '  %   9  (
'
6 *) (
;   6) @
0 (
6 $ ' % ) ) 9)
'
34 124 '$ ( *(6 '$( ,!" %*44 ,"*8)+!(4  12 '$0 ( ,!" 5!'3% )"+8 ,"*8)+!(4  12 '$S (
,!" 9*4 6 (4+)# *(6 124 '$L ( *(6 '0 ( ,!" ) %& "*)3" 4 *" +() 9"*) 6 U+) ) +(+)+*'
S

Time marching loop

Calculate velocities

Calculate change in volumetric fractions, species mass


fractions and temperatures due to transport

Check for
convergence
No
Yes
Calculate change in volumetric fractions, species mass
fractions, gas density and temperatures
due to chemcial reaction (using ISAT)

Go to the next time step

.+93" 0 #  / !U 8*") !, -./ U+) 


8!(6+)+!(4 - 3& '$ ) 4$( - 3) & '$ ) 4$( 3) '$ ) 4$( 3 '$ ) 4$( * 3 '$ ) 4$( *(6 * 3) '$ ) 4$( 
 %*44 ,"*8)+!(4  5!'3% )"+8 ,"*8)+!(4  9*4 6 (4+)# *(6 ) %& "*)3" 4 *) *'' (!6 4 *"
3&6*) 6 )! -  & '$ ) 4$( - & '$ ) 4$(   '$ ) 4$(  '$ ) 4$( *  '$ ) 4$( *(6 *) '$ ) 4$(
*(6 &" 443" +4 3&6*) 6 34+(9 ) +6 *' 9*4 '*U  ( !"6 " )! 34 *( H71 4!'5 " 
) 34 " %34) &"!5+6 )   !, 124 '$ ( '$( '$0 ( '$S ( '$L ( *(6 '0 ( *(6 ) +"
8!"" 4&!(6+(9 *8!K+*( %*)"+W
1 +) ) )+%  4&'+))+(9 % )!6 ) 8 %+8*' " *8)+!(4 ,!" ) 9*4 *(6 4!'+64 &*4 4 *"
+4!'*) 6 ,"!% ) )"*(4&!") ) "%4 *(6 8*( K )" *) 6 U+) A 8+ () (3% "+8*' % )!64 438
*4   &"!K' % 4)*) % () ,!" 4!'5+(9 ) 8 %+8*' 4!3"8 ) "%4 +4 K*4 6 !( * 9+5 (
8 %+8*' 8!%&!4+)+!( *) )+% $ )! 6 ) "%+( ) 8!%&!4+)+!( *) )+% $ ) 4$ " 43')+(9 ,"!%
8 %+8*' " *8)+!(4 73"+(9 ) 8!3"4 !, * 4+%3'*)+!(  124 '$ ( '$( '$0 ( '$S ( '$L ( *(6
0 ( *" +() 9"*) 6 " & )+)+5 '# ,!" *8 (!6 *) 5 "# )+% 4) & U+) *8 ( U 4 ) !, +(+)+*'
'8!(6+)+!(4
4 4!U( +( .+9 0  ) 8 %+8*' 4!3"8 ) "%4 *" 4!'5 6 34+(9  *(6 ) )"*(4&!")
) "%4 *" 8*'83'*) 6 34+(9 -./ *) *8 ,"*8)+!(*' )+% 4) &  8*(9 4 +( 4& 8+ 4 %*44
,"*8)+!(4  5!'3% )"+8 ,"*8)+!(4  9*4 6 (4+)# *(6 ) %& "*)3" 4 63 )! )"*(4&!") *" 8*'83'*) 6
U+) !) " 23*)+!(4 +) "*)+5 '# +( ) -./ 8!6  , ) 23*)+!(4 8!(5 "9  ) 8*(9 +(
4& 8+ 4 %*44 ,"*8)+!(4  5!'3% )"+8 ,"*8)+!(4  9*4 6 (4+)# *(6 ) %& "*)3" 4 63 )! 8 %+8*'
" *8)+!(4 *" 8!%&3) 6 34+(9   ( ) 8*'83'*)+!( %!5 4 )! ) ( W) )+% 4) & (
!"6 " )! (43" "*&+6 8!(5 "9 (8  -./ *6*&)4 ) )+% 4) & 4$ !( 5 "# +) "*)+!(
X


START
Calculate change in mass fractions, gas
density and volumetric fraction using MFIX
t M = tM + tM
NO

NO

Yes

Is t I > Simulation Time ?

END

Is t M > t I + tI?

tI

Yes

Calculate change in mass fractions, gas


density and volumetric fraction using ISAT
t I = t I + tI

.+93" : # .'!U 8*") !, -./ U+)  ,!" VW 6 )+% 4) &


."!% (3% "+8*' 4)36+ 4   ) 6"*4)+8*''# 5*"#+(9 )+% 4) & +( -./ 8*34 6 &!!" & "
,!"%*(8 !,  +(8  6 ) "%+( 4 ) 1H K*4 6 K!) !( ) 6+4)*(8 +( )
8!%&!4+)+!( 4&*8 *(6 ) 6+0 " (8 +( ) )+% 4) &  * 5*"+*K' )+% 4) & +(  U+)
4+%+'*" %*44 ,"*8)+!(4  5!'3% )"+8 ,"*8)+!(4 *(6 ) %& "*)3" 4 U+'' &"!638 * ( U " 8!"6 !"
9"!U) +(4) *6 !, 3)+'+B +(9 ) '+( *" +() "&!'*)+!( &"!8 63"  ) *&& *"4 )*) * 2 .7 8!6
U+) * "*&+6'# 5*"#+(9 )+% 4) & ( 64 '!(9 " )+% *(6 %!" % %!"# )! K3+'6 *(6 4)!" )
 )*K'  H( &!44+K' " % 6# +4 )! 8*''  ,"!% -./ *) * VW 6 )+% 4) & 4$ 63"+(9
) 8*'83'*)+!( *4 4!U( +( .+9 : ) ) K 9+((+(9  $ +4 23*' )! $  +% 4) &4 +( -./
4$ ( 5*"# 63"+(9 ) 4+%3'*)+!( *(6  +4 !('# 8*'' 6 U ( ) )+% +( -./ *65*(8 4
'%!" )*( 4$   (   3&6*) 4 ) 6*)* 5 "# 4$  U+8 +4  '6 8!(4)*() 3()+' $ +4
9" *) " )*( $ 


 

 

    


   


 

  

  


;    
 >   
D
 &!&3'*)+!( K*'*(8 23*)+!(4 'J 1 ( ,!" ) &*")+8' 4+B 6+4)"+K3)+!( 'J7 ( U+) (3%K "
6 (4+)# ,3(8)+!( ' P ( $( 8*( K U"+)) ( +( ) "%4 !, !( +() "(*' 5*"+*K'  &*")+8' 4+B ' (9)
 *4 ,!''!U4 S #
 P ( $(
) -  P ( $(
$(
0(
' $
'
% & ' P( (
'
U " & ' P ( $( " &" 4 ()4 ) ( ) "*) !, +()"!638)+!( !, ( U &*")+8' 4 +()! ) 4#4) % ' 9
63 )! ) 8 %+8*' " *8)+!(  *99" 9*)+!( *(6 K" *M*9 ( *(6 +4 ) % *( 5 '!8+)#






 









 



8!(6+)+!( 6 !( ) &*")+8' ' (9)  # 6 V(+)+!(  % %  P +4 ) 4&*)+*'


8!!"6+(*) *(6 $ +4 ) )+% 
 4+(9 7G-H-  P ( $( 8*( K *&&"!W+%*) 6 +( ) "%4 !, * 43%%*)+!( !,  7+"*8
6 ')* ,3(8)+!(4 '&" 43%' 6 V(+)
 %!6 J7 (#


 



'



P ( $( % % 'P ( $(4 
'+

P $(
' ( (

'

0$ (

U " +4 )   !, ) 6 ')* ,3(8)+!( 8 () " 6 *) )         ,


12 '0$ ( +4 43K4)+)3) 6 +()! 12 '0( +) +4 &!44+K' )! 6 "+5 )"*(4&!") 23*)+!(4 ,!" ) 
U +9)4 *(6 )  8*"*8) "+4)+8 ' (9)4 
 &!&3'*)+!( K*'*(8 +( ) "%4 !, ) &" 43% 6 V(+)  %!6 J7 K 8!% 4 #


 

#
%4
' ;
'+


(   )
$

'

( ; % 4  ; (
'
'+


)
' $






U " 4 ' ; ( +4 ) V"4) 6 "+5*)+5 !, ) 7+"*8 6 ')* ,3(8)+!( 4 '


%*(+&3'*)+!(  12 '00 ( K 8!% 4 #


#
%4
' ;
+
'


U "

( ; % 4  ;
+ '
'


)
$

' $

()

'
-

'

( ;





(


* ( 00 (
% &' ( '


( *(6

*(
% &' ( (

'

0: (

0(
0S (
'
'

*,) " 4!%

;  ; @C =DB=C
-!% () )"*(4,!"%4 8*( K *&&'+ 6 )! 6 ) "%+( ) ,3(8)+!(*' ,!"%4 !, *(6 ,!" 4!'5+(9
) J 1  5 %!% () !, ) J7 +4 6 V( 6 *4 #
#
%

P ( $(
P ( $(
@
0X (
'
%
'
'




'+

+5 ( )*) #
4

' ;

4

' ;

4 

' ;

(
(
(


%;




(
% ' ;

 

'

0I (

) ( ) %!% () )"*(4,!"% !, 12 '0: ( #+ '64 #


#
%

U "

'+





' ;

( ) 

%& (

'

0L (

: (
 ,!"% !, 12 '0L ( 4!U4 ) 4!3"8 ) "%4 !, ) )"*(4&!") 23*)+!(4 !, )  U +9)4
*(6 8*"*8) "+4)+8 ' (9)4 *" 6 V( 6 )"!39 * '+( *" 4#4) % +(5!'5+(9 ) V"4) $ 
%!% ()4 !, ) &!&3'*)+!( K*'*(8 23*)+!( ' 9 % ( - - - ( $  ; (  +4 '+( *" 4#4) %
8*( K U"+)) ( +( %*)"+W ,!"% *4 #
:(
P %  (
'
U " ) $  $  8! A 8+ () %*)"+W %  + ,  +4 6 V( 6 K# #



@@@


@@@



,+
,
@
@
@
:$ (
+ %  ; 

;#
'



 , + 
 , + 
#
$ ' ;  ( + @ @ @ $ ' ;  ( ##
*(6



@@@


@@@



$
+
@
@
@
$
:0 (
, % 
 @
#
'





 , , 
 , , 
#
$  (
@ @ @ $  ;  ( ##
' ; +
'
:: (
P %  + - - - # + - - - #  %  (
'
:(
 % & - - - & , # +  @
'
,  %  ) J7 +4 " &" 4 () 6 K# !('# !( 6 ')* ,3(8)+!( *(6 +4 ) +6 ()+)# %*)"+W
 4!3"8 ) "%4 *" #
+
:S (
+ % &+ @
'
&
,  % $ ) J7 +4 6 48"+K 6 K# )U! 6 ')* ,3(8)+!(4  *(6
 
 
:X (
%  ; ,+ ; ,, $  + $  ,  @
'


,
,
; $
+ ; $ ,
0 + 0 ,

& %

&'

'

 


 


# +(5 ")+(9   U 8*( 9 ) ) 4!3"8 ) "% #


 +   0 + ; ,( ,,
0 ' + ) ,(
;S + ,
' + 0 ,( ,+
,
S
+
,
;, 0 ' + ) ,( ,
  ' ; , ,
,
,
; ':, + ) + , ) , , ( , $ ' + ,) + , ) , ,(
 +  %  $ , , +,
,
$
) + , ) : ,( , ;$ + ) + , ) ,(
; , +
' +
'



$ 
; + ; , 

+) ,
 
 && +  @ :I (
+ ,(  ,  '
' ;
& 
&

;$

;   = 
  =     

 %!% () )"*(4,!"% !, ) 4!3"8 ) "% !('# U+) *99" 9*)+!( *(6 K" *M*9 ') %!' 83'*"
9"!U) "*) +4 B "! ( X +4 #

$(
$( !  $( )  P ( $( ; !  P ( $( (
:L (
& 'P ( %  'P ( ; 'P (
 '
'
'
U "
 P $(  ( ) (  P $(

(
 % $
' (
' (  '


' (   (
'

!
P ( $(
(
$(
(
%
'
' (  ' P (  (
'

(
(
$(
$(
 %
' '  ' P (  (
'
!
(
$( (
0(
%
' ' P(
'
*" " 4& 8)+5 '# ) %!% ()4 !, ) K+") *(6 6 *) "*) 4 ,!" *99" 9*)+!( *(6 K" *M*9  
5*"+*K'  ' (  ( +4 ) *99" 9*)+!( M "( ' )*) +4 ) ," 23 (8# !, 8!''+4+!( !, )U! &*")+8' 4 U+)
' (9) *(6   ' ( +4 ) K" *M*9 M "( ' )*) +4 ) ," 23 (8# !, 6+4"3&)+!( !, * &*")+8'
!, ' (9)  *(6 '  ( +4 ) ,"*9% () 6+4)"+K3)+!( ,3(8)+!( )*) 8!()*+(4 +(,!"%*)+!( !(
) ,"*9% ()4 &"!638
6 K# * K" *M*9 5 ()
&&'#+(9 ) 23*6"*)3" *&&"!W+%*)+!( " &!") 6 +( 12 '0X ( ) 4!3"8 ) "% K 8!% 4 #
#
#
#
#

 %# %#

%
%
%
%

)
(
)
:(
& % $ +
+
'



; +
+

+ ; + ( '
'
'
'
'
'
'
U " 
%  ' (
( % ' ( *(6





 

 



'


 

' 

 *99" 9*)+!( *(6 K" *M*9 M "( ' 6 5 '!& 6 ,"!% M+( )+8 ) !"# *" 34 6  " #
+ ,
 0  + ,


,


)
(
)  (
S(
 '
%  

'


#
%

 

+ ,

 
      

+ ,


,
) (
)
(
'




'+
) 4388 44 ,*8)!"4 ,!" *99" 9*)+!(
 123*)+!(4 ' S ( *(6 ' X ( *443%

U "  *(6  *"


9"*(3'*" ) %& "*)3"
 

X(
*(6 K" *M*9 *(6  +4 ) *5 "*9
23*' 6 (4+)# +( ) 6 "+5*)+!(4


'

     

; ;    
D D
 @   
( !"6 " )! K 8!(4+4) () U+) ) 5*"+*K' 4 34 6 +( ) %3')+/ 3+6 %!6 '  ) U +9)4 *(6
*K48+44*4 *" *44!8+*) 6 U+) ) 4!'+6 5!'3% ,"*8)+!(  *(6 ) 0 8)+5 ' (9) 
,!" *8 4!'+6 &*4 I    5!'3% ,"*8)+!( !, *8 4!'+6 &*4 +4 " '*) 6 )! ) *K48+44*4
*(6 U +9)4 K# #
I(


 
, (
'
%
%
*(6 ) 0 8)+5 ' (9) !, ) 4!'+6 &*4 +4 #



L(
%  %  (
'

U "  +4 * 5!'3% )"+8 4*& ,*8)!" ' 9 ,!" 4& "+8*' &*")+8' 4  %   S ( *(6  % 
, 12 ' I ( *(6 12 ' L ( *" 43K4)+)3) 6 +()! ) )"*(4&!") 23*)+!( ,!"  *(6   )
,!''!U+(9 23*)+!(4 8*( K !K)*+( 6 #
 
(
S (
(%0  , ;$ 
@
'  $ ) - '
'
 
(
) - 
S(
' 
(%: 
;0   @
$
'
'
 V"4) )"*(4&!") 23*)+!( '12 'S (( " &" 4 ()4 ) 8!()+(3+)# 23*)+!( ,!" ) 5
4!'+6 &*4 +( ) &" 4 (8 !, *99" 9*)+!( *(6 K" *M*9  K3) U+)!3) %*44 )"*(4, " K )U (
9*4 *(6 4!'+64 123*)+!( 'S( +4
34) * ( U 48*'*" 23*)+!( ,!" &*")+8' ' (9) ,!" *8
4!'+6 &*4  !U 6 V(+(9 *(6 )! K ) 4!3"8 ) "%4 !, ) )"*(4&!") 23*)+!( ,!"
5!+6 ,"*8)+!(  *(6 8*"*8) "+4)+8 ' (9)  ) ( ) 4!3"8 ) "%4 8*( K " '*) 6 U+)
4!3"8 ) "%4 P K# #
S$ (
P % P
'
U "
S0 (
P %  + - - - # + - - - #  %  (
'
$















 


,
; $   + +

0
 + +







; $  # #




:  + +
% ; 0   + +


    




; 0  # #



(#
+
$  +
+ 0   + ,+  +
 
;
 + %
; 0   + + :   +
+  +


,  %  )

,  % $ ) (



; $   + +

$  , ,

;


; 0   + +

; 0   , ,


0 +

: +



,+

  + 
,
0   , ,   , 
  + 
+


:   , ,
,


S: (

'

S(

'

SS (

'


, 
# @



+ 
, 
 +  %



 #


 #

; ; ; 
 >A
 
 4!'3)+!( ) 8(+23 )*) U+'' K 8!6 6 +( -./ +4 4!U( *4 .+9  ,  $  *) )+%
$  ) +(+)+*' 8!(6+)+!(4 ,!" ) 5!+6 ,"*8)+!(4  + (  , *(6 &*")+8' ' (9)4% + ( , *"
9+5% ( +( ) %VW6*) V'  ."!% ) 4 +(+)+*' 5*'3 4  ) U +9)4 8*( K 8*'83'*) 6 ,"!%
12 I ( *(6 12 L (  !3"8 ) "%4 *" " '*) 6 U+) U +9)4 *(6 ' (9)4 K# ) %!6 '
,!" 8' %+8*' " *8)+!('  *99" 9*)+!( *(6 K" *M*9   4+(9 12 ':I ( ) 4!3"8 ) "%4 ,!" )
)"*(4&!") 23*)+!(4 ,!" U +9)4 *(6 U +9) 6 8*"*8) "+4)+8 ' (9)4 8*( K 4!'5 6  ( 34+(9
12 'SS ( +) +4 *4# )! 9 ) ) 4!3"8 ) "%4 ,!" ) )"*(4&!")*)+!( 23*)+!(4 ,!" 5!+6 ,"*8)+!(4
*(6 ' (9)4 4 '!(9 *4 U 9 ) ) 4!3"8 4 ) "%4 ,!" ) 4 )U! )"*(4&!")*)+!( 23*)+!(4 
U 8*( 34 -./ )! 4!'5 ) 4 )U! )"*(4&!") 23*)+!(4  ')"*(4&!")*)+!( 23*)+!( ,!" 5!+6
,"*8)+!( +4 *'" *6# +( ) 8!6  U ( 6 4!'5 )U! %!" 48*'*" )"*(4&!") 23*)+!( ,!" *8
' (9)(   ( 34+(9 12 I ( *(6 12 ' L ( ) &*")+8' ' (9)4 *(6 U +9)4 ,!" ) ( W)
)+% 4) & 8*( K 8*'83'*) 6'


0

.+93"

 4!'3)+!( ) 8(+23 34 6 +( -./

:

   
 J!&    LLX (  2 !%&3)*)+!(*''# A 8+ () +%&' % ()*)+!( !, 8!%K34)+!( 8 %+4)"#
34+(9 +( 4+)3'*6*&)+5 )*K3'*)+!(               : S0
$  .!W    H $ 0 (  2 !%&3)*)+!(*' -!6 '4 ,!" 3"K3' ()  *8)+(9 .'!U4    
  '  
0  J!&    $ (    4 " 4 3+6 *(6  , " (8 4 -*(3*'
'
:  #*%'*'  -   !9 "4  1  *(6 H "+ (   LL0 (  -./ 7!83% ()*)+!( #  !"# 3+6 
   
    '
  /+    *))*9'+*  . *(6 .!W    H $ : (  +%3'*)+!(4 !, %3')+&*4 " *8)+5 / !U4
+( / 3+6+B 6 K 64 34+(9 +( 4+)3 *6*&)+5 ' )*K3'*)+!(            
  L $ L
S   *(6!'&   7 *(6  *"4!(  -  LX (   !"# !, J*")+83'*) J"!8 44 4    
'
  
X  -*"8+4+!  7   *(6 .!W    H  !'3)+!( !, &!&3'*)+!( K*'*(8 23*)+!(4 34+(9 6+" 8)
23*6"*)3" % )!6 !, %!% ()4        ,       43K%+)) 6
I  .*(     -*"8+4+!  7   *(6 .!W    H $ : ( &&'+8*)+!( !, ) 6+" 8) 23*6"*)3"
' / 3+6+ B 6 K 64          
% )!6 !, %!% ()4 )! &!'#6+4& "4 9*4 4!'+6
X $ 





Appendix A
A.1

User Reference for ISAT and DQMOM

Input for ISAT

A.1.1 Keywords for input data file


The following are parameters set by the user to invoke ISAT calculations.
Keyword(dimension)
CALL_DI

Type

Variable to decide if chemical reactions are


solved using direct integration (DI) with ODE
solver.

Variable to decide if chemical reactions are


solved using ISAT.

Variable to decide if particle growth is


calculated.

DP

Time step for ISAT simulations (usually the


value is less than the average time step in
MFIX).

[F]
CALL_ISAT

Description

[F]
CALL_GROW
[F]
ISATdt

A.1.2 Algorithm for ISAT


If CALL_DI=.TRUE. or CALL_ISAT=.TRUE., MFIX uses DI or ISAT to calculate
the chemical reactions using the time-splitting method. The ODE solver used here is
ODEPACK. The user can download the files from the website (www.netlib.org/odepack)
and compile using the same compile option as other files of MFIX. Then ODEPACK
should be linked as a library in the make_mfix file.
The algorithm of MFIX using ODEPACK (CALL_DI = .TRUE.) is shown in Fig. 6. By
this call, the ODEs will be solved every ISATdt if provided, or every time step of MFIX
if ISATdt is not provided by DI.
If CALL_ISAT=.TRUE., user must provide the ISATAB library and link it in the
make_mfix file. Figure 7 shows the flow of MFIX using ISAT. The user must provide
ISATdt to keep the high performance of ISAT.
The following is a list of files for the chemical reaction calculations:
check_data_chem.f
mchem_mod.f
mchem_init.f
misat_table_init.f

Checks user input in mfix.dat


Defines the global variables.
Assigns the initial values.
Assigns the values for the controlling parameters for ISATAB
16

mchem_odepack_init.f
mchem_time_march.f
react.f
usrfg.f
exponential.f
dgpadm.f
calc_jacobian.f
fex.f
jac.f

(not needed if CALL_DI = .TRUE).


Assigns the values for controlling parameters for ODEPACK.
Interface between MFIX and ODE solver (assigns variables for
integration and transfers back the updated values).
Calculates the interface mass transfer, mass generations of gas
and solids phases and calls ODEPACK or ISATAB.
Called by ISATAB to provide the values of direct integration
and mapping matrix.
Provides the mapping matrix for ISATAB.
Called by exponential.f.
Provides the Jacobian matrix for jac.f and usrfg.f.
Provides the source terms for ODEPACK and source terms for
chemical reactions rates.
Provides the Jacobian matrix for ODEPACK.

The following is a list of files that are usually modified to include the chemical reactions
using ODE solver or ISAT:
mchem_mod.f
misat_table_init.f
mchem_odepack_init.f
fex.f

calc_jacobian.f
transport_prop.f
physical_prop.f

Sets the global variables.


Sets the controlling parameters for ISATAB.
Sets the controlling parameters for ODEPACK.
The subroutine provides the source terms for equations in the
ODE solver and source terms of reactions rates. The source
terms have the following order:
[g, Tg, Xg], [s1, Ts1, Xs1, d1], , [sm, Tsm, Xsm, dm].
If the variables are constant during the simulations, the source
terms should be set to zero. For example, for isothermal
chemical reactions, the source terms of Tg and Tsm are zero.
Provides the Jacobian matrix for ODE solver.
Provides transport properties.
Provides physical properties.

A.1.3 Example using ISAT


The non-isothermal silane pyrolysis in a fluidized bed (FB) is used as a benchmark case,
where detailed chemical reactions are considered. The FB reactor is fed with a mixture of
silane (SiH4) and nitrogen (N2). First, a reversible gas phase reaction occurs:
SiH4 SiH2 + H2 .
The highly reactive SiH2 undergoes a gas phase reaction to form Si2H6:
SiH2 + SiH4 Si2H6.
Then the heterogeneous decomposition of SiH4 and SiH2 on alumina (Al2O3) particles is
described by two irreversible reactions:
SiH4 Si(s) + 2H2,

17

SiH2 Si(s) + H2.


Thus there are five gaseous species and two solid species needed to describe this flow.
The following files are modified to simulate this case:
mchem_mod.f
misat_table_init.f
mchem_odepack_init.f
fex.f

Sets the global variables.


Controlling parameters for ISATAB are set.
Controlling parameters for ODEPACK are set.
The subroutine provides the source terms to ODE solver and
sources terms of reactions. For this case, the order of ODEs is
[g, Tg, XSiH4, XSiH2, XH2, XSi2H6, XN2], [s1, Ts1, XSi, XAl2O3, d1].
As written in the code, the user should provide the source terms
of reactions, which is RXN_source_g(n) for gas phase species n
and RXN_source_s(m,n) for solid phase m and species n. Then
the source terms of the ODEs are calculated. Note that N2 and
Al2O3 are inert species; therefore the source terms are set to
zero.

calc_jacobian.f

The subroutine provides the Jacobian matrix for ODE solver.


The example case uses the Jacobian matrix generated by
ADIFOR (g_derives.f). The ADIFOR can be downloaded from
the website (http://www-unix.mcs.anl.gov/autodiff/ADIFOR).
Provides the transport properties.
Provides the physical properties such as averaged molecular
weight.

transport_prop.f
physical_prop.f

18

Module files
mchem_mod.f
mchem_init.f
Nspec: number of ODEs
solved
Time_isat: starting time
used in isat calculation

Input Data File

MFIX Code

mfix.dat
Call_DI :flag to
determine if calling
ODEPACK
Call_ISAT: flag to
determine if calling
to ISAT subroutines
ISATdt: the time
step used in ISAT
calculation

Interface between MFIX


and ODE solver

ODE solver
react.f

mchem_time_march.f
Call_DI
= .TRUE.

Turn off the source terms


in continuity, species, and
energy equations of gas
and solids phases

MFIX to ODE solver:


mass fractions,
temperatures,
gas density, volumetric
fractions
ODE Solver to MFIX:
mass fractions, volumetric
fractions, temperatures,
gas pressure, mass transfer
between phases and mass
generation

sets control parameters for


ODEPACK in
mchem_odepack_init.f

ODEPACK

Provide the direct


integration (DI)
value

ODE Systems
fex.f
provide the reaction
rates and source
terms of ODEs
jac.f(calc_jacobian.f)
provide the jacobian
matrix

ADIFOR
Generate the
jacobian matrix

Figure 6: The flow chart of MFIX using ODEPACK (CALL_DI = .TRUE.).

19

Module Files
mchem_mod.f
mchem_init.f
ODEPACK

Nspec: number of ODEs


solved
Time_isat: starting time
used in isat calculation

Input Data File

MFIX Code

mfix.dat
Call_DI :flag to
determine if calling
ODEPACK
Call_ISAT: flag to
determine if calling
to isat subroutines
ISATdt: the time
step used in isat
calculation

Call_ISAT
= .TRUE.

Turn off the source terms


in continuity, species, and
energy equations of gas
and solids phases

Provide the direct


integration (DI)
value for ISAT
Interface between MFIX
and ODE solver
mchem_time_march.f
MFIX to ODE solver:
mass fractions,
temperatures,
gas density, volumetric
fractions
ODE Solver to MFIX:
mass fractions, volumetric
fractions, temperatures,
gas pressure, mass transfer
between phases and mass
generation

ODE solver
react.f
sets control parameters for
ISAT calculations, such as
scaled variables, error
tolerances in
misat_table_init.f

20

jac.f
calc_jacobian.f
provide the jacobian
matrix

Generate the
jacobian matrix
Mapping Matrix
exponential.f
dgpadm.f
Provide the
mapping matrix
for ISAT

Figure 7: The flow chart of MFIX using ISAT (CALL_ISAT = .TRUE.).

fex.f
provide the reaction
rates and source
terms

ADIFOR

ISAT
usrfg.f
sets control parameters for
ODEPACK in
mchem_odepack_init.f

ODE Systems

A.2 Input for DQMOM


A.2.1 Keywords for input data file
The following are the parameters set by the user to invoke DQMOM calculations.
Keyword

Type

CALL_DQMOM L

Description
Variable to decide if the population balance
equations are solved.

[F]
Nscalar

Number of solid phases to solve the population


balance equations.

D_P0(m)

DP

Aggregation_eff

DP

Initial particle diameters, same as the old one


D_P(m).
Success-factor for aggregation.

[0.0]
Breakage_eff

DP

Success-factor for breakage.

[0]

[0.0]

A.2.2 Algorithm for DQMOM


The new files added to MFIX are as follows:
odeint.f
rkck.f
rkqs.f
gaussj.f
source_population_eq.f

usr_dqmom.f

ODE solver using adaptive stepsize control for Runge-Kutta.


Called by odeint.f.
Called by odeint.f.
Provides matrix inversion.
Calculates the source term due to aggregation and breakage for
the population balance equations, the main subroutine for the
DQMOM method. If you want to use your own aggregation and
breakage kernel, you can change in this subroutine. The detail
explanation can be seen in the theory guide for the DQMOM
method.
Interface between DQMOM and MFIX (update solid void
fractions and particle diameter due to aggregation and
breakage).

The algorithm for the interface between MFIX and the DQMOM model flow is shown in
Fig. 8.

A.2.3 Example using DQMOM


21

The example case is a fluidized bed simulation with two solid phases; each has its own
particle size. In the code, the population balance equation is turned on. If aggregation
dominates, the average particle size will increase. If breakage dominates, the average
particle size will decrease. The user can turn off DQMOM by set Call_ DQMOM
=.FALSE.. The ODE solver for the scalar in the MFIX code solves the population
balance equation, so Nscalar has to be set as the number of solid phases. The initial
values for the scalar are set as the initial particle diameter. The aggregation and breakage
kernel from kinetic theory is used. The success factor of aggregation and breakage can be
changed by setting different values for Aggregation_eff and Breakage_eff. An
example mfix.dat file is included.

22

Input Data File


mfix.dat
Nscalar = M
D_p0(M)=?
IC_Scalar(IJK, M)=?
BC_Scalar(IJK,M)=?
Call_DQMOM = .T.

DQMOM
Usr_dqmom.f

Source_population_eq.f
ODE Solver

Update scalar due to


aggregation breakage
Update solid void
fraction due to
aggregation breakage

MFIX code
Change D_P(M) to
D_P(IJK,M)
D_P(IJK,M)=D_p0(M)

Phyical_prop.f
Update D_P by
the new value
from Scalar

Figure 8: Flow chart for using DQMOM with MFIX.

23

odeint.f
source_popul
ation_eq.f
rkck.f
rkqs.f

Calculate the source


term due to
aggregation
breakage
Source term:
CA-1S gaussj.f

Example mfix.dat
! !
! Run-control section
RUN_NAME
DESCRIPTION
RUN_TYPE
UNITS
TIME
TSTOP
DT

=
=
=
=
=
=
=

'Binary2'
'DQMOM Test Case'
'new'
'cgs'
0.0
10
1.0E-5

CLOSE_PACKED
= .TRUE. .TRUE.
ENERGY_EQ
= .FALSE.
SPECIES_EQ
= .F. .F. .F.
MAX_NIT=1000
DEF_COR =.TRUE.
CALL_DQMOM=.T.
DISCRETIZE
DISCRETIZE(9)

!start time
! stop time

!do not solve energy eq


!do not solve species eq

! solve population equation

=7*2
=2

! Geometry Section
COORDINATES
XLENGTH
IMAX
YLENGTH
JMAX
NO_K

=
=
=
=
=
=

'cartesian'
10.1
15
50.0
50
.TRUE.

!radius
!cells in i direction
!height
!cells in j direction
!2D, no k direction

! Gas-phase Section
MU_g0
MW_avg

= 1.8E-4
= 29.0

!constant gas viscosity

! Scalar section
Nscalar
phase4scalar(1)
phase4scalar(2)

= 2
= 1
= 2

! Solids-phase Section
MMAX
RO_s(1)
RO_s(2)
NMAX(1)
NMAX(2)
C_f
D_p0(1)
D_P0(2)

= 2
= 2.53d0
= 2.53d0
= 0
= 0
= 0.1
= 0.0164536d0
= 0.0408151d0

e
Phi
EP_star

! use scalar solver to solve PBE.

!solids density

!small particle diameter


!large particle diameter

= 0.80d0
!restitution coefficient
= 30.0
!angle of internal friction
= 0.376d0!void fraction at minimum fluidization

24

Segregation_slope_coefficient=2.0e+5
aggregation_eff
=0.001
breakage_eff
=0.0001
! Initial Conditions Section
! 1. bed
IC_X_w(1)
IC_X_e(1)
IC_Y_s(1)
IC_Y_n(1)
IC_EP_g(1)
IC_ROP_s(1,1)
IC_ROP_s(1,2)
IC_Scalar(1,1)
IC_Scalar(1,2)
IC_U_g(1)
IC_V_g(1)
IC_U_s(1,1)
IC_V_s(1,1)

=
=
=
=
=
=
=
=
=
=
=
=
=

0.0
10.1
0.0
15.9
0.37
0.6903
0.9036
0.0164536d0
0.0408151d0
0.0
@(20.0/0.37)
0.0
0.0

IC_U_s(1,2)
IC_V_s(1,2)

=
=

0.0
0.0

IC_P_g(1)
IC_T_g(1)
! 2. Freeboard
IC_X_w(2)
IC_X_e(2)
IC_Y_s(2)
IC_Y_n(2)

=1010000
=298
=
=
=
=

0.0
10.1
15.9
50

IC_EP_g(2)
IC_Scalar(2,1)
IC_Scalar(2,2)
IC_U_g(2)
IC_V_g(2)
IC_U_s(2,1)
IC_V_s(2,1)
IC_U_s(2,2)
IC_V_s(2,2)

=
=
=
=
=
=
=
=
=

1.0d0
0.0164536d0
0.0408151d0
0.0
20.0
0.0
0.0
0.0
0.0

!lower half of the domain


! 0 < x < 7, 0 < y < 50
!initial values in the region
!void fraction

!radial gas velocity


!axial gas velocity
!radial solids velocity
!axial solids velocity
!radial solids velocity

!upper half of the domain

IC_P_g(2)
=1010000
IC_T_g(2)
=
298
! Boundary Conditions Section
! 1. Distributor flow
BC_X_w(1)
= 0.0
BC_X_e(1)
= 10.1
BC_Y_s(1)
= 0.0
BC_Y_n(1)
= 0.0
BC_TYPE(1)

= 'MI'

BC_EP_g(1)
BC_U_g(1)

=
=

!gas distributor plate

!specified mass inflow

1.0
0.0

25

BC_V_g(1)
BC_P_g(1)
BC_T_g(1)
BC_Scalar(1,1)
BC_Scalar(1,2)

= 20.0
= 1010000
= 298
= 0
= 0

! 2. Exit
BC_X_w(2)
BC_X_e(2)
BC_Y_s(2)
BC_Y_n(2)
BC_TYPE(2)
BC_P_g(2)
BC_T_g(2)
BC_Scalar(2,1)
BC_scalar(2,2)
!
!
!

=
=
=
=

0.0
10.1
50
50

=
=
=
=
=

'PO'
1010000
298
0
0

!top exit

!specified pressure outflow

Output Control
OUT_DT
RES_DT

= 10.
= 0.01

!write text file BUB02.OUT every 10 s


!write binary restart file
!BUB02.RES every 0.01 s
= 25
!write logfile BUB02.LOG
!every 25 time steps
= .TRUE. !display residuals on screen

NLOG
FULL_LOG

!SPX_DT values determine how often SPx files are written. Here
!BUB02.SP1, which contains void fraction (EP_g), is written every
!0.01s, BUB02.SP2, which contains gas and solids pressure (P_g,
!P_star), is written every 0.1 s, and so forth.
SPX_DT = 0.1 0.1

0.1

0.1

0.1

100. 100.

Sweep Direction
LEQ_SWEEP(1)
LEQ_SWEEP(2)
LEQ_SWEEP(3)
LEQ_SWEEP(4)
LEQ_SWEEP(5)
LEQ_SWEEP(6)
LEQ_SWEEP(7)
LEQ_SWEEP(8)
LEQ_SWEEP(9)

=
=
=
=
=
=
=
=
=

'ISIS'
'ISIS'
'ISIS'
'ISIS'
'ISIS'
'ISIS'
'ISIS'
'ISIS'
'ISIS'

NODESI=1 NODESJ=1 NODESK=1

26

0.1

0.1

Vous aimerez peut-être aussi