|
Diffusion |
Top Previous Next |
|
{ DIFFUSION.PDE ****************************************************** This problem considers the thermally driven diffusion of a dopant into a solid from a constant source. Parameters have been chosen to be those typically encountered in semiconductor diffusion.
surface concentration = 1.8e20 atoms/cm**2 diffusion coefficient = 3.0e-15 cm**2/sec
The natural tendency in this type of problem is to close off with zero concentration in the material, and a fixed value on the boundary. This implies an infinite curvature at the boundary, and an infinite transport velocity of the diffusing particles. It also generates over-shoot in the solution, because the Finite-Element Method tries to fit a step function with quadratics.
A better formulation is to program a large input flux, representative of the rate at which dopant can actually cross the boundary, (or approximately the molecular velocity times the concentration deficiency at the boundary).
Here we use a masked source, in order to generate a 2-dimensional pattern. This causes the result to lag a bit behind the analytical Plane-diffusion result at late times.
********************************************************* }
title 'Masked Diffusion'
variables u(threshold=0.1)
definitions concs = 1.8e8 { surface concentration atom/micron**3} D = 1.1e-2 { diffusivity micron**2/hr} conc = concs*u cexact1d = concs*erfc(x/(2*sqrt(D*t))) uexact1d = erfc(x/(2*sqrt(D*t))) { masked surface flux multiplier } M = 10*upulse(y-0.3,y-0.7)
initial values u = 0
equations div(D*grad(u)) = dt(u)
boundaries region 1 start(0,0) natural(u) = 0 line to (1,0) natural(u) = 0 line to (1,1) natural(u) = 0 line to (0,1) natural(u) = M*(1-u) line to close
feature { a "gridding feature" to help localize the activity } start (0.02,0.3) line to (0.02,0.7)
time 0 to 1 by 0.001
plots for t=1e-5 1e-4 1e-3 1e-2 0.05 by 0.05 to 0.2 by 0.1 to endtime contour(u) elevation(u,uexact1d) from (0,0.5) to (1,0.5) elevation(u-uexact1d) from (0,0.5) to (1,0.5)
histories history(u) at (0.05,0.5) (0.1,0.5) (0.15,0.5) (0.2,0.5)
end |