I just tried. But it gives me same pattern. After One iteration, it diverges. I 
am now sure some thing is wrong with my setting.

On Aug 18 2018, at 12:59 pm, Justin Chang <[email protected]> wrote:
>
> Have you tried SNESVINEWTONRSLS? In my experience, I seem to have slightly 
> better luck with that one instead of SNESVINEWTONSSLS
>
> On Sat, Aug 18, 2018 at 12:56 AM Amir <[email protected] 
> (https://link.getmailspring.com/link/[email protected]/0?redirect=mailto%3Amhbaghaei%40mail.sjtu.edu.cn&recipient=cGV0c2MtdXNlcnNAbWNzLmFubC5nb3Y%3D)>
>  wrote:
> > Hi
> > I need to apply constraint to primitive variables. I am troubling to set up 
> > SNESVI. After running the code, I feel SNES is not actually solving. After 
> > one iteration of SNES, I got DIVERGED_LINESEARCH, with NO changing in 
> > function norm.
> > I think the way I set VI maybe wrong. Sorry for my simple explanation.
> > Very thankful for your time.
> > Amir
> > SNESCreate(PETSC_COMM_WORLD,&snes);
> > SNESSetApplicationContext(snes,&user);
> > SNESSetDM(snes,user.dm 
> > (https://link.getmailspring.com/link/[email protected]/1?redirect=http%3A%2F%2Fuser.dm&recipient=cGV0c2MtdXNlcnNAbWNzLmFubC5nb3Y%3D));
> > SNESSetFunction(snes,NULL,FormFunction,&user);
> > FormInitialSolution(user.X,&user);
> > SNESSetSolution(snes,user.X);
> > SNESMonitorSet(snes,MySNESMonitor,&user,NULL);
> > SNESSetType(snes,SNESVINEWTONSSLS);
> > SNESSetNormSchedule(snes, SNES_NORM_ALWAYS);
> > SNESVISetVariableBounds(snes,user.XLOWER,user.XUPPER);
> > SNESGetLineSearch(snes,&linesearch);
> > SNESLineSearchSetType(linesearch,SNESLINESEARCHBT);
> > SNESLineSearchSetVIFunctions(linesearch, NULL, SNESNormFunction);
> > SNESSetFromOptions(snes);
> > SNESSolve(snes,NULL,user.X);
> >
>
>
>
>

Reply via email to