Solver for drift-diffusion and Poisson equations

101 views
Skip to first unread message

heikki

unread,
Aug 6, 2013, 9:20:12 AM8/6/13
to dea...@googlegroups.com
Hi, I try to solve Poisson and drift-diffusion equations which characterize carrier dynamics in semiconductors. I should solve these equations in steady-state, where time derivatives vanish. Thus, I have

div( a * grad ( phi (x,y) ) ) + n (x,y) - p (x,y) - k1 (x,y) = 0
- div J_n (x,y) + k2 (u,n,p) = 0
div J_p (x,y) + k2 (u,n,p) = 0

where J_n = - mu_n (x,y) n (x,y) grad ( phi (x,y) ) + D_n (x,y) grad ( n (x,y) ) and
J_p = - mu_p (x,y) p (x,y) grad ( phi (x,y) ) - D_p (x,y) grad ( p(x,y) )

Using quasi Fermi level variables, assuming that Einstein's relation holds and applying boundary conditions ( homogeneous Dirichlet and Neumann conditions ), I get weak forms

int grad( u ) grad ( phi ) + ( exp ( u - v ) - exp ( w - u ) ) phi dx = 0
int mu_n exp ( u-v )  grad ( v ) grad ( psi ) - k2 psi dx = 0
int mu_p exp ( w-u ) grad ( w ) grad ( gamma ) - k2 gamma dx = 0

where I should find (u,v,w) for all (phi,psi,gamma). Now this can be solved applying Newton's method to
the equations, assuming certain initial guesses for u,v,w. But, this sounds a quite time consuming, because
we have 3N non-linear equations. Have somebody applied deal.II to this kind of problem? Is there
other approaches to solve this kind of problem?

Wolfgang Bangerth

unread,
Aug 13, 2013, 3:58:35 PM8/13/13
to dea...@googlegroups.com, heikki

> Using quasi Fermi level variables, assuming that Einstein's relation holds and
> applying boundary conditions ( homogeneous Dirichlet and Neumann conditions ),
> I get weak forms
>
> int grad( u ) grad ( phi ) + ( exp ( u - v ) - exp ( w - u ) ) phi dx = 0
> int mu_n exp ( u-v ) grad ( v ) grad ( psi ) - k2 psi dx = 0
> int mu_p exp ( w-u ) grad ( w ) grad ( gamma ) - k2 gamma dx = 0
>
> where I should find (u,v,w) for all (phi,psi,gamma). Now this can be solved
> applying Newton's method to
> the equations, assuming certain initial guesses for u,v,w. But, this sounds a
> quite time consuming, because
> we have 3N non-linear equations. Have somebody applied deal.II to this kind of
> problem? Is there
> other approaches to solve this kind of problem?

Do you mean time-consuming from the point of implementing it, or from the
point of running it?

Your weak form is not too complicated (just 6 terms), so I'd expect that you
can without too much effort write down the Jacobian to form the Newton system.
You'd get a 3x3 block system (which you can just treat as one large matrix and
throw into a direct solver such as SparseDirectUMFPACK at first).

I would give it a try :-) (Feel inspired by step-15.)

The alternative is to use a fixed point iteration: freeze all of the exp(.-.)
terms at the previous solution, upon which you get a linear system that you
can solve as usual. Then iterate. That would be simpler to implement but will
likely require more iterations to converge.

Cheers
W.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/

Reply all
Reply to author
Forward
0 new messages