[petsc-dev] nonlinear solvers

Barry Smith bsmith at mcs.anl.gov
Sat Jan 18 18:09:05 CST 2014


  Peter,

   What the hay is this R. E. Bank and D. J. Rose, ``Global Approximate Newton Methods,'' Numer. Math., vol. 37, pp. 279-295, 1981. and should it be a “line search” or something in SNES?

   Thanks

   Barry


On Jan 18, 2014, at 5:59 PM, Dharmendar Reddy <dharmareddy84 at gmail.com> wrote:

> 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-dev mailing list