[petsc-users] matrix-free KSPLSQR and matrix norm

Alexander Grayver agrayver at gfz-potsdam.de
Mon Jun 27 12:44:46 CDT 2011


Actually, I tried, but haven't managed to do this in fortran:

test.exe -log_summary -ksp_view
[0]PETSC ERROR: MatShellSetOperation_Fortran() line 107 in 
src/mat/impls/shell/ftn-custom/D:\dev\PETSC-~3.1-P\src\mat\impls\shell\FTN-CU~1\zshellf.c

job aborted:
[ranks] message

[0] application aborted
aborting MPI_COMM_WORLD, error 1, comm rank 0

It seems that MATOP_NORM is not supported from Fortran. Why is that so?

Regards,
Alexander

On 27.06.2011 17:12, Matthew Knepley wrote:
> On Mon, Jun 27, 2011 at 9:54 AM, Alexander Grayver 
> <agrayver at gfz-potsdam.de <mailto:agrayver at gfz-potsdam.de>> wrote:
>
>     >> Please send the entire error message (this is missing the
>     stack), but I am guessing you
>     >> are not changed the default preconditioner (ILU) which cannot
>     act on a shell matrix. Use
>     >> -ksp_view to see what solver is begin used.
>
>     The full error message:
>
>     test.exe -log_summary -ksp_view
>
>
> The LSQR solver uses the Frobenius norm of the matrix. In order to use 
> a MATSHELL, you
> must implement MatNorm using
>
> http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-dev/docs/manualpages/Mat/MatShellSetOperation.html
>
>   Thanks,
>
>     Matt
>
>
>     [0]PETSC ERROR: --------------------- Error Message
>     ------------------------------------
>     [0]PETSC ERROR: No support for this operation for this object type!
>     [0]PETSC ERROR: Mat type shell!
>     [0]PETSC ERROR:
>     ------------------------------------------------------------------------
>     [0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7, Mon Dec 20
>     14:26:37 CST 2010
>     [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: test.exe on a cygwin-cx named M0. by Unknown Mon
>     Jun 27 16:51:32 2011
>     [0]PETSC ERROR: Libraries linked from
>     /cygdrive/d/dev/petsc-3.1-p7/cygwin-cxx-debug/lib
>
>     [0]PETSC ERROR: Configure run at Fri Mar  4 10:10:06 2011
>     [0]PETSC ERROR: Configure options --with-cc="win32fe cl"
>     --with-fc="win32fe ifort" --with-cxx="win32fe cl"
>     --with-windows-graphics=0
>     --with-precision=double --with-scalar-type=complex
>     --with-clanguage=cxx
>     --with-mpi-include=/cygdrive/d/Dev/HPC_2008_SDK/Include --wi
>     /HPC_2008_SDK/Lib/amd64/msmpi.lib,/cygdrive/d/Dev/HPC_2008_SDK/Lib/amd64/msmpifec.lib]"
>     --useThreads=0 --useThreads=0
>
>     [0]PETSC ERROR:
>     ------------------------------------------------------------------------
>     [0]PETSC ERROR: MatNorm() line 4512 in
>     src/mat/interface/D:\dev\PETSC-~3.1-P\src\mat\INTERF~1\matrix.c
>     [0]PETSC ERROR: KSPSolve_LSQR() line 90 in
>     src/ksp/ksp/impls/lsqr/D:\dev\PETSC-~3.1-P\src\ksp\ksp\impls\lsqr\lsqr.c
>     [0]PETSC ERROR: KSPSolve() line 396 in
>     src/ksp/ksp/interface/D:\dev\PETSC-~3.1-P\src\ksp\ksp\INTERF~1\itfunc.c
>
>     job aborted:
>     [ranks] message
>
>     [0] application aborted
>     aborting MPI_COMM_WORLD, error 56, comm rank 0
>
>
>     On 27.06.2011 16 <tel:27.06.2011%2016>:47, Matthew Knepley wrote:
>>     On Mon, Jun 27, 2011 at 9:34 AM, Alexander Grayver
>>     <agrayver at gfz-potsdam.de <mailto:agrayver at gfz-potsdam.de>> wrote:
>>
>>         Thanks Barry,
>>
>>         Now I get this:
>>
>>
>>     Please send the entire error message (this is missing the stack),
>>     but I am guessing you
>>     are not changed the default preconditioner (ILU) which cannot act
>>     on a shell matrix. Use
>>     -ksp_view to see what solver is begin used.
>>
>>        Matt
>>
>>         [0]PETSC ERROR: --------------------- Error Message
>>         ----------------------------
>>         --------
>>         [0]PETSC ERROR: No support for this operation for this object
>>         type!
>>         [0]PETSC ERROR: Mat type shell!
>>
>>         [0]PETSC ERROR:
>>         ----------------------------------------------------------------
>>         --------
>>         [0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7, Mon Dec
>>         20 14:26:37 CST 20
>>         10
>>         [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: test.exe on a cygwin
>>         -cx named MT0. by Unknown Mon Jun 27 16:30:42 2011
>>
>>         [0]PETSC ERROR: Libraries linked from
>>         /cygdrive/d/dev/petsc-3.1-p7/cygwin-cxx-de
>>         bug/lib
>>         [0]PETSC ERROR: Configure run at Fri Mar  4 10:10:06 2011
>>         [0]PETSC ERROR: Configure options --with-cc="win32fe cl"
>>         --with-fc="win32fe ifor
>>         t" --with-cxx="win32fe cl" --with-windows-graphics=0
>>         --download-f-blas-lapack=1
>>         --with-precision=double --with-scalar-type=complex
>>         --with-clanguage=cxx --with-m
>>         pi-include=/cygdrive/d/Dev/HPC_2008_SDK/Include
>>         --with-mpi-lib="[/cygdrive/d/Dev
>>         /HPC_2008_SDK/Lib/amd64/msmpi.lib,/cygdrive/d/Dev/HPC_2008_SDK/Lib/amd64/msmpife
>>         c.lib]" --useThreads=0 --useThreads=0
>>         [0]PETSC ERROR:
>>         ----------------------------------------------------------------
>>         --------
>>         [0]PETSC ERROR: MatNorm() line 4512 in
>>         src/mat/interface/D:\dev\PETSC-3.1-P\src\mat\INTERF~1\matrix.c
>>
>>
>>         On 27.06.2011 16 <tel:27.06.2011%2016>:32, Barry Smith wrote:
>>
>>               You should pass H as third argument to
>>             KSPSetOperators() as well as the second.
>>
>>               Barry
>>
>>             On Jun 27, 2011, at 9:23 AM, Alexander Grayver wrote:
>>
>>                 Hello!
>>
>>                 I'm using matrix-free formulation and KSPLSQR to
>>                 solve normal equations system:
>>
>>                 (A'*A)b = -g
>>
>>                 I managed to write all necessary code:
>>
>>                  call
>>                 MatCreateShell(MPI_COMM_WORLD,m,N,N,N,PETSC_NULL_INTEGER,H,ierr)
>>                  call MatShellSetOperation(H,MATOP_MULT,MFMatMult,ierr)
>>
>>                  call KSPCreate(MPI_COMM_WORLD,ksp,ierr);CHKERRQ(ierr)
>>                  call KSPSetType(ksp,KSPLSQR,ierr);CHKERRQ(ierr)
>>                  call KSPGetPC(ksp,pc,ierr);CHKERRQ(ierr)
>>                  call PCSetType(pc,PCNONE,ierr);CHKERRQ(ierr)
>>                  call
>>                 KSPSetOperators(ksp,H,PETSC_NULL_OBJECT,SAME_PRECONDITIONER,ierr);CHKERRQ(ierr)
>>                  call KSPSolve(ksp,g,b,ierr);CHKERRQ(ierr)
>>
>>
>>                 but fail in KSPSolve stage with that:
>>                 [0]PETSC ERROR: --------------------- Error Message
>>                 ----------------------------
>>                 --------
>>                 [0]PETSC ERROR: Object is in wrong state!
>>                 [0]PETSC ERROR: Mat object's type is not set:
>>                 Argument # 1!
>>                 [0]PETSC ERROR:
>>                 ----------------------------------------------------------------
>>                 --------
>>                 [0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7,
>>                 Mon Dec 20 14:26:37 CST 20
>>                 10
>>                 [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: test.exe on a cygwin
>>
>>                 -cx named MT0. by Unknown Mon Jun 27 16:18:43 2011
>>                 [0]PETSC ERROR: Libraries linked from
>>                 /cygdrive/d/dev/petsc-3.1-p7/cygwin-cxx-de
>>                 bug/lib
>>                 [0]PETSC ERROR: Configure run at Fri Mar  4 10:10:06 2011
>>                 [0]PETSC ERROR: Configure options --with-cc="win32fe
>>                 cl" --with-fc="win32fe ifor
>>                 t" --with-cxx="win32fe cl" --with-windows-graphics=0
>>                 --download-f-blas-lapack=1
>>                 --with-precision=double --with-scalar-type=complex
>>                 --with-clanguage=cxx --with-m
>>                 pi-include=/cygdrive/d/Dev/HPC_2008_SDK/Include
>>                 --with-mpi-lib="[/cygdrive/d/Dev
>>                 /HPC_2008_SDK/Lib/amd64/msmpi.lib,/cygdrive/d/Dev/HPC_2008_SDK/Lib/amd64/msmpife
>>                 c.lib]" --useThreads=0 --useThreads=0
>>                 [0]PETSC ERROR:
>>                 ----------------------------------------------------------------
>>                 --------
>>                 [0]PETSC ERROR: MatNorm() line 4507 in
>>                 src/mat/interface/D:\dev\PETSC-3.1-P\src\mat\INTERF~1\matrix.c
>>                 [0]PETSC ERROR: KSPSolve_LSQR() line 90 in
>>                 src/ksp/ksp/impls/lsqr/D:\dev\PETSC-3.1-P\src\ksp\ksp\impls\lsqr\lsqr.c
>>
>>                 Any suggestions? Do I have to set MATOP_NORM
>>                 operation? Then how?
>>
>>                 Regards,
>>                 Alexander
>>
>>
>>
>>
>>
>>     -- 
>>     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/20110627/be875263/attachment.htm>


More information about the petsc-users mailing list