[petsc-users] Fwd: Re: Problem with fortran version of ex29 in ksp
TAY wee-beng
zonexo at gmail.com
Fri May 4 16:42:52 CDT 2012
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.
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120504/0c32d5c5/attachment-0001.htm>
More information about the petsc-users
mailing list