Small bug about line search
    Gong Ding 
    gdiso at ustc.edu
       
    Mon Dec  3 17:59:31 CST 2007
    
    
  
Hi,
After a  SNESLineSearchPostCheck call, the function SNESLineSearchCubic and SNESLineSearchQuadratic should recompute residual norm ||g|| and search length norm ||y||
But the code is
src/snes/impls/ls/ls.c
676:       VecNormBegin(g,NORM_2,gnorm);
677:       if (*gnorm != *gnorm) SETERRQ(PETSC_ERR_FP,"User provided compute function generated a Not-a-Number");
678:       VecNormBegin(w,NORM_2,ynorm);
679:       VecNormEnd(g,NORM_2,gnorm);
680:       VecNormEnd(w,NORM_2,ynorm);
and
850:       VecNormBegin(g,NORM_2,gnorm);
851:       VecNormBegin(w,NORM_2,ynorm);
852:       VecNormEnd(g,NORM_2,gnorm);
853:       VecNormEnd(w,NORM_2,ynorm);
it set ||w|| for variable ynorm, for which i think should be ||y||
Yours
Gong Ding
    
    
More information about the petsc-users
mailing list