Navigation:  Sample Problems > applications > fluids >

3d_flowbox

Print this Topic Previous pageReturn to chapter overviewNext page

{  3D_FLOWBOX.PDE

 

 This problem demonstrates the use of FlexPDE in 3D fluid flow.  It shows the flow of

 fluid through a plenum box with a circular inlet at the bottom and an offset circular

 outlet at the top. The inlet pressure is arbitrarily set at 0.05 units.

 The problem runs in two stages, first as a massless fluid to get an initial pressure and

 velocity distribution in a linear system, and then with momentum terms included.

 Adaptive mesh refinement is turned off for speed in demonstration.  In a real application,

 regridding could be used to better resolve the flow past the corners of the ducts.

 The solution uses a "penalty pressure", in which the pressure variable is used merely

 to guarantee mass conservation.

}

 

title '3D flow through a plenum'

 

coordinates

 cartesian3

 

variables

 vx(1e-6) vy(1e-6) vz(1e-6) p

 

select

 ngrid=20

 stages=2

 regrid=off

 

definitions

 long = 2

 wide = 1

 high = 1/2

 xin = -1   yin = 0

 xout = 1   yout = 0

 rc = 0.5

 duct = 0.2

 

 dens=staged(0,1) { fluid density }

 visc= 0.01       { fluid viscosity }

 v=vector(vx,vy,vz)

 vm=magnitude(v)

 

 div_v = dx(vx) + dy(vy) + dz(vz)

 

 PENALTY = 1e4*visc/high^2

 

 Pin = 0.05

 Pout = 0

 

initial values

 vx=0

 vy=0

 vz=0  

 p=Pin+(Pout-Pin)*(z+high+duct)/(2*high+2*duct)

 

equations

 vx:   dens*(vx*dx(vx) + vy*dy(vx) + vz*dz(vx)) + dx(p) -visc*div(grad(vx)) = 0

 vy:   dens*(vx*dx(vy) + vy*dy(vy) + vz*dz(vy)) + dy(p) -visc*div(grad(vy)) = 0

 vz:   dens*(vx*dx(vz) + vy*dy(vz) + vz*dz(vz)) + dz(p) -visc*div(grad(vz)) = 0

 p:    div(grad(p)) = PENALTY*div_v

 

extrusion z = -high-duct,-high,high,high+duct

 

boundaries

 

  Region 1   { plenum box }

      surface 2 value(vx)=0 value(vy)=0 value(vz)=0 natural(p)=0

      surface 3 value(vx)=0 value(vy)=0 value(vz)=0 natural(p)=0

      layer 1 void

      layer 3 void

      start(-long,-wide)

          value(vx)=0 value(vy)=0 value(vz)=0 natural(p)=0 { fix all side values }

        line to (long,-wide)

          to (long,wide)

          to (-long,wide)

          to close

 

  limited Region 2   { input hole }

    layer 1

    { input duct opening: }

    surface 1 natural(vx)=0 natural(vy)=0 natural(vz)=0 value(p)=Pin  

    start(xin,yin-rc)

        { duct sidewall drag: }

        layer 1   value(vx)=0 value(vy)=0 value(vz)=0 natural(p)=0  

      arc(center=xin,yin) angle=360

 

  limited Region 3   { exit hole }

    layer 3

    { output duct opening: }

    surface 4 natural(vx)=0 natural(vy)=0 natural(vz)=0 value(p)=Pout  

    start(xout,yout-rc)

        { duct sidewall drag: }

        layer 3   value(vx)=0 value(vy)=0 value(vz)=0 natural(p)=0    

      arc(center=xout,yout) angle=360

 

 

monitors

  contour(vx) on x=0 report dens report pin

  contour(vx) on y=0 report dens report pin

  contour(vz) on y=0 report dens report pin

  vector(vx,vz)on y=0 report dens report pin

  contour(vx) on z=0 report dens report pin

  contour(vy) on z=0 report dens report pin

  contour(vz) on z=0 report dens report pin

  vector(vx,vy)on z=0 report dens report pin

  contour(p)   on y=0 report dens report pin

 

plots

  contour(vx) on x=0 report dens report pin

  contour(vx) on y=0 report dens report pin

  contour(vz) on y=0 report dens report pin

  vector(vx,vz)on y=0 report dens report pin

  contour(vx) on z=0 report dens report pin

  contour(vy) on z=0 report dens report pin

  contour(vz) on z=0 report dens report pin

  vector(vx,vy)on z=0 report dens report pin

  contour(p)   on y=0 report dens report pin

 

end

 


Page url: index.html?applications_fluids_3d_flowbox.html