[petsc-users] SNESSetConvergenceTest

Dharmendar Reddy dharmareddy84 at gmail.com
Wed Jan 22 13:37:45 CST 2014


Hello,
        Can you please help me with the problem described below.

Thanks
Reddy

On Mon, 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



-- 
-----------------------------------------------------
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