[petsc-users] how to set the newton trust region size

Barry Smith bsmith at mcs.anl.gov
Tue May 19 15:59:48 CDT 2015


  Yeah, setting the initial trust region from ||f|| is nuts. I have changed the code in master to set it based on ||x|| in the master development branch http://www.mcs.anl.gov/petsc/developers/index.html.  If you use a -snes_tr_delta0 .1 then it will limit the update to 10% as measured in the 2 norm. I am not sure the trust region algorithms make sense using the max norm.  

   So now the initial size should be much more reasonable. Please let us know if this does not help.

  Barry

It will still be valuable for you to non-dimensionalize your variables.




> On May 15, 2015, at 6:37 PM, Mark Lohry <mlohry at princeton.edu> wrote:
> 
> I'm having an issue with SNES where the regular newton line search severely overshoots the solution update, ending up with irrecoverable values (negative densities and temperatures in a fluids code), so it seems newtonTR is a better way to go.
> 
> the manual says to set delta0 using -snes_tr_delta0, where the trust region radius is delta = delta0 * norm2( F ). My F values aren't well scaled and have pretty different values so norm2 of the whole thing isn't particularly meaningful. Ideally I'd like to tell SNES to limit the update to say, 10% of the current value of any given unknown. Is this possible?



More information about the petsc-users mailing list