[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