{ 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
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 }
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
Page url: index.html?applications_fluids_contaminant_transport.html