[petsc-users] SNESSetConvergenceTest

Matthew Knepley knepley at gmail.com
Wed Jan 22 16:04:44 CST 2014


On Wed, Jan 22, 2014 at 4:02 PM, Dharmendar Reddy
<dharmareddy84 at gmail.com>wrote:

> Hello,
>         The code works fine if i run with valgrind --leak-check=yes
> exename args
> it fails if i run  valgrind exename args
>

What is the error msg?

 Thanks,

    Matt


> Any suggestions on what to look for my code?
>
> Thanks
> Reddy
>
> On Wed, Jan 22, 2014 at 3:31 PM, Dharmendar Reddy
> <dharmareddy84 at gmail.com> wrote:
> > Hello,
> >         I tried using the SNESSetConvergenceTest in ex5f90.F using my
> > subroutine. Works as expected. I will try to run my code through
> > valgrind.
> >
> > Thanks
> > Reddy
> >
> > On Wed, Jan 22, 2014 at 2:33 PM, Dharmendar Reddy
> > <dharmareddy84 at gmail.com> wrote:
> >> Hello,
> >>          I will also try to create a stand alone test case.
> >>
> >> Thanks
> >> Reddy
> >>
> >> On Wed, Jan 22, 2014 at 1:53 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
> >>> 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
> >>
> >>
> >>
> >> --
> >> -----------------------------------------------------
> >> Dharmendar Reddy Palle
> >> Graduate Student
> >> Microelectronics Research center,
> >> University of Texas at Austin,
> >> 10100 Burnet Road, Bldg. 160
> >> MER 2.608F, TX 78758-4445
> >> e-mail: dharmareddy84 at gmail.com
> >> Phone: +1-512-350-9082
> >> United States of America.
> >> Homepage: https://webspace.utexas.edu/~dpr342
> >
> >
> >
> > --
> > -----------------------------------------------------
> > Dharmendar Reddy Palle
> > Graduate Student
> > Microelectronics Research center,
> > University of Texas at Austin,
> > 10100 Burnet Road, Bldg. 160
> > MER 2.608F, TX 78758-4445
> > e-mail: dharmareddy84 at gmail.com
> > Phone: +1-512-350-9082
> > United States of America.
> > Homepage: https://webspace.utexas.edu/~dpr342
>
>
>
> --
> -----------------------------------------------------
> Dharmendar Reddy Palle
> Graduate Student
> Microelectronics Research center,
> University of Texas at Austin,
> 10100 Burnet Road, Bldg. 160
> MER 2.608F, TX 78758-4445
> e-mail: dharmareddy84 at gmail.com
> Phone: +1-512-350-9082
> United States of America.
> Homepage: https://webspace.utexas.edu/~dpr342
>



-- 
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/7c963a47/attachment.html>


More information about the petsc-users mailing list