[petsc-users] non linear solver options

Dharmendar Reddy dharmareddy84 at gmail.com
Sat Jan 18 17:59:33 CST 2014


On Sat, Jan 18, 2014 at 3:54 PM, Karl Rupp <rupp at mcs.anl.gov> wrote:
> Hi,
>
>
>
>>                   I am solving a set of equations with SNES
>>
>> F1 (x1,x2,x3) = 0
>> F2 (x1,x2,x3) = 0
>> F3 (x1,x2,x3) = 0
>>
>> The system of equations is shown on page 1 of pdf here
>> http://dunham.ee.washington.edu/ee531/notes/SemiRev.pdf
>>
>> F1 = equation 1
>> F2 = equation 2
>> F3 = equation 5
>>
>> x1 = n, X2=p and X3 = psi,
>> X1 and X2 have an exponential dependance on X1
>> after i scale the variables, X3 typically varies between say +/- 100
>> where as X1 and X2 vary between 0 to 2. norm(X) then may usually
>> dominated by solution values of X3.
>
>
> If you are solving the drift-diffusion system for semiconductors, which
> discretization do you use? How did you stabilize the strong advection?
>
>

My plan is to use the discretization method described here.
(http://www.iue.tuwien.ac.at/phd/triebl/node30.html ).

The method typically used for for stabilizing the advection term is
called Scharfetter-Gummel method described the above link.

When i intially started the code design, i wanted to implement the
approach mentioned  in this paper (dx.doi.org/10.2172/1020517) . I am
still learning about this things so..i am not sure which is the right
way to go.

For stabilizing, i implemented the bank n rose algorithm via
SNESPostCheck, i am yet to test the efficacy of this method over the
defualt snes methods.
(http://www.iue.tuwien.ac.at/phd/ceric/node17.html)



>
>> Can you suggest me the snes options that i need to use to achieve the
>> following:
>>
>> 1. X1 > 0 and X2 > 0  (as per previous emails, i can use
>> SNESSetVariableBounds)
>
>
> Have you considered a transformation to quasi-fermi potentials, i.e.
>  n ~ exp(phi_n), p ~ exp(phi_p)
> or Slotboom variables? This way you could get rid of the constraint
> entirely. Even if you solve for (n,p,psi), my experience is that positivity
> is preserved automatically when using a good discretization and step size
> control.
>
>
>
>> 2. I want the updates to solution to have an adaptive stepping based
>> on norm of (F) or norm(X). If norm(F) is decreasing as the iteration
>> progresss, larger stepping others wise reduce the step size..
>> Similarly for Norm of X.
>
>
> A good damping for the drift-diffusion system is tricky. I know a couple of
> empirical expressions, but would be interested to know whether this can be
> handled in a more black-box manner as well.
>
> Best regards,
> Karli
>


More information about the petsc-users mailing list