PreCheck on SNES Line Search and solution constraints (PreCheck not working)
    Edson Tadeu 
    e.tadeu at gmail.com
       
    Fri Nov 28 13:18:03 CST 2008
    
    
  
Hi,
  I'm using the Cubic Line Search algorithm to solve some non-linear systems
where the solution vector is constrained to a given space, e.g., some of its
elements are only allowed in the range 0 <= x <= 1... outside this domain,
the evaluation of the Jacobian is "undefined", and may lead to wrong
directions or unwanted solutions.
  I'm trying to use a PreCheck to limit the value of lambda, so that the
solution vector would never leave the domain. Is this the right approach?
  Anyway, I'm facing the following problem: I'm calling
SNESLineSearchSetPreCheck(snes, MyPreCheck, ctx), but it seems that the
PreCheck is not being set correctly... it actually never enters the
MyPreCheck function when solving. I'm using petsc-2.3.3-p13... I've tried to
trace the problem inside Petsc code, and it seems that the problem is that
this line:
  ierr =
PetscObjectQueryFunction((PetscObject)snes,"SNESLineSearchSetPreCheck_C",(void
(**)(void))&f);CHKERRQ(ierr);
  is actually returning PETSC_NULL on f.
  The calling sequence is the following:
    SNESCreate
    SNESSetFunction
    SNESSetJacobian
    SNESLineSearchSetPreCheck
    SNESMonitorSet
    SNESSetFromOptions
    SNESSetApplicationContext
    SNESSolve
  Thanks for any help,
Edson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20081128/31c8632d/attachment.htm>
    
    
More information about the petsc-users
mailing list