3d_Flowbox

Top  Previous  Next

3d_flowbox00     3d_flowbox13

{

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

     surface 1 natural(vx)=0  natural(vy)=0  natural(vz)=0 value(p)=Pin  { input duct opening }

      start(xin,yin-rc)

            layer 1   value(vx)=0  value(vy)=0  value(vz)=0 natural(p)=0    { duct sidewall drag }

       arc(center=xin,yin) angle=360

 

   limited Region 3            { exit hole }

     layer 3

    surface 4 natural(vx)=0  natural(vy)=0  natural(vz)=0 value(p)=Pout  { output duct opening }

     start(xout,yout-rc)

            layer 3   value(vx)=0  value(vy)=0  value(vz)=0 natural(p)=0    { duct sidewall drag }

       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