Include both header files. #include <finclude/petscdmda.h> #include <finclude/petscdmda.h90>
The h90 header only includes the interface definitions for Fortran. John On Fri, May 11, 2012 at 8:51 AM, TAY wee-beng <zonexo at gmail.com> wrote: > > > 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> 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> 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> 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> 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> >>>>>>> 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> >>>>>>>> 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> >>>>>>>>> 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> >>>>>>>>>> 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> >>>>>>>>>>> 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/f71f8bfb/attachment-0001.htm>
