[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