<< Click to Display Table of Contents >> contaminant_transport |
{ 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