<div>Hi</div><div>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.</div><div>I think the way I set VI maybe wrong. Sorry for my simple explanation. </div><div>Very thankful for your time.</div><div>Amir</div><div>                                SNESCreate(PETSC_COMM_WORLD,&snes);</div><div>                                SNESSetApplicationContext(snes,&user);</div><div>                               SNESSetDM(snes,user.dm);</div><div>                         SNESSetFunction(snes,NULL,FormFunction,&user);</div><div>                               FormInitialSolution(user.X,&user);</div><div>                           SNESSetSolution(snes,user.X);</div><div>                            SNESMonitorSet(snes,MySNESMonitor,&user,NULL);</div><div>                               SNESSetType(snes,SNESVINEWTONSSLS);</div><div>                              SNESSetNormSchedule(snes, SNES_NORM_ALWAYS);</div><div>                             SNESVISetVariableBounds(snes,user.XLOWER,user.XUPPER);</div><div>                           SNESGetLineSearch(snes,&linesearch);</div><div>                         SNESLineSearchSetType(linesearch,SNESLINESEARCHBT);</div><div>                              SNESLineSearchSetVIFunctions(linesearch, NULL, SNESNormFunction);</div><div>                                SNESSetFromOptions(snes);</div><div>                                SNESSolve(snes,NULL,user.X);</div><img class="mailspring-open" alt="Open Tracking" width="0" height="0" style="border:0; width:0; height:0;" src="https://link.getmailspring.com/open/1534566770.local-ad07529d-23c1-v1.4.2-f587b7b7@getmailspring.com?recipient=cGV0c2MtdXNlcnNAbWNzLmFubC5nb3Y%3D">