[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