[petsc-users] SNESSetConvergenceTest usage?

Barry Smith bsmith at mcs.anl.gov
Wed Oct 7 17:35:29 CDT 2015


> On Oct 7, 2015, at 5:28 PM, William Coirier <William.Coirier at kratosdefense.com> wrote:
> 
> Thank you Barry. This explains the behavior.
> 
> Maybe I should try a different search strategy? Perhaps newtontr?

   You can. But a failed line search is usually an indication of a bad Jacobian or not an accurate enough linear solve. http://www.mcs.anl.gov/petsc/documentation/faq.html#newton has many suggestions on how to debug failed convergence of Newton

  Barry

> 
> Thanks for your help.
> 
> -----------------------------------------------------------------------
> William J. Coirier, Ph.D.
> Director, Aerosciences and Engineering Analysis
> Advanced Technology Division
> Kratos/Digital Fusion, Inc.
> 4904 Research Drive
> Huntsville, AL 35805
> 256-327-8170
> 256-327-8120 (fax)
> 
> 
> -----Original Message-----
> From: Barry Smith [mailto:bsmith at mcs.anl.gov] 
> Sent: Wednesday, October 07, 2015 5:22 PM
> To: William Coirier
> Cc: petsc-users at mcs.anl.gov
> Subject: Re: [petsc-users] SNESSetConvergenceTest usage?
> 
> 
>> On Oct 7, 2015, at 5:12 PM, William Coirier <William.Coirier at kratosdefense.com> wrote:
>> 
>> Without going into too many details regarding the application, here is a problem I’ve encountered and wonder if anyone has any suggestions.
>> 
>> I have supplied a convergence test function for SNES using the 
>> SNESSetConvergenceTest API. My convergence test function sets the 
>> SNESConvergedReason variable referenced in the argument list to a 
>> handful of SNESConvergedReasons (and does other stuff, but that is not 
>> relevant…)
>> 
>> In my application code, after I call SNESSolve, I call SNESGetConvergedReason, and for some reason I will occasionally see SNESConvergedReasons that are NOT in the subset of those I supply with my convergence test function.
>> 
>> It’s as if my test function setting of the converged reason is either being overwritten, or ignored.
>> 
>> As an example, I’m using the newtonls (default) scheme, and (an inexact, but workable) Jacobian. My test function only will set SNESConvergedReason to SNES_CONVERGED_ITERATING, SNES_CONVERGED_SNORM_RELATIVE or SNES_DIVERGED_MAX_IT. But, I see DIVERGED_LINE_SEARCH from the call to SNESGetConvergedReason.
> 
>   The line search routines themselves can set the converged reason, when the line search fails, this happens before it has the next solution so before the next time your line search tester is called. So your value is not been overwritten or ignored. 
> 
>   I am not sure what you want to do about this? It is just the way it is.
> 
>  Barry
> 
>> 
>> Is the line search diverging (most likely?!) and blowing by my 
>> convergence test function?? Maybe (most likely?) I’m doing something 
>> stupid…
>> 
>> Otherwise things are working great. PETSc is awesome!
>> 
>> Any help/suggestions/input is appreciated.
>> 
>> 
>> ----------------------------------------------------------------------
>> -
>> William J. Coirier, Ph.D.
>> Director, Aerosciences and Engineering Analysis Advanced Technology 
>> Division Kratos/Digital Fusion, Inc.
>> 4904 Research Drive
>> Huntsville, AL 35805
>> 256-327-8170
>> 256-327-8120 (fax)
>> 
>> 
>> ----------------------------------------------------------------------
>> ----------------------------------------------
>> 
>> ***NOTICE*** This e-mail and/or the attached documents may contain technical data within the definition of the International Traffic in Arms Regulations and/or Export Administration Regulations, and are subject to the export control laws of the U.S. Government. Transfer of this data by any means to a foreign person, whether in the United States or abroad, without an export license or other approval from the U.S. Department of State or Commerce, as applicable, is prohibited. No portion of this e-mail or its attachment(s) may be reproduced without written consent of Kratos Defense & Security Solutions, Inc. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorized to state them to be the views of any such entity. The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If you are not the intended recipient or believe that you may have received this document in error, please notify the sender and delete this e-mail and any attachments immediately.
> 
> 
> --------------------------------------------------------------------------------------------------------------------
> 
> ***NOTICE*** This e-mail and/or the attached documents may contain technical data within the definition of the International Traffic in Arms Regulations and/or Export Administration Regulations, and are subject to the export control laws of the U.S. Government. Transfer of this data by any means to a foreign person, whether in the United States or abroad, without an export license or other approval from the U.S. Department of State or Commerce, as applicable, is prohibited. No portion of this e-mail or its attachment(s) may be reproduced without written consent of Kratos Defense & Security Solutions, Inc. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorized to state them to be the views of any such entity. The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If you are not the intended recipient or believe that you may have received this document in error, please notify the sender and delete this e-mail and any attachments immediately.



More information about the petsc-users mailing list