[petsc-users] Fwd: Re: Problem with fortran version of ex29 in ksp
TAY wee-beng
zonexo at gmail.com
Fri May 11 08:51:23 CDT 2012
On 11/5/2012 3:30 PM, Matthew Knepley wrote:
> On Fri, May 11, 2012 at 9:24 AM, TAY wee-beng <zonexo at gmail.com
> <mailto:zonexo at gmail.com>> wrote:
>
> Hi,
>
> I have been using the GUI environment to do debugging so I am a
> bit reluctant to learn Valgrind as its outputs seems a bit
> daunting. But I guess John is right. I've been spending these few
> days learning bit by bit.
>
> I realised that the error occurs in computerhs, at:
>
>
> I bet this is a beautiful Fortranism. Do you include the F90 header
> file with the interface definition?
> If not, Fortran just craps out like this. I can't stress enough how
> much time would be saved by
> switching languages to something with at least a modicum of error
> checking.
I initially used:
#include "finclude/petsc.h90"
Compilation and linking was fine in Linux and vs2008.
Now I changed it to what ex22.F was using :
#include <finclude/petscsys.h>
#include <finclude/petscvec.h>
#include <finclude/petscmat.h>
#include <finclude/petscpc.h>
#include <finclude/petscksp.h>
#include <finclude/petscdmda.h>
Compiling was ok but linking failed in Linux and VS2008:
undefined reference to `dmdavecgetarrayf90_'
I tried changing #include <finclude/petscdmda.h> to #include
<finclude/petscdmda.h90> and everything was ok in VS2008 again, giving
the right answers.
However, in Linux, I got the following error:
[wtay at hpc12:tutorials]$ /opt/openmpi-1.5.3/bin/mpif90 -c -fPIC -g
-I/home/wtay/Lib/petsc-3.2-dev_shared_debug/include
-I/home/wtay/Lib/petsc-3.2-dev_shared_debug/include
-I/opt/openmpi-1.5.3/include -o ex29f.o ex29f.F90
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(25):
error #5082: Syntax error, found '::' when expecting one of: ( % : . = =>
DMDABoundaryType :: pt
-------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(26):
error #5082: Syntax error, found '::' when expecting one of: ( % : . = =>
DMDAStencilType :: st
-------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(25):
error #6590: This statement is not permitted as a statement within a
derived-type-def
DMDABoundaryType :: pt
--------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(26):
error #6590: This statement is not permitted as a statement within a
derived-type-def
DMDAStencilType :: st
--------^
ex29f.F90(68): error #6404: This name does not have a type, and must
have an explicit type. [DMDA_BOUNDARY_NONE]
call
DMDACreate2d(PETSC_COMM_WORLD,DMDA_BOUNDARY_NONE,DMDA_BOUNDARY_NONE,DMDA_STENCIL_STAR,i3,i3,PETSC_DECIDE,PETSC_DECIDE,i1,i1,PETSC_NULL_INTEGER,PETSC_NULL_INTEGER,da,ierr)
-----------------------------------^
ex29f.F90(68): error #6404: This name does not have a type, and must
have an explicit type. [DMDA_STENCIL_STAR]
call
DMDACreate2d(PETSC_COMM_WORLD,DMDA_BOUNDARY_NONE,DMDA_BOUNDARY_NONE,DMDA_STENCIL_STAR,i3,i3,PETSC_DECIDE,PETSC_DECIDE,i1,i1,PETSC_NULL_INTEGER,PETSC_NULL_INTEGER,da,ierr)
-------------------------------------------------------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(25):
error #5082: Syntax error, found '::' when expecting one of: ( % : . = =>
DMDABoundaryType :: pt
-------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(26):
error #5082: Syntax error, found '::' when expecting one of: ( % : . = =>
DMDAStencilType :: st
-------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(25):
error #6590: This statement is not permitted as a statement within a
derived-type-def
DMDABoundaryType :: pt
--------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(26):
error #6590: This statement is not permitted as a statement within a
derived-type-def
DMDAStencilType :: st
--------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(25):
error #5082: Syntax error, found '::' when expecting one of: ( % : . = =>
DMDABoundaryType :: pt
-------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(26):
error #5082: Syntax error, found '::' when expecting one of: ( % : . = =>
DMDAStencilType :: st
-------------------------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(25):
error #6590: This statement is not permitted as a statement within a
derived-type-def
DMDABoundaryType :: pt
--------^
/home/wtay/Lib/petsc-3.2-dev_shared_debug/include/finclude/ftn-custom/petscdmda.h90(26):
error #6590: This statement is not permitted as a statement within a
derived-type-def
DMDAStencilType :: st
Is there some errors in petscdmda.h90?
>
> Matt
>
> *call DMDAVecRestoreArrayF90(da,b,array,ierr)*
>
> ==27464== Invalid write of size 8
> ==27464== at 0x402835: computerhs_ (ex29f.F90:119)
> ==27464== Address 0xfffffffffffffef0 is not stack'd, malloc'd or
> (recently) free'd
> ==27464==
> [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!
>
> I have checked that "array" 's values are correct. This statement
> executed without problems in VS2008. If I replace the above with
> something like:
>
> *call VecSet(b,Hy,ierr)*
>
> Everything is fine in Linux.
>
> Is there something wrong with *DMDAVecRestoreArrayF90*?
>
> My code in the area is:
>
> call
> DMDAGetCorners(da,xs,ys,PETSC_NULL_INTEGER,xm,ym,PETSC_NULL_INTEGER,ierr)
>
> call DMDAVecGetArrayF90(da,b,array,ierr)
>
> do j = ys,ys+ym-1
>
> do i = xs,xs+xm-1
>
> array(i,j) =
> exp(-(i*Hx)*(i*Hx)/nu)*exp(-(j*Hy)*(j*Hy)/nu)*Hx*Hy
>
> end do
>
> end do
>
> call DMDAVecRestoreArrayF90(da,b,array,ierr)
>
> call VecAssemblyBegin(b,ierr)
>
> call VecAssemblyEnd(b,ierr)
>
>
> Yours sincerely,
>
> TAY wee-beng
>
>
> On 8/5/2012 9:41 PM, John Mousel wrote:
>> TAY wee-bing,
>>
>> If you want to be a programmer that writes interesting and
>> reliable code, you need to be willing to use the tools of the
>> trade. I can't think of a bigger time-saver than Valgrind. I
>> would suggest that you learn to use it and use it a lot. I bet it
>> will lead you to the root of your problem pretty quickly.
>>
>> John
>>
>> On Tue, May 8, 2012 at 2:17 PM, TAY wee-beng <zonexo at gmail.com
>> <mailto:zonexo at gmail.com>> wrote:
>>
>> 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
>>
>>
>
>
>
> --
> 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/20120511/7cf300cb/attachment-0001.htm>
More information about the petsc-users
mailing list