[petsc-users] Fwd: Re: Problem with fortran version of ex29 in ksp

TAY wee-beng zonexo at gmail.com
Tue May 8 14:17:06 CDT 2012


Hi,

I compiled and run my code under visual studio 2008 with intel fortran. 
Everything works ok.

However, when I tried to run the code in linux, I got the error as 
below. The error happens when KSPSetUp(ksp,ierr) is called.

However, I am not able to print VecView or MatView to view if there's 
any errors. Is there any recommendation for debugging? I hope I do not 
need to valgrind if possible.

[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, 
probably memory access out of range
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[0]PETSC ERROR: or see 
http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind[0]PETSC 
ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to 
find memory corruption errors
[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] DM user function line 0 unknownunknown
[0]PETSC ERROR: [0] DMComputeFunction line 2085 
/home/wtay/Codes/petsc-dev/src/dm/interface/dm.c
[0]PETSC ERROR: [0] KSPSetUp line 182 
/home/wtay/Codes/petsc-dev/src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: --------------------- Error Message 
------------------------------------
[0]PETSC ERROR: Signal received!
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: Petsc Development HG revision: 
7ecdd63ec420b1659b960e65d96e822c5ac1a968  HG Date: Mon May 07 21:42:26 
2012 -0500
[0]PETSC ERROR: See docs/changes/index.html for recent updates.
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
[0]PETSC ERROR: See docs/index.html for manual pages.
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: ./ex29f on a petsc-3.2 named hpc12 by wtay Tue May  8 
20:45:42 2012
[0]PETSC ERROR: Libraries linked from 
/home/wtay/Lib/petsc-3.2-dev_shared_debug/lib
[0]PETSC ERROR: Configure run at Tue May  8 10:47:59 2012
[0]PETSC ERROR: Configure options --with-mpi-dir=/opt/openmpi-1.5.3/ 
--with-blas-lapack-dir=/opt/intelcpro-11.1.059/mkl/lib/em64t/ 
--with-debugging=1 --download-hypre=1 
--prefix=/home/wtay/Lib/petsc-3.2-dev_shared_debug --known-mpi-shared=1 
--with-shared-libraries
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: User provided function() line 0 in unknown directory 
unknown file
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 59.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.

Yours sincerely,

TAY wee-beng


On 5/5/2012 1:43 AM, Matthew Knepley wrote:
> On Fri, May 4, 2012 at 5:42 PM, TAY wee-beng <zonexo at gmail.com 
> <mailto:zonexo at gmail.com>> wrote:
>
>     Hi,
>
>     I wonder if you people are interested to include my ex29 fortran
>     version in the petsc examples, which can help people who are using
>     fortran.
>
>
> Yes, we will definitely include it. Please send the source, and a 
> representative output with run options.
>
>   Thanks,
>
>      Matt
>
>     Thanks.
>
>     Yours sincerely,
>
>     TAY wee-beng
>
>
>     On 4/5/2012 9:28 PM, Matthew Knepley wrote:
>>     On Fri, May 4, 2012 at 3:24 PM, TAY wee-beng <zonexo at gmail.com
>>     <mailto:zonexo at gmail.com>> wrote:
>>
>>
>>         On 4/5/2012 9:16 PM, Barry Smith wrote:
>>
>>                Do an hg pull and then run make in
>>             src/mat/interface/ftn-custom/
>>
>>                 Then it should link.
>>
>>                Barry
>>
>>                There was a E missing from the all caps name of the
>>             function.
>>
>>         After hg pull, I did:
>>
>>         cd src//mat/interface/ftn-custom/
>>
>>         User at User-PC
>>         /cygdrive/c/temp/petsc-dev/src/mat/interface/ftn-custom
>>         $ make
>>         make[1]: Warning: File
>>         `/cygdrive/c/temp/petsc-dev/petsc-3.2-dev_win32_vs2008/lib/libpetsc.lib(zmatregf.o)'
>>         has modification time 787 s in the future
>>         make[1]: Nothing to be done for `libc'.
>>         make[1]: warning:  Clock skew detected.  Your build may be
>>         incomplete.
>>
>>         But it still can't work.
>>
>>
>>     Something is messed up with the clock on this machine.
>>
>>     HOWEVER, development requires certain basic skills in order to
>>     debug your work. We
>>     cannot be the ones debugging your code. Now
>>
>>       nm $PETSC_ARCH/lib/libpetsc.a | grep -i MatNullSpaceRemove
>>
>>      will look for the symbol.
>>
>>         Matt
>>
>>
>>
>>             On May 4, 2012, at 2:11 PM, Matthew Knepley wrote:
>>
>>                 On Fri, May 4, 2012 at 3:01 PM, TAY
>>                 wee-beng<zonexo at gmail.com <mailto:zonexo at gmail.com>>
>>                  wrote:
>>
>>                 On 4/5/2012 5:17 PM, Matthew Knepley wrote:
>>
>>                     On Fri, May 4, 2012 at 11:05 AM, TAY
>>                     wee-beng<zonexo at gmail.com
>>                     <mailto:zonexo at gmail.com>>  wrote:
>>
>>                     On 4/5/2012 3:05 PM, Matthew Knepley wrote:
>>
>>                         On Fri, May 4, 2012 at 8:59 AM, TAY
>>                         wee-beng<zonexo at gmail.com
>>                         <mailto:zonexo at gmail.com>>  wrote:
>>
>>                         Hi,
>>
>>                         Is there anything else I can try to get it
>>                         working right?
>>
>>                         The MatGetNullSpaceRemove() is missing.
>>
>>                     Where should I add MatGetNullSpaceRemove and what
>>                     are its syntax? I googled but there's no results.
>>
>>                     Fixed in p;etsc-dev:
>>
>>                     http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatNullSpaceRemove.html
>>
>>                 I just compiled the updated petsc-dev but I got the
>>                 same error msg when I use:
>>
>>                 call MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)
>>
>>                 error LNK2019: unresolved external symbol
>>                 MATNULLSPACEREMOVE referenced in function COMPUTERHS
>>                 1>c:\obj_tmp\ex29f\Debug\ex29f.exe : fatal error
>>                 LNK1120: 1 unresolved externals
>>
>>                 That function is in:
>>
>>                   src/mat/interface/ftn-custom/zmatrixf.c
>>
>>                 Did that compile? Can you see the symbol in libpetsc.a?
>>
>>                     Matt
>>
>>                          Matt
>>
>>                     Thanks.
>>
>>                            Matt
>>
>>                         Thanks!
>>
>>
>>                         On 2/5/2012 10:11 PM, Matthew Knepley wrote:
>>
>>                             On Wed, May 2, 2012 at 1:55 PM, TAY
>>                             wee-beng<zonexo at gmail.com
>>                             <mailto:zonexo at gmail.com>>  wrote:
>>                             Hi,
>>
>>                             I did a MatView and VecView on both C and
>>                             Fortran, right after Mat and Vec
>>                             assembly. I have attached the printout
>>                             below. They are exactly the same, but yet
>>                             the result is different in Neumann
>>                             condition. However, the dirichlet
>>                             condition gives the correct ans. Is there
>>                             anything else that could be wrong even if
>>                             the Mat and Vec are the same?
>>
>>                             Did you set the null space for the matrix
>>                             when you have Neumann conditions?
>>
>>                         Yes, for the matrix, I set as:
>>
>>                         call
>>                         MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL_OBJECT,nullspace,ierr)
>>
>>                             call MatSetNullSpace(jac,nullspace,ierr)
>>
>>                             call MatNullSpaceDestroy(nullspace,ierr)
>>
>>                         for the Vec,
>>
>>                         call
>>                         MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL_OBJECT,nullspace,ierr)
>>
>>                             !call
>>                         MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)
>>
>>                             call MatNullSpaceDestroy(nullspace,ierr)
>>
>>                         MatNullSpaceRemove was comment out because
>>                         there's error during linking
>>
>>
>>                                Matt
>>
>>                             Thanks!
>>
>>                             Fortran:
>>
>>                             Matrix Object: 1 MPI processes
>>                               type: seqaij
>>                             row 0: (0, 2)  (1, -1)  (3, -1)
>>                             row 1: (0, -1)  (1, 3)  (2, -1)  (4, -1)
>>                             row 2: (1, -1)  (2, 2)  (5, -1)
>>                             row 3: (0, -1)  (3, 3)  (4, -1)  (6, -1)
>>                             row 4: (1, -1)  (3, -1)  (4, 4)  (5, -1)
>>                              (7, -1)
>>                             row 5: (2, -1)  (4, -1)  (5, 3)  (8, -1)
>>                             row 6: (3, -1)  (6, 2)  (7, -1)
>>                             row 7: (4, -1)  (6, -1)  (7, 3)  (8, -1)
>>                             row 8: (5, -1)  (7, -1)  (8, 2)
>>                             Vector Object:Vec_0000000084000000_0 1
>>                             MPI processes
>>                               type: mpi
>>                             Process [0]
>>                             0.25
>>                             0.0205213
>>                             1.135e-005
>>                             0.0205213
>>                             0.00168449
>>                             9.31663e-007
>>                             1.135e-005
>>                             9.31663e-007
>>                             5.15289e-010
>>                             Vector Object:Vec_0000000084000000_1 1
>>                             MPI processes
>>                               type: mpi
>>                             Process [0]
>>                             0.14924
>>                             0.0242397
>>                             -0.0260347
>>                             0.0242397
>>                             -0.0256192
>>                             -0.0400102
>>                             -0.0260347
>>                             -0.0400102
>>                             -0.0400102
>>                             Press any key to continue . . .
>>
>>                             C:
>>
>>                             Matrix Object: 1 MPI processes
>>                               type: seqaij
>>                             row 0: (0, 2)  (1, -1)  (3, -1)
>>                             row 1: (0, -1)  (1, 3)  (2, -1)  (4, -1)
>>                             row 2: (1, -1)  (2, 2)  (5, -1)
>>                             row 3: (0, -1)  (3, 3)  (4, -1)  (6, -1)
>>                             row 4: (1, -1)  (3, -1)  (4, 4)  (5, -1)
>>                              (7, -1)
>>                             row 5: (2, -1)  (4, -1)  (5, 3)  (8, -1)
>>                             row 6: (3, -1)  (6, 2)  (7, -1)
>>                             row 7: (4, -1)  (6, -1)  (7, 3)  (8, -1)
>>                             row 8: (5, -1)  (7, -1)  (8, 2)
>>                             Vector Object:Vec_0x1d3b000_0 1 MPI processes
>>                               type: mpi
>>                             Process [0]
>>                             0.25
>>                             0.0205212
>>                             1.135e-05
>>                             0.0205212
>>                             0.00168449
>>                             9.31663e-07
>>                             1.135e-05
>>                             9.31663e-07
>>                             5.15288e-10
>>                             Vector Object:Vec_0x1d3b000_1 1 MPI processes
>>                               type: mpi
>>                             Process [0]
>>                             0.139311
>>                             0.0305751
>>                             -0.0220633
>>                             0.0305751
>>                             -0.0135158
>>                             -0.042185
>>                             -0.0220633
>>                             -0.042185
>>                             -0.058449
>>
>>
>>
>>                             Yours sincerely,
>>
>>                             TAY wee-beng
>>
>>
>>                             On 1/5/2012 11:54 PM, Matthew Knepley wrote:
>>
>>                                 On Tue, May 1, 2012 at 5:48 PM, TAY
>>                                 wee-beng<zonexo at gmail.com
>>                                 <mailto:zonexo at gmail.com>>  wrote:
>>                                 Hi,
>>
>>                                 Do you mean my method is wrong?
>>
>>                                 I am following the template of ex22f,
>>
>>                                 where the variables are declared as :
>>
>>                                 PetscScalar  v(5)
>>
>>                                 MatStencil   row(4),col(4,5)
>>
>>                                 Hence,
>>
>>                                 for the neumann BC
>>
>>                                 num = 1
>>
>>                                                if (j/=0) then
>>
>>                                                    v(num) = -rho*HxdHy
>>
>>                                                  
>>                                  col(MatStencil_i,num) = i
>>
>>                                                  
>>                                  col(MatStencil_j,num) = j-1
>>
>>                                                    num = num + 1
>>
>>                                                end if
>>
>>                                                if (i/=0) then
>>
>>                                                    v(num) = -rho*HydHx
>>
>>                                                  
>>                                  col(MatStencil_i,num) = i-1
>>
>>                                                  
>>                                  col(MatStencil_j,num) = j
>>
>>                                                    num = num + 1
>>
>>                                                end if
>>
>>                                                if (i/=mx-1) then
>>
>>                                                    v(num) = -rho*HydHx
>>
>>                                                  
>>                                  col(MatStencil_i,num) = i+1
>>
>>                                                  
>>                                  col(MatStencil_j,num) = j
>>
>>                                                    num = num + 1
>>
>>                                                end if
>>
>>                                                if (j/=my-1) then
>>
>>                                                    v(num) = -rho*HxdHy
>>
>>                                                  
>>                                  col(MatStencil_i,num) = i
>>
>>                                                  
>>                                  col(MatStencil_j,num) = j+1
>>
>>                                                    num = num + 1
>>
>>                                                end if
>>
>>                                                v(num) =
>>                                 ((num-1)/2.0)*rho*(HxdHy + HydHx)
>>
>>                                                print *, v
>>
>>                                                col(MatStencil_i,num) = i
>>
>>                                                col(MatStencil_j,num) = j
>>
>>                                                !num = num + 1
>>
>>                                                call
>>                                 MatSetValuesStencil(jac,i1,row,num,col,v,INSERT_VALUES,ierr)
>>
>>                                 I do not get any more out of range
>>                                 error. However,my ans is still
>>                                 different from that of ex29 in C.
>>
>>                                 This is very simple. You have an
>>                                 error in your code. Checking it is
>>                                 very simple: run the code and
>>                                 break in MatSetValues(). Make sure
>>                                 ex29 makes calls with exactly the
>>                                 same indices as your ex29f.
>>
>>                                     Matt
>>
>>                                 Yours sincerely,
>>
>>                                 TAY wee-beng
>>
>>                                 -- 
>>                                 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
>>
>>
>>
>>                             -- 
>>                             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
>>
>>
>>
>>                         -- 
>>                         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
>>
>>
>>
>>                     -- 
>>                     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
>>
>>
>>
>>                 -- 
>>                 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
>>
>>
>>
>>
>>     -- 
>>     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
>
>
>
>
> -- 
> 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/20120508/bc27acb1/attachment-0001.htm>


More information about the petsc-users mailing list