contaminant_transport

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Applications > Fluids >

contaminant_transport

Previous pageReturn to chapter overviewNext page

{ CONTAMINANT_TRANSPORT.PDE

 

 This example shows the use of sequenced equations in the calculation of steady-state

 contaminant transport  in which the fluid properties are independent of the contaminant

 concentration.

 

 Fluid equations are solved first on each grid refinement, then the contaminant

 concentration is updated.

 

 The problem is a modification of the example CHANNEL.PDE.

 

}

title 'Contaminant transport in 2D channel'

select

  errlim = 0.005

  ngrid = 40

variables

  u(0.1)

  v(0.01)

  p(1)

  c(0.01)

definitions

  Lx = 5       Ly = 1.5

  p0 = 2

  speed2 = u^2+v^2

  speed = sqrt(speed2)

  dens = 1

  visc = 0.04

  vxx = -(p0/(2*visc*(2*Lx)))*y^2   { open-channel x-velocity with drag at the bottom }

  rball=0.4

  cut = 0.1   { value for bevel at the corners of the obstruction }

  penalty = 100*visc/rball^2

  Re = globalmax(speed)*(Ly/2)/(visc/dens)

  Kc = 0.01   { contaminant diffusivity }

initial values

  u =  vxx   v=0  p = p0*x/Lx

equations

  u:  visc*div(grad(u)) - dx(p) = dens*(u*dx(u) + v*dy(u))

  v:  visc*div(grad(v)) - dy(p) = dens*(u*dx(v) + v*dy(v))

  p:  div(grad(p)) = penalty*(dx(u)+dy(v))

then

  c:  u*dx(c) + v*dy(c) = div(Kc*grad(c))

boundaries

  region 1

    start(-Lx,0)

    value(u) = 0   value(v) = 0   load(p) = 0 natural(c)=0

      line to (Lx/2-rball,0)

            to (Lx/2-rball,rball) bevel(cut)

            to (Lx/2+rball,rball) bevel(cut)

            to (Lx/2+rball,0)

            to (Lx,0)

    mesh_spacing=Ly/20

    load(u) = 0 value(v) = 0 value(p) = p0 value(c) = Upulse(y,y-Ly/3)

      line to (Lx,Ly)

    mesh_spacing = 100

    load(p) = 0 natural(c)=0

      line to (-Lx,Ly)

    value(p) = 0

      line to close

monitors

    contour(speed)

    contour(c)

plots

  contour(c) report(Re)

  contour(u) report(Re)

  contour(v) report(Re)

  contour(speed) painted report(Re)

  vector(u,v) as "flow"   report(Re)

  contour(p) as "Pressure" painted

  contour(dx(u)+dy(v)) as "Continuity Error"

  elevation(u) from (-Lx,0) to (-Lx,Ly)

  elevation(u) from (0,0)   to (0,Ly)

  elevation(u) from (Lx/2,0)to (Lx/2,Ly)

  elevation(u) from (Lx,0) to (Lx,Ly)

end