front

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Usage > Mesh_Control >

front

Previous pageReturn to chapter overviewNext page

{ FRONT.PDE

 

 This example demonstrates the use of the FRONT statement

 to create a dense mesh at a moving front.

 

 The FRONT command is used to force mesh refinement wherever the

 concentration variable passes through a value of 0.5.

 

 The problem is the same as CHEMBURN.PDE.

 

}

 

title

'FRONT statement in Chemical Reactor'

 

select

  painted     { make color-filled contour plots }

 

variables

 Temp (threshold=1)

 C (threshold=1)

 

definitions

 Lz = 1

 r1=1

 heat=0

 gamma = 16

 beta = 0.2

 betap = 0.3

 BI = 1

 T0 = 1

 TW = 0.92

{ the very nasty reaction rate: }

 RC = (1-C)*exp(gamma-gamma/Temp)  

 xev=0.96   { some plot points }

 yev=0.25

 

initial value

 Temp=T0

 C=0

 

equations

 Temp:  div(grad(Temp)) + heat + betap*RC = dt(Temp)

 C:  div(grad(C)) + beta*RC = dt(C)

 

boundaries

region 1

  start (0,0)

         

  { a mirror plane on X-axis }

  natural(Temp) = 0

  natural(C) = 0

  line to (r1,0)      

 

  { "Strip Heater" at fixed temperature }

  { ramp the boundary temp in time, because  discontinuity is costly to diffuse }  

  value(Temp)=T0 + 0.2*uramp(t,t-0.05)                                    

  natural(C)=0               { no mass flow on strip heater }

  arc(center=0,0) angle 5      

 

  { convective cooling and no mass flow on outer arc }

  natural(Temp)=BI*(TW-Temp)  

  natural(C)=0                

  arc(center=0,0) angle 85    

     

  { a mirror plane on Y-axis }

  natural(Temp) = 0

  natural(C) = 0

  line to (0,0) to close    

 

time 0 to 1

 

{ FORCE CELLS TO SPAN NO MORE THAN 0.1 ACROSS C=0.5 }

front(C-0.5, 0.1)  

 

plots

for cycle=10                 { watch the fast events by cycle }

  grid(x,y)

  contour(Temp)

  contour(C) as "Completion"

 

for t= 0.2 by 0.05 to 0.3       { show some surfaces during burn }

  surface(Temp)

  surface(C) as "Completion"

 

histories

history(Temp,C) at (0,0) (xev/2,yev/2) (xev,yev) (yev/2,xev/2) (yev,xev)

 

end