[petsc-users] SNESSetConvergenceTest

Dharmendar Reddy dharmareddy84 at gmail.com
Wed Jan 22 16:02:50 CST 2014


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

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


More information about the petsc-users mailing list