[petsc-users] SNESSetConvergenceTest

Matthew Knepley knepley at gmail.com
Wed Jan 22 13:53:26 CST 2014


On Wed, Jan 22, 2014 at 1:52 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
>   We need more information to track this down. Could you make a simple
> standalone code that reproduces the problem? Just creates a this, creates a
> SNES, sets the function, sets the test code and then crashes when runs.
>
>    But since it is not crashing in the SNESConvergenceTest_snes routine I
> suspect it may be memory corruption. Have you run your code under valgrind?
> http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind


I am putting his convergence test into ex5f right now. This can be
valgrinded. I will send an update when it runs.

  Matt


>
>    Barry
>
> On Jan 20, 2014, at 7:14 PM, Dharmendar Reddy <dharmareddy84 at gmail.com>
> wrote:
>
> > Hello,
> >         I am getting a segmentation fault when i use
> > SNESSetConvergenceTest from Fortran.
> >
> > I use the following:
> >
> > call SNESSetConvergenceTest(this%snes, SNESConvergenceTest_snes,
> > this,PETSC_NULL_FUNCTION, ierr)   (Line 1)
> >
> > where the soubtoutine is
> >
> > subroutine
> SNESConvergenceTest_snes(snes,it,xnorm,gnorm,fnorm,reason,this, ierr)
> >  implicit none
> > #include "finclude/petsc.h"
> >  ! IO Variables
> >  SNES :: snes
> >  integer :: it
> >  PetscReal :: xnorm
> >  PetscReal :: gnorm
> >  PetscReal :: fnorm
> >  SNESConvergedReason :: reason
> >  type(Solver_t) :: this
> >  PetscErrorCode :: ierr
> >  ! Local Variables
> >  Vec :: X, dX
> >  Vec :: F, W, G
> >  real(WP) :: lambda
> >  print*, 'Calling custom test',it,xnorm,fnorm,gnorm
> >  !call SNESLineSearchGetLambda(this%linesearch, lambda, ierr)
> >  !call SNESLineSearchGetVecs(this%linesearch, X, F, dX, W, G, ierr)
> >  !call this%SNESConvergenceTest(it, fnorm, lambda, X, dX, reason, ierr)
> >  reason = SNES_DIVERGED_FUNCTION_COUNT
> > end subroutine SNESConvergenceTest_snes
> >
> > Code works fine if  the call at Line 1 is commented i.e, if i donot
> > set the convergencetest
> >
> > I have attached the stack trace when the code fails (traceFail.log)
> > and stack trace of the code which runs well (tracePass.log).
> >
> >
> >
> > Thanks
> > Reddy
> > <traceFail.log><tracePass.log>
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140122/b1e7366c/attachment.html>


More information about the petsc-users mailing list