On Aug 8, 2016, at 2:23 PM, Neiferd, David John 
<david.neif...@wright.edu<mailto:david.neif...@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 <oxber...@llnl.gov<mailto:oxber...@llnl.gov>>
Sent: Monday, August 8, 2016 4:20:27 PM
To: Neiferd, David John
Cc: petsc-users@mcs.anl.gov<mailto:petsc-users@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.neif...@wright.edu<mailto:david.neif...@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.

Reply via email to