[petsc-users] SNES with constraint diverges

Matthew Knepley knepley at gmail.com
Wed Sep 12 04:53:46 CDT 2018


On Wed, Sep 12, 2018 at 1:25 AM Josh L <ysjosh.lo at gmail.com> wrote:

>
> The following is the output. Thanks.
>

I do not know what you residual looks like, but it entirely possible that
your Jacobian is not
accurate enough to drive the residual below 5e-13. You could just try
-snes_atol 1e-12
unless you really think you need to be more accurate. Also have you
non-dimensionalized
your problem?

  Thanks,

    Matt


>   0 SNES Function norm 3.775139483936e-07
>       Line search: Using full step: fnorm 3.775139483936e-07 gnorm
> 1.043499007769e-11
>   1 SNES Function norm 1.043499007769e-11
>       Line search: Using full step: fnorm 1.043499007769e-11 gnorm
> 5.302082026305e-12
>   2 SNES Function norm 5.302082026305e-12
>       Line search: Using full step: fnorm 5.302082026305e-12 gnorm
> 3.136358665117e-12
>   3 SNES Function norm 3.136358665117e-12
>       Line search: Using full step: fnorm 3.136358665117e-12 gnorm
> 2.170819065257e-12
>   4 SNES Function norm 2.170819065257e-12
>       Line search: Using full step: fnorm 2.170819065257e-12 gnorm
> 1.475760790713e-12
>   5 SNES Function norm 1.475760790713e-12
>       Line search: Using full step: fnorm 1.475760790713e-12 gnorm
> 1.130642522675e-12
>   6 SNES Function norm 1.130642522675e-12
>       Line search: Using full step: fnorm 1.130642522675e-12 gnorm
> 8.647827205825e-13
>   7 SNES Function norm 8.647827205825e-13
>       Line search: Using full step: fnorm 8.647827205825e-13 gnorm
> 7.403983354386e-13
>   8 SNES Function norm 7.403983354386e-13
>       Line search: Using full step: fnorm 7.403983354386e-13 gnorm
> 6.291615062788e-13
>   9 SNES Function norm 6.291615062788e-13
>       Line search: Using full step: fnorm 6.291615062788e-13 gnorm
> 5.682820624094e-13
>  10 SNES Function norm 5.682820624094e-13
>       Line search: Using full step: fnorm 5.682820624094e-13 gnorm
> 5.300267435005e-13
>  11 SNES Function norm 5.300267435005e-13
>       Line search: Using full step: fnorm 5.300267435005e-13 gnorm
> 5.096339188439e-13
>  12 SNES Function norm 5.096339188439e-13
>       Line search: Using full step: fnorm 5.096339188439e-13 gnorm
> 4.970340343183e-13
>  13 SNES Function norm 4.970340343183e-13
>       Line search: Using full step: fnorm 4.970340343183e-13 gnorm
> 4.916509482510e-13
>  14 SNES Function norm 4.916509482510e-13
>       Line search: Using full step: fnorm 4.916509482510e-13 gnorm
> 4.875840608086e-13
>  15 SNES Function norm 4.875840608086e-13
>       Line search: Using full step: fnorm 4.875840608086e-13 gnorm
> 4.859609948396e-13
>  16 SNES Function norm 4.859609948396e-13
>       Line search: Using full step: fnorm 4.859609948396e-13 gnorm
> 4.846457390135e-13
>  17 SNES Function norm 4.846457390135e-13
>       Line search: Using full step: fnorm 4.846457390135e-13 gnorm
> 4.840667643605e-13
>  18 SNES Function norm 4.840667643605e-13
>       Line search: Using full step: fnorm 4.840667643605e-13 gnorm
> 4.837878467904e-13
>  19 SNES Function norm 4.837878467904e-13
>       Line search: Using full step: fnorm 4.837878467904e-13 gnorm
> 4.835385298533e-13
>  20 SNES Function norm 4.835385298533e-13
>       Line search: Using full step: fnorm 4.835385298533e-13 gnorm
> 4.833767981145e-13
>  21 SNES Function norm 4.833767981145e-13
>       Line search: Aborted due to ynorm < stol*xnorm (6.489173391862e-15 <
> 2.387840730261e-06) and inadequate full step.
> Nonlinear smu_ solve did not converge due to DIVERGED_LINE_SEARCH
> iterations 21
>
>
>
>
> 2018-09-11 23:37 GMT-05:00 Smith, Barry F. <bsmith at mcs.anl.gov>:
>
>>
>>    Do you start with initial conditions of  0 <= u_i <= 1 ?
>>
>>     Run with -snes_monitor -snes_converged_reason
>> -ksp_monitor_true_residual -info -snes_linesearch_monitor and send all the
>> output
>>
>>   Barry
>>
>>
>> > On Sep 11, 2018, at 11:33 PM, Josh L <ysjosh.lo at gmail.com> wrote:
>> >
>> > Hi,
>> >
>> > I am using SNES to solve an nonlinear equation f(u), and I know all the
>> u_i should be 0 and 1.
>> >
>> > First, I use SNES without constraint, and it converges.
>> >
>> > But, If I set
>> >      SNESSetType(snes,SNESVINEWTONRSLS,ierr)
>> >      SNESVISetVariableBounds(snes,xl,xu,ierr)
>> >
>> > where xl and xu is vector, and xl_i=0 and xu_i=1
>> >
>> > then SNES fails to converge, because linesearch fails(snes reason =
>> -6), and the norm of residual is not reducing(the norm of incremental
>> solution is reducing)
>> >
>> > The reason to add constraint is that I want to implement some
>> irreversibility.
>> >
>> >
>> > Thanks,
>> > Josh
>> >
>>
>>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180912/7089fb7d/attachment.html>


More information about the petsc-users mailing list