SNES Problem

Barry Smith bsmith at mcs.anl.gov
Fri Mar 3 11:50:02 CST 2006


   There must be a difference between the two RKs. The initial
timestep it uses, or algorithm for changing time step or slight
difference in algorithms?

    Barry

On Fri, 3 Mar 2006, Nils Erik Svangård wrote:

> A interesting thing is when I change TS_BEULER to TS_RUNGE_KUTTA the
> solver exits fast due to the non physical values. My original solver
> is a 3-step Runge-Kutta which works flawlessly.
>
> The error when running RK:
>
> ./ImplicitG3D on a linux-gnu named sethnx004.vac.com by yy26539 Fri
> Mar  3 10:31:27 2006
> Libraries linked from /home/yy26539/work/NISSE/petsc-2.3.0/lib/linux-gnu
> Configure run at Thu Oct 13 08:23:56 2005
> Configure options --with-cc=gcc --with-fc="f77 -N109"
> --download-mpich=1 --download-mpich-pm=gforker
> --download-f-blas-lapack=1 --with-shared=0
> -----------------------------------------------------------------------
> [0]PETSC ERROR: Caught signal number 8 FPE: Floating Point
> Exception,probably divide by zero
> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
> [0]PETSC ERROR: likely location of problem given in stack below
> [0]PETSC ERROR: --------------- Stack Frames ---------------
> [0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
> [0]PETSC ERROR:       INSTEAD the line number of the start of the function
> [0]PETSC ERROR:       is given.
> [0]PETSC ERROR: [0] TS user right-hand-side function line 0 unknownunknown
> [0]PETSC ERROR: [0] TSComputeRHSFunction line 282 src/ts/interface/ts.c
> [0]PETSC ERROR: [0] TSRkqs line 256 src/ts/impls/explicit/rk/rk.c
> [0]PETSC ERROR: [0] TSStep_Rk line 322 src/ts/impls/explicit/rk/rk.c
> [0]PETSC ERROR: [0] TSStep line 1520 src/ts/interface/ts.c
> [0]PETSC ERROR: --------------------------------------------
> [0]PETSC ERROR: User provided function() line 0 in unknown directory
> unknown file
> [0]PETSC ERROR: Signal received!
> [0]PETSC ERROR:  !
> aborting job:
> application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0
>
> On 3/3/06, Nils Erik Svangård <nilserik at gmail.com> wrote:
>> Hello again,
>>
>> >    Is it just not compiling because  PETSC_ERR_ARG_DOMAIN is not
>>> defined? Or does it still not work even when you have put the number in?
>>> What is the error? Or did you get it all working with SNES?
>>>
>>
>>
>> It is not compiling because PETSC_ERR_ARG_DOMAIN is not defined:
>>
>> error on line 585 of SNESG3D2.F: data type is undefined for variable
>> PETSC_ERR_ARG_DOMAIN
>>
>> I tried putting a number in, then it compiles but complains while
>> linking that the Push() and Pop() functions is not defined. I made a
>> workaround by adding a variable in a common block and setting it
>> before returning from a non physical value in the FormFunction. Now I
>> can compile and when there is a non-physical value it returns and
>> resumes with a smaller timestep.
>> SNES still give non physical values which are hard to add checks for
>> in the program (e.g sqrt(RO(L)-RO(L+1))).
>>
>> Did I understand correctly that SNES does a linesearch and probably
>> goes for a solution which isnt the one I looking for? Does SNES use
>> the linesearch algorithm when I use -snes_mf (which I use)?
>>
>>>    It may work automatically with TS; you would just set TS with a
>>> smaller timestep and call TSSolve again?
>>>
>>
>> OK, I'll add a check and put TSSolve in a while loop.
>>
>> My SNESSolve loop looks like this right now:
>>       call VecCreateSeq(PETSC_COMM_SELF,N,x,ierr)
>>       call VecDuplicate(x,r,ierr)
>>       call VecDuplicate(x,xb,ierr)
>>       call SNESCreate(PETSC_COMM_SELF,snes,ierr)
>>       call SNESSetFunction(snes,r,FormFunction,PETSC_NULL_OBJECT,ierr)
>>       call SNESSetFromOptions(snes,ierr)
>>       call FormInitialGuess(x,ierr)
>>       call VecCopy(x,xb,ierr)
>>       write(6,*)zero,dt,tmax,i1000
>>       step=0
>>       timestep=dt
>>       bang=0
>> C While loop
>>    10 if (step .le. 100) then
>> C        call PetscExceptionPush(87,ierr)
>> C         call PetscExceptionPush(PETSC_ERR_ARG_DOMAIN,ierr)
>>         call SNESSolve(snes,PETSC_NULL_OBJECT,x,ierr)
>>         ierr=bang
>> C        call PetscExceptionPop(87,ierr2)
>>          IF ( ierr .EQ. 87) THEN
>>            timestep=timestep/2
>>            call VecCopy(xb,x,ierr)
>>            write(6,*) "No physical solution, trying",
>>      .                " with smaller timestep: ",timestep
>>            bang=0
>>          ELSE
>>           call SNESGetConvergedReason(snes,reason,ierr)
>>           IF ( reason .LT. 0 ) THEN
>>             timestep=timestep/2
>>             call VecCopy(xb,x,ierr)
>>             write(6,*)"Solution diverged, trying with",
>>      .                " smaller timestep: ",timestep
>>           ELSE
>>             timestep=dt
>>             step=step+1
>>             call VecCopy(x,xb,ierr)
>>             write(6,*) "Solve success, going for step: ",step
>>             write(6,*) "Reason: ",reason," ierr: ",ierr
>>             reason=0
>>             ierr=0
>>           ENDIF
>>         ENDIF
>>        goto 10
>>       endif
>> C End While loop
>>
>> And the check in the FormFunction:
>>
>>               if (ET(L) .LT. 0) then
>>                 ierr = 87
>>                 bang = 87
>> C                SETERRQ(87,"Non physical value!",ierr)
>>                 return
>>               elseif ( RO(L) .LT. 0 ) then
>>                 ierr = 87
>>                 bang = 87
>>                 return
>>               endif
>>
>>
>> /nisse
>>
>>
>>
>>>    Barry
>>>
>>>    I'm adding a petscerror.h for Fortran that includes these values
>>> Sorry I forgot we hadn't given them for Fortran.
>>>
>>> On Thu, 2 Mar 2006, Nils Erik Svangård wrote:
>>>
>>>> Hi again,
>>>> I realised that my implementation was a bit flawed so I have rewritten
>>>> it again, the push and pop() functions dont seem to work, and they are
>>>> keeping me from compiling the program, this is the main timestep loop:
>>>>
>>>>      call VecCreateSeq(PETSC_COMM_SELF,N,x,ierr)
>>>>      call VecDuplicate(x,r,ierr)
>>>>      call VecDuplicate(x,xb,ierr)
>>>>      call SNESCreate(PETSC_COMM_SELF,snes,ierr)
>>>>      call SNESSetFunction(snes,r,FormFunction,PETSC_NULL_OBJECT,ierr)
>>>>      call SNESSetFromOptions(snes,ierr)
>>>>      call FormInitialGuess(x,ierr)
>>>>      call VecCopy(x,xb,ierr)
>>>>      write(6,*)zero,dt,tmax,i1000
>>>>      step=0
>>>>      timestep=dt
>>>> C While loop
>>>>   10 if (step .le. 100) then
>>>>        call PetscExceptionPush(87,ierr)
>>>>        call SNESSolve(snes,PETSC_NULL_OBJECT,x,ierr)
>>>>        call PetscExceptionPop(87,ierr2)
>>>>
>>>>        call SNESGetConvergedReason(snes,reason,ierr)
>>>>        IF ( reason .LT. 0 ) THEN
>>>>           timestep=timestep/2
>>>>           VecCopy(xb,x,ierr)
>>>>           write(6,*)"Solution diverged, trying with",
>>>>     .               " smaller timestep: ",timestep
>>>>        ELSE
>>>>         IF ( ierr .EQ. 87) THEN
>>>>           timestep=timestep/2
>>>>           VecCopy(xb,x,ierr)
>>>>           write(6,*) "No physical solution, trying",
>>>>     .                " with smaller timestep: ",timestep
>>>>         ELSE
>>>>           timestep=dt
>>>>           step=step+1
>>>>           VecCopy(x,xb,ierr)
>>>>           write(6,*) "Solve success, going for step: ",step
>>>>         ENDIF
>>>>        ENDIF
>>>>       goto 10
>>>>      endif
>>>> C End While loop
>>>>
>>>> And in my Formfunction I have added the following check:
>>>> if (ET(L) .LT. 0) then
>>>>                ierr = 87
>>>>                return
>>>>              endif
>>>>
>>>> PETSC_ERR_ARG_DOMAIN didnt work:  error on line 6500 of SNESG3D2.F:
>>>> data type is undefined for variable PETSC_ERR_ARG_DOMAIN
>>>> Even thought I had petsc.h included.
>>>>
>>>> Can I do this check when I use TS also? I have the sameproblem with
>>>> the values being negative when using TS.
>>>>
>>>>
>>>> /nisse
>>>>
>>>>
>>>> On 2/27/06, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>>>
>>>>>    SNES works by computing p = -approxinv(J)*F(uold) and
>>>>> then does a line search on unew = uold + lambda*p to get the
>>>>> new u. First it uses a test value of 1 for lambda so it
>>>>> tries to compute F(uold + p). It is possible that uold + p
>>>>> has some "non-physical" values in it.  There are two ways
>>>>> you can try handling it:
>>>>>
>>>>> 1) Before doing the linesearch SNES calls a "precheck" function,
>>>>> that can change the step if it decides there is a problem
>>>>> with the step (like it is too long). You can provide your
>>>>> own precheck function with SNESLineSearchSetPreCheck() it could,
>>>>> for example, shrink the Newton direction to make it remain physical.
>>>>>
>>>>> or 2) when your form function detects an illegal value it calls
>>>>> SETERRQ(PETSC_ERR_ARG_DOMAIN,"Nonphysical function input"); Note:
>>>>> this is before it takes the square root of the negative number,
>>>>> so check the number and call the error before calling SETERRQ().
>>>>> (If using Fortran then simply set ierr = PETSC_ERR_ARG_DOMAIN and
>>>>> then immediately return). Then replace your call to SNESSolve with
>>>>>    ierr = PetscExceptionTry1(SNESSolve(snes,b,x),PETSC_ERR_ARG_DOMAIN);
>>>>>    if (PetscExceptionCaught(ierr,PETSC_ERR_ARG_DOMAIN)) {
>>>>>      /* this means your function found a non-physical value so
>>>>>         cut your time-step and continue through the loop again. */
>>>>>         Put code to do this here.
>>>>>    }
>>>>> If using fortran then do
>>>>> call PetscExceptionPush(PETSC_ERR_ARG_DOMAIN,ierr)
>>>>> call SNESSolve(snes,b,x,ierr)
>>>>> call PetscExceptionPop(PETSC_ERR_ARG_DOMAIN,anotherierr)
>>>>> if (ierr == PETSC_ERR_ARG_DOMAIN) then
>>>>>    non-physical value so cut the time-step and try again
>>>>> else ! everything is normal so take the next time-step
>>>>>
>>>>>    Barry
>>>>>
>>>>> The Fortran interface may be missing PetscExceptionPush() and Pop()
>>>>> if so let us know and we'll provide the patch.
>>>>>
>>>>> On Mon, 27 Feb 2006, Nils Erik Svangård wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I have problems solving some CFD problems using SNES and my custom
>>>>>> back-euler. I have 7 equations that I want to solve.
>>>>>>
>>>>>> First my FormFunction copies the values from the Vec that SNES uses to
>>>>>> the variables that my code use:
>>>>>>
>>>>>>      RO(L)=xx(1,L)
>>>>>>      RU(L)=xx(2,L)
>>>>>>      RV(L)=xx(3,L)
>>>>>>      RW(L)=xx(4,L)
>>>>>>      ET(L)=xx(5,L)
>>>>>>      RQ(L)= xx(6,L)
>>>>>>      REPS(L)=xx(7,L)
>>>>>>
>>>>>> Here I also print the values of ET(2) for debugging:
>>>>>>
>>>>>>      write(6,*)"ET(2) = xx(5,2) : ",ET(2)," = ",xx(5,2)
>>>>>>
>>>>>> Then I get the fluxes by calling custom functions
>>>>>>
>>>>>>      call AUXVR
>>>>>>      call VGRAD
>>>>>>      call FLUX
>>>>>>      call KESRC
>>>>>>
>>>>>> Then I perform back-euler  save the new value to so that I can use it
>>>>>> in the next iterationi (TSF(L) is Time step function, which is set by
>>>>>> hand and is the same for all L):
>>>>>>
>>>>>>      ff(1,L) = RO(L)-OLD(1,L)-TSF(L)*DRO(L)
>>>>>>      ff(2,L) = RU(L)-OLD(2,L)-TSF(L)*DRU(L)
>>>>>>      ff(3,L) = RV(L)-OLD(3,L)-TSF(L)*DRV(L)
>>>>>>      ff(4,L) = RW(L)-OLD(4,L)-TSF(L)*DRW(L)
>>>>>>      ff(5,L) = ET(L)-OLD(5,L)-TSF(L)*DET(L)
>>>>>>      ff(6,L) = RQ(L)-OLD(6,L)-TSF(L)*DRQ(L)
>>>>>>      ff(7,L) = REPS(L)-OLD(7,L)-TSF(L)*DREPS(L)
>>>>>>
>>>>>> And save the new value of RO-REPS to use in the next iteration of back-euler:
>>>>>>
>>>>>>      OLD(1,L)=RO(L)
>>>>>>      OLD(2,L)=RU(L)
>>>>>>      OLD(3,L)=RV(L)
>>>>>>      OLD(4,L)=RW(L)
>>>>>>      OLD(5,L)=ET(L)
>>>>>>      OLD(6,L)=RQ(L)
>>>>>>      OLD(7,L)=REPS(L)
>>>>>>
>>>>>> Here I print the values of L=2 as above for debugging:
>>>>>>
>>>>>>      write(6,*)ff(5,2)," = ",ET(2),"-",OLD(5,2),"-",TSF(2),"*",DET(2)
>>>>>>
>>>>>>
>>>>>>
>>>>>> The program exit abnormaly after 33 runs of the FormFunction. The
>>>>>> cause of this is that AUXVR tries to perform sqrt(ET(2)) when ET(2) is
>>>>>> negative, ET is the total energy and should never be negative. It
>>>>>> seems that all of a sudden the PETSc SNES solver decides to supply the
>>>>>> FormFunction with a negative ET value. I need help understanding why
>>>>>> and how to fix it (if it is fixable).
>>>>>>
>>>>>> Here is the output of:
>>>>>>      write(6,*)"ET(2) = xx(5,2) : ",ET(2)," = ",xx(5,2)
>>>>>> Which is in the beginning of my FormFunction.
>>>>>> And:
>>>>>>      write(6,*)ff(5,2)," = ",ET(2),"-",OLD(5,2),"-",TSF(2),"*",DET(2)
>>>>>> Which is in the end of my Formfunction.
>>>>>>
>>>>>> 1. ET(2) = xx(5,2) :   253250.  =   253250.000000000
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 2. ET(2) = xx(5,2) :   253250.  =   253250.000010259
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 3. ET(2) = xx(5,2) :   253250.  =   253249.999999988
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4132419437260  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941324E+08
>>>>>> 4. ET(2) = xx(5,2) :   253250.  =   253250.000048432
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 5. ET(2) = xx(5,2) :   253250.  =   253249.999999872
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4177283437784  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941773E+08
>>>>>> 6. ET(2) = xx(5,2) :   253250.  =   253250.000071113
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 7. ET(2) = xx(5,2) :   253250.  =   253249.999980115
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4453347441010  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.944533E+08
>>>>>> 8. ET(2) = xx(5,2) :   253250.  =   253250.000037298
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4082723436679  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.940827E+08
>>>>>> 9. ET(2) = xx(5,2) :   253250.  =   253249.999942706
>>>>>>   ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4082723436679  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.940827E+08
>>>>>> 10. ET(2) = xx(5,2) :   253250.  =   253249.999948703
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 11. ET(2) = xx(5,2) :   253250.  =   253250.000007808
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.7283811474088  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.972838E+08
>>>>>> 12. ET(2) = xx(5,2) :   253250.  =   253250.000018146
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 13. ET(2) = xx(5,2) :   253250.  =   253250.000001865
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   28.3742819315846  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.837428E+08
>>>>>> 14. ET(2) = xx(5,2) :   253250.  =   253249.999997296
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 15. ET(2) = xx(5,2) :   253250.  =   253250.000000049
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   30.6548963582361  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -3.065490E+08
>>>>>> 16. ET(2) = xx(5,2) :   253250.  =   253250.000022870
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 17. ET(2) = xx(5,2) :   253250.  =   253249.999999716
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.5326051451209  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.953260E+08
>>>>>> 18. ET(2) = xx(5,2) :   253250.  =   253250.000074328
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4165187437643  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941652E+08
>>>>>> 19. ET(2) = xx(5,2) :   253250.  =   253250.000049809
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4085059436707  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.940851E+08
>>>>>> 20. ET(2) = xx(5,2) :   253250.  =   253250.000019253
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 21. ET(2) = xx(5,2) :   253250.  =   253250.000000189
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.8851075492403  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.988511E+08
>>>>>> 22. ET(2) = xx(5,2) :   253250.  =   253249.999997897
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4085059436707  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.940851E+08
>>>>>> 23. ET(2) = xx(5,2) :   253250.  =   253249.999975142
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.3961539435263  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.939615E+08
>>>>>> 24. ET(2) = xx(5,2) :   253250.  =   253250.000018324
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4085059436707  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.940851E+08
>>>>>> 25. ET(2) = xx(5,2) :   253250.  =   253249.999987073
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4165187437643  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941652E+08
>>>>>> 26. ET(2) = xx(5,2) :   253250.  =   253249.999980982
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4165187437643  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941652E+08
>>>>>> 27. ET(2) = xx(5,2) :   253250.  =   253249.999994645
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 28. ET(2) = xx(5,2) :   253250.  =   253249.999962364
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4165187437643  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941652E+08
>>>>>> 29. ET(2) = xx(5,2) :   253250.  =   253249.999999921
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 30. ET(2) = xx(5,2) :   253250.  =   253250.000000058
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   28.4019971319085  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.840200E+08
>>>>>> 31. ET(2) = xx(5,2) :   253250.  =   253250.000040348
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4085059436707  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.940851E+08
>>>>>> 32. ET(2) = xx(5,2) :   253250.  =   253250.000005245
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 33. ET(2) = xx(5,2) :   253250.  =   253250.000005245
>>>>>>    ff(5,2) = ET(2)-OLD(5,2)-TSF(2)*DET(2) :   29.4126563437192  =
>>>>>> 253250. -  253250.000000000 -  1.000000E-07 * -2.941266E+08
>>>>>> 34. ET(2) = xx(5,2) :  -848141.  =  -848141.388090847
>>>>>> --------------------------------------------------------------------------
>>>>>> Petsc Release Version 2.3.0, Patch 32, April, 26, 2005
>>>>>> See docs/changes/index.html for recent updates.
>>>>>> See docs/faq.html for hints about trouble shooting.
>>>>>> See docs/index.html for manual pages.
>>>>>> -----------------------------------------------------------------------
>>>>>> ./SNESG3D2 on a linux-gnu named sethnx004.vac.com by yy26539 Mon Feb
>>>>>> 27 14:21:13 2006
>>>>>> Libraries linked from /home/yy26539/work/NISSE/petsc-2.3.0/lib/linux-gnu
>>>>>> Configure run at Thu Oct 13 08:23:56 2005
>>>>>> Configure options --with-cc=gcc --with-fc="f77 -N109"
>>>>>> --download-mpich=1 --download-mpich-pm=gforker
>>>>>> --download-f-blas-lapack=1 --with-shared=0
>>>>>> -----------------------------------------------------------------------
>>>>>> [0]PETSC ERROR: Caught signal number 8 FPE: Floating Point
>>>>>> Exception,probably divide by zero
>>>>>> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
>>>>>> [0]PETSC ERROR: likely location of problem given in stack below
>>>>>> [0]PETSC ERROR: --------------- Stack Frames ---------------
>>>>>> [0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
>>>>>> [0]PETSC ERROR:       INSTEAD the line number of the start of the function
>>>>>> [0]PETSC ERROR:       is given.
>>>>>> [0]PETSC ERROR: [0] SNES user function line 0 unknownunknown
>>>>>> [0]PETSC ERROR: [0] SNESComputeFunction line 788 src/snes/interface/snes.c
>>>>>> [0]PETSC ERROR: [0] SNESLineSearchCubic line 514 src/snes/impls/ls/ls.c
>>>>>> [0]PETSC ERROR: --------------------------------------------
>>>>>> [0]PETSC ERROR: User provided function() line 0 in unknown directory
>>>>>> unknown file
>>>>>> [0]PETSC ERROR: Signal received!
>>>>>> [0]PETSC ERROR:  !
>>>>>>
>>>>>>
>>>>>> Suggestions and tips are very welcome!
>>>>>> /nisse
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Nils-Erik Svang�rd
>>>>>> MSN: schweingaard at hotmail.com
>>>>>> Skype: schweingaard
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Nils-Erik Svangård
>>>> MSN: schweingaard at hotmail.com
>>>> Skype: schweingaard
>>>>
>>>>
>>>
>>
>>
>> --
>> Nils-Erik Svangård
>> E-Mail: nilserik at gmail.com
>> MSN: schweingaard at hotmail.com
>> Skype: schweingaard
>> Mobil: +46-(0)70-3612178
>>
>
>
> --
> Nils-Erik Svangård
> E-Mail: nilserik at gmail.com
> MSN: schweingaard at hotmail.com
> Skype: schweingaard
> Mobil: +46-(0)70-3612178
>
>


More information about the petsc-users mailing list