[petsc-users] How to solve nonlinear F(x) = b(x)?
Oxberry, Geoffrey Malcolm
oxberry1 at llnl.gov
Mon Aug 8 16:33:56 CDT 2016
On Aug 8, 2016, at 2:23 PM, Neiferd, David John <david.neiferd at wright.edu<mailto:david.neiferd at wright.edu>> wrote:
Thanks for the suggestions Geoff and Dave. Using G(x) = F(x) - b(x) = 0, will required redefinition of the Jacobian correct? If I understand correctly, the Jacobian is the derivative of F(x) with respect to x. Since we are redefining F(x) to G(x), it would be necessary to change the Jacobian from dF(x)/dx to dF(x)/dx - db(x)/dx, correct?
Yes.
Also, I noticed when I implemented G(x) = F(x) - b = 0 (where b is constant) the method seems less robust when using newton's method with a line search, at least for one particular problem, the line search (using default settings) diverges (converged reason = -6), but using a trust region newton method or a quasi-newton method it converges to the answer.
I would start with the suggestions in http://www.mcs.anl.gov/petsc/documentation/faq.html#newton first before doing any more tuning. In optimization, trust region solvers have a reputation of being more robust, but slower, than comparable line search methods; I’m not sure if this statement is true for general equation solving.
Geoff
________________________________
From: Oxberry, Geoffrey Malcolm <oxberry1 at llnl.gov<mailto:oxberry1 at llnl.gov>>
Sent: Monday, August 8, 2016 4:20:27 PM
To: Neiferd, David John
Cc: petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>
Subject: Re: [petsc-users] How to solve nonlinear F(x) = b(x)?
David,
What about solving G(x) = F(x) - b(x) = 0?
Geoff
On Aug 8, 2016, at 1:12 PM, Neiferd, David John <david.neiferd at wright.edu<mailto:david.neiferd at wright.edu>> wrote:
Hello all,
I've been searching through the PETSc documentation to try to find how to solve a nonlinear system where the right hand side (b) varies as a function of the state variables (x). According to the PETSc documentation, SNES solves the equations F(x) = b where b is a constant vector. What would I do to solve F(x) = b(x)? An example of this would be a nonlinear thermoelastic structure where as the structure deforms the direction of the loads generated by the thermal expansion changes as well. Any insight into how to implement this is appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160808/6e49b729/attachment-0001.html>
More information about the petsc-users
mailing list