[petsc-users] How to solve nonlinear F(x) = b(x)?

Neiferd, David John david.neiferd at wright.edu
Mon Aug 8 16:23:15 CDT 2016


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?


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.

________________________________
From: Oxberry, Geoffrey Malcolm <oxberry1 at llnl.gov>
Sent: Monday, August 8, 2016 4:20:27 PM
To: Neiferd, David John
Cc: 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/fd9ac526/attachment.html>


More information about the petsc-users mailing list