# [Getdp] Semiconductors and Poisson equation

michael.asam at infineon.com michael.asam at infineon.com
Wed Feb 22 14:15:53 CET 2012

```Hi Thomas,

it seems that there are some JacNL terms missing. You have to apply the Newton-Raphson algorithm
to all three PDEs. You need the derivative of each one with respect to each Dof (v, psin, psip).

Please have a look at the attached pdf, where I describe how to do it for a strong coupled
electro-thermal problem with Newton-Raphson. (It's still a draft. Please let me know if you
find some errors :-)

I'm also dealing with an exponential problem. Therefore I know, that convergence is quite difficult.
Picard method works only for convex problems which is not the case in my problem.
Newton-Raphson methods works fine but it really needs a good initial guess, close to the real solution.
Otherwise during iteration there might be an overshoot and the exponential function delivers
extremely high values which make it difficult to handle it numerically.
Therefore it's a good idea to limit the functions (in a continuous and smooth way!) to some high
values which can still be handled numerically more or less accurate.

I hope this is of some help.

When I have a bit more time then I'll make a Wiki entry on how to use Newton-Raphson with GetDP.

Kind regards,
Michael

-----Original Message-----
From: getdp-bounces at ace20.montefiore.ulg.ac.be [mailto:getdp-bounces at ace20.montefiore.ulg.ac.be] On Behalf Of Thomas Dufaux
Sent: Wednesday, February 22, 2012 12:48 PM
To: getdp at geuz.org
Subject: [Getdp] Semiconductors and Poisson equation

Hello,

I am trying to calculate the charge carrier distribution in a silicon PN-junction. Therefore I have to solve the following coupled equations:

Div eps Grad v = -rho = n - p + Na - Nd
Div mu_e*n Grad psi_n = 0
Div mu_h*p Grad psi_p = 0

In getdp I used the Newton Raphson method, as n[] & p[] are not linear:

Galerkin { [ epsr * {Grad v} , {Grad v} ]; In Vol; Jacobian Vol; Integration Int; }

Galerkin { JacNL[  dp[{psip}-Ev-{v}]*Dof{v} , {v} ]; In Vol; Jacobian Vol; Integration Int; }
Galerkin { JacNL[ -dn[{psin}-Ec-{v}]*Dof{v} , {v} ]; In Vol; Jacobian Vol; Integration Int; }

Galerkin { [  p[{psip}-Ev-{v}] , {v} ]; In Vol; Jacobian Vol; Integration Int; }
Galerkin { [ -n[{psin}-Ec-{v}] , {v} ]; In Vol; Jacobian Vol; Integration Int; }

Galerkin { [  N_D[] - N_A[] , {v} ]; In Vol; Jacobian Vol; Integration Int; }

Galerkin { [ mu_e*n[{psin}-Ec-{v}] * Dof{Grad psin} , {Grad psin} ]; In Vol; Jacobian Vol; Integration Int; }
Galerkin { [ mu_h*p[{psip}-Ev-{v}] * Dof{Grad psip} , {Grad psip} ]; In Vol; Jacobian Vol; Integration Int; }

When I try to solve these equations the first iterations look good, but then the potential v becomes very large and the solution does not converge any more or gives no reasonable results.

To me it looks like there is a problem in the Poisson equation. A possible explanation could be wrong parameters (mu_e, epsr ...) or signs, but I have checked them carefully and when I put in values manually the results are correct.

As I am not so familiar with getdp, could it be that I made an error in the formulation of the Galerkin terms? Did I place the Dof correct? Could it be that the exponential behaviour of the n[{v}] and p[{v}] terms make it difficult to solve the problem, as small variations in the potential v can lead to significant changes in the carrier density? Are there any further possibilities to enhance the convergence? I previously already tried the Picard method, but the results were worse.

Thomas

_______________________________________________
getdp mailing list
getdp at geuz.org
http://www.geuz.org/mailman/listinfo/getdp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Electrothermal Simulation with_Newton's Method M12 - Draft.pdf
Type: application/pdf
Size: 61560 bytes
Desc: Electrothermal Simulation with_Newton's Method M12 - Draft.pdf
URL: <http://www.geuz.org/pipermail/getdp/attachments/20120222/48ee4c72/attachment.pdf>
```