[petsc-users] matrix free and preconditioner

Kontsantinos Kontzialis ckontzialis at lycos.com
Tue Mar 22 21:46:25 CDT 2011


Dear all,

I'm using a matrix free formulation of the Newton-Krylov method.
     My code is running when I use a constant matrix as a preconditioner.
     However, when I want to use another matrix (problem specific) I read to the
     manual that I have to use the -snes_mf_operator option, with
     appropriately setting
     snessetjacobian function. I do that in my code as follows:
     ierr = MatCreateSNESMF(sys.snes,&sys.J);
          CHKERRQ(ierr);
     ierr = SNESSetJacobian(sys.snes, sys.J, sys.P, jacobian_matrix,&sys);
           CHKERRQ(ierr);
     I have preallocated space for matrix sys.P, but when I start running I
     get the following error:
     [1]PETSC ERROR: --------------------- Error Message
     ------------------------------------
     [1]PETSC ERROR: Null argument, when expecting valid pointer!
     [1]PETSC ERROR: Null Object: Parameter # 1!
     [1]PETSC ERROR:
     ------------------------------------------------------------------------
     [1]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7, Mon Dec 20

- Ignored:
     14:26:37 CST 2010
     [1]PETSC ERROR: See docs/changes/index.html for recent updates.
     [1]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
     [1]PETSC ERROR: See docs/index.html for manual pages.
     [1]PETSC ERROR:
     ------------------------------------------------------------------------
     [1]PETSC ERROR: ./hoac_forth on a linux-gnu named localhost by
     kontzialis Wed Mar 23 04:42:52 2011
     [1]PETSC ERROR: Libraries linked from
     /home/kontzialis/PETSC/petsc-3.1-p7/linux-gnu-c-debug/lib
     [1]PETSC ERROR: Configure run at Mon Feb 21 14:55:24 2011
     [1]PETSC ERROR: Configure options --with-debugging=1 --with-cc=mpicc
     --with-fc=mpif90 --with-shared=1 --with-shared-libraries --wi[0]PETSC
     ERROR: --------------------- Error Message
     ------------------------------------
     [0]PETSC ERROR: Null argument, when expecting valid pointer!
     [0]PETSC ERROR: Null Object: Parameter # 1!
     [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: ./hoac_forth on a linux-gnu named localhost by
     kontzialis Wed Mar 23 04:42:52 2011
     [0]PETSC ERROR: Libraries linked from
     /home/kontzialis/PETSC/petsc-3.1-p7/linux-gnu-c-debug/lib
     [0]PETSC ERROR: Configure run at Mon Feb 21 14:55:24 2011
     [0]PETSC ERROR: Configure options --with-debugging=1 --with-cc=mpicc
     --with-fc=mpif90 --with-shared=1 --with-shared-libraries
     --with-large-file-io=1 --with-precision=double --with-blacs=1
     --download-blacs=yes --download-f-blas-lapack=yes --with-plapack=1
     --download-plapack=yes --with-scalapack=1 --download-scalapack=yes
     --with-superlu=1 --download-superlu=yes --with-superlu_dist=1
     --download-superlu_dist=yes --with-ml=1 --download-ml=yes
     --with-umfpack=1 --download-umfpack=yes --with-mpi=1 --download-mpich=1
     --with-sundials=1 --download-sundials=1 --with-parmetis=1
     --download-parmetis=1 --with-hypre=1 --download-hypre=1
     [1]PETSC ERROR:
     ------------------------------------------------------------------------
     [1]PETSC ERROR: PetscObjectGetComm() line 34 in src/sys/objects/gcomm.c
     [1]PETSC ERROR: VecNormBegin() line 495 in src/vec/vec/utils/comb.c
     [1]PETSC ERROR: MatMFFDCompute_WP() line 73 in src/mat/impls/mffd/wp.c
     [1]PETSC ERROR: MatMult_MFFD() line 315 in src/mat/impls/mffd/mffd.c
     [1]PETSC ERROR: MatMult() line 1899 in src/mat/interface/matrix.c
     [1]PETSC ERROR: PCApplyBAorAB() line 585 in src/ksp/pc/interface/precon.c
     [1]PETSC ERROR: Gth-large-file-io=1 --with-precision=double
     --with-blacs=1 --download-blacs=yes --download-f-blas-lapack=yes
     --with-plapack=1 --download-plapack=yes --with-scalapack=1
     --download-scalapack=yes --with-superlu=1 --download-superlu=yes
     --with-superlu_dist=1 --download-superlu_dist=yes --with-ml=1
     --download-ml=yes --with-umfpack=1 --download-umfpack=yes --with-mpi=1
     --download-mpich=1 --with-sundials=1 --download-sundials=1
     --with-parmetis=1 --download-parmetis=1 --with-hypre=1 --download-hypre=1
     [0]PETSC ERROR:
     ------------------------------------------------------------------------
     [0]PETSC ERROR: PetscObjectGetComm() line 34 in src/sys/objects/gcomm.c
     [0]PETSC ERROR: VecNormBegin() line 495 in src/vec/vec/utils/comb.c
     [0]PETSC ERROR: MatMFFDCompute_WP() line 73 in src/mat/impls/mffd/wp.c
     [0]PETSC ERROR: MatMult_MFFD() line 315 in src/mat/impls/mffd/mffd.c
     [0]PETSC ERROR: MatMult() line 1899 in src/mat/interface/matrix.c
     [0]PETSC ERROR: PCApplyBAorAB() line 585 in src/ksp/pc/interface/precon.c
     [0]PETSC ERROR: GMREScycle() line 161 in src/ksp/ksp/impls/gmres/gmres.c
     [1]PETSC ERROR: KSPSolve_GMRES() line 241 in src/ksp/ksp/impls/gmres/gmres.c
     [1]PETSC ERROR: KSPSolve() line 396 in src/ksp/ksp/interface/itfunc.c
     [1]PETSC ERROR: SNES_KSPSolve() line 2944 in src/snes/interface/snes.c
     [1]PETSC ERROR: SNESSolve_LS() line 191 in src/snes/impls/ls/ls.c
     [1]PETSC ERROR: SNESSolve() line 2255 in src/snes/interface/snes.c
     [1]PETSC ERROR: User provided function() line 33 in
     "unknowndirectory/"../crank_nickolson.c
     [1]PETSC ERROR: User provided function() line 84 in
     "unknowndirectory/"../implicit_time.c
     [1]PETSC ERROR: User provided function() line 1158 in
     "unknowndirectory/"../hoac.c
     MREScycle() line 161 in src/ksp/ksp/impls/gmres/gmres.c
     [0]PETSC ERROR: KSPSolve_GMRES() line 241 in src/ksp/ksp/impls/gmres/gmres.c
     [0]PETSC ERROR: KSPSolve() line 396 in src/ksp/ksp/interface/itfunc.c
     [0]PETSC ERROR: SNES_KSPSolve() line 2944 in src/snes/interface/snes.c
     [0]PETSC ERROR: SNESSolve_LS() line 191 in src/snes/impls/ls/ls.c
     [0]PETSC ERROR: SNESSolve() line 2255 in src/snes/interface/snes.c
     [0]PETSC ERROR: User provided function() line 33 in
     "unknowndirectory/"../crank_nickolson.c
     [0]PETSC ERROR: User provided function() line 84 in
     "unknowndirectory/"../implicit_time.c
     [0]PETSC ERROR: User provided function() line 1158 in
     "unknowndirectory/"../hoac.c

     Please help.

     Costas


- Done.



matrix free and preconditioner.eml

Subject:
matrix free and preconditioner
From:
Kontsantinos Kontzialis <ckontzialis at lycos.com>
Date:
Wed, 23 Mar 2011 04:43:43 +0200

To:
petsc-users-request at mcs.anl.gov


Dear Petsc team,

  I'm using a matrix free formulation of the Newton-Krylov method.
My code is running when I use a constant matrix as a preconditioner.
However, when I want to use another matrix (problem specific) I read to the
manual that I have to use the -snes_mf_operator option, with 
appropriately setting
snessetjacobian function. I do that in my code as follows:

ierr = MatCreateSNESMF(sys.snes, &sys.J);
     CHKERRQ(ierr);

ierr = SNESSetJacobian(sys.snes, sys.J, sys.P, jacobian_matrix, &sys);
      CHKERRQ(ierr);

I have preallocated space for matrix sys.P, but when I start running I 
get the following error:

[1]PETSC ERROR: --------------------- Error Message 
------------------------------------
[1]PETSC ERROR: Null argument, when expecting valid pointer!
[1]PETSC ERROR: Null Object: Parameter # 1!
[1]PETSC ERROR: 
------------------------------------------------------------------------
[1]PETSC ERROR: Petsc Release Version 3.1.0, Patch 7, Mon Dec 20 
14:26:37 CST 2010
[1]PETSC ERROR: See docs/changes/index.html for recent updates.
[1]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
[1]PETSC ERROR: See docs/index.html for manual pages.
[1]PETSC ERROR: 
------------------------------------------------------------------------
[1]PETSC ERROR: ./hoac_forth on a linux-gnu named localhost by 
kontzialis Wed Mar 23 04:42:52 2011
[1]PETSC ERROR: Libraries linked from 
/home/kontzialis/PETSC/petsc-3.1-p7/linux-gnu-c-debug/lib
[1]PETSC ERROR: Configure run at Mon Feb 21 14:55:24 2011
[1]PETSC ERROR: Configure options --with-debugging=1 --with-cc=mpicc 
--with-fc=mpif90 --with-shared=1 --with-shared-libraries --wi[0]PETSC 
ERROR: --------------------- Error Message 
------------------------------------
[0]PETSC ERROR: Null argument, when expecting valid pointer!
[0]PETSC ERROR: Null Object: Parameter # 1!
[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: ./hoac_forth on a linux-gnu named localhost by 
kontzialis Wed Mar 23 04:42:52 2011
[0]PETSC ERROR: Libraries linked from 
/home/kontzialis/PETSC/petsc-3.1-p7/linux-gnu-c-debug/lib
[0]PETSC ERROR: Configure run at Mon Feb 21 14:55:24 2011
[0]PETSC ERROR: Configure options --with-debugging=1 --with-cc=mpicc 
--with-fc=mpif90 --with-shared=1 --with-shared-libraries 
--with-large-file-io=1 --with-precision=double --with-blacs=1 
--download-blacs=yes --download-f-blas-lapack=yes --with-plapack=1 
--download-plapack=yes --with-scalapack=1 --download-scalapack=yes 
--with-superlu=1 --download-superlu=yes --with-superlu_dist=1 
--download-superlu_dist=yes --with-ml=1 --download-ml=yes 
--with-umfpack=1 --download-umfpack=yes --with-mpi=1 --download-mpich=1 
--with-sundials=1 --download-sundials=1 --with-parmetis=1 
--download-parmetis=1 --with-hypre=1 --download-hypre=1
[1]PETSC ERROR: 
------------------------------------------------------------------------
[1]PETSC ERROR: PetscObjectGetComm() line 34 in src/sys/objects/gcomm.c
[1]PETSC ERROR: VecNormBegin() line 495 in src/vec/vec/utils/comb.c
[1]PETSC ERROR: MatMFFDCompute_WP() line 73 in src/mat/impls/mffd/wp.c
[1]PETSC ERROR: MatMult_MFFD() line 315 in src/mat/impls/mffd/mffd.c
[1]PETSC ERROR: MatMult() line 1899 in src/mat/interface/matrix.c
[1]PETSC ERROR: PCApplyBAorAB() line 585 in src/ksp/pc/interface/precon.c
[1]PETSC ERROR: Gth-large-file-io=1 --with-precision=double 
--with-blacs=1 --download-blacs=yes --download-f-blas-lapack=yes 
--with-plapack=1 --download-plapack=yes --with-scalapack=1 
--download-scalapack=yes --with-superlu=1 --download-superlu=yes 
--with-superlu_dist=1 --download-superlu_dist=yes --with-ml=1 
--download-ml=yes --with-umfpack=1 --download-umfpack=yes --with-mpi=1 
--download-mpich=1 --with-sundials=1 --download-sundials=1 
--with-parmetis=1 --download-parmetis=1 --with-hypre=1 --download-hypre=1
[0]PETSC ERROR: 
------------------------------------------------------------------------
[0]PETSC ERROR: PetscObjectGetComm() line 34 in src/sys/objects/gcomm.c
[0]PETSC ERROR: VecNormBegin() line 495 in src/vec/vec/utils/comb.c
[0]PETSC ERROR: MatMFFDCompute_WP() line 73 in src/mat/impls/mffd/wp.c
[0]PETSC ERROR: MatMult_MFFD() line 315 in src/mat/impls/mffd/mffd.c
[0]PETSC ERROR: MatMult() line 1899 in src/mat/interface/matrix.c
[0]PETSC ERROR: PCApplyBAorAB() line 585 in src/ksp/pc/interface/precon.c
[0]PETSC ERROR: GMREScycle() line 161 in src/ksp/ksp/impls/gmres/gmres.c
[1]PETSC ERROR: KSPSolve_GMRES() line 241 in 
src/ksp/ksp/impls/gmres/gmres.c
[1]PETSC ERROR: KSPSolve() line 396 in src/ksp/ksp/interface/itfunc.c
[1]PETSC ERROR: SNES_KSPSolve() line 2944 in src/snes/interface/snes.c
[1]PETSC ERROR: SNESSolve_LS() line 191 in src/snes/impls/ls/ls.c
[1]PETSC ERROR: SNESSolve() line 2255 in src/snes/interface/snes.c
[1]PETSC ERROR: User provided function() line 33 in 
"unknowndirectory/"../crank_nickolson.c
[1]PETSC ERROR: User provided function() line 84 in 
"unknowndirectory/"../implicit_time.c
[1]PETSC ERROR: User provided function() line 1158 in 
"unknowndirectory/"../hoac.c
MREScycle() line 161 in src/ksp/ksp/impls/gmres/gmres.c
[0]PETSC ERROR: KSPSolve_GMRES() line 241 in 
src/ksp/ksp/impls/gmres/gmres.c
[0]PETSC ERROR: KSPSolve() line 396 in src/ksp/ksp/interface/itfunc.c
[0]PETSC ERROR: SNES_KSPSolve() line 2944 in src/snes/interface/snes.c
[0]PETSC ERROR: SNESSolve_LS() line 191 in src/snes/impls/ls/ls.c
[0]PETSC ERROR: SNESSolve() line 2255 in src/snes/interface/snes.c
[0]PETSC ERROR: User provided function() line 33 in 
"unknowndirectory/"../crank_nickolson.c
[0]PETSC ERROR: User provided function() line 84 in 
"unknowndirectory/"../implicit_time.c
[0]PETSC ERROR: User provided function() line 1158 in 
"unknowndirectory/"../hoac.c

Please help.

Costas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110323/e043901a/attachment-0001.htm>


More information about the petsc-users mailing list