[petsc-users] ksp solve error with nested matrix

Matthew Knepley knepley at gmail.com
Sat Feb 11 11:46:16 CST 2017


On Sat, Feb 11, 2017 at 11:27 AM, Manav Bhatia <bhatiamanav at gmail.com>
wrote:

> I am now getting this error, which is complaining for an operation for the
> shell matrix. I have only specified the following operation for the matrix:
> “MATOP_MULT”.
>
> I am calling the solver with -pc_type fieldsplit.
>
> What can I do to move forward with the solution?
>

Okay, this has defeated our check. The MatNest says "yes I have a transpose
operation", but
that call fails when it gets to your submatrix.

I think we might need to do something to push this call down in MatNest.

However, right now, just remove that operation from your MatNest

  MatSetOperation(A, MATOP_TRANSPOSE, NULL);

so that it gives the right answer.

  Thanks,

    Matt


> Thanks,
> Manav
>
>
> [1;31m[0]PETSC ERROR: --------------------- Error Message
> --------------------------------------------------------------
> [0;39m[0;49m[0]PETSC ERROR: No support for this operation for this object
> type
> [0]PETSC ERROR: Mat type shell
> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
> for trouble shooting.
> [0]PETSC ERROR: Petsc Release Version 3.7.4, Oct, 02, 2016
> [0]PETSC ERROR: /Users/manav/Library/Developer/Xcode/DerivedData/MAST-
> crggwcqrouiyeucduvscdahjauvx/Build/Products/Debug/examples on a
> arch-darwin-cxx-opt named Blackbird.local by manav Sat Feb 11 11:17:44 2017
> [0]PETSC ERROR: Configure options --prefix=/Users/manav/
> Documents/codes/numerical_lib/petsc/petsc-3.7.4/../
> --CC=mpicc-openmpi-clang38 --CXX=mpicxx-openmpi-clang38
> --FC=mpif90-openmpi-clang38 --with-clanguage=c++ --with-fortran=0
> --with-mpiexec=/opt/local/bin/mpiexec-openmpi-clang38
> --with-shared-libraries=1 --with-x=1 --with-x-dir=/opt/X11
> --with-debugging=0 --with-lapack-lib=/usr/lib/liblapack.dylib
> --with-blas-lib=/usr/lib/libblas.dylib --download-superlu=yes
> --download-superlu_dist=yes --download-suitesparse=yes --download-mumps=yes
> --download-scalapack=yes --download-parmetis=yes --download-metis=yes
> --download-hypre=yes --download-ml=yes
> [0]PETSC ERROR: #1 MatMultTransposeAdd() line 2486 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/mat/interface/matrix.c
> [0]PETSC ERROR: #2 MatMultTranspose_Nest() line 109 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/mat/impls/nest/matnest.c
> [0]PETSC ERROR: #3 MatMultTranspose() line 2320 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/mat/interface/matrix.c
> [0]PETSC ERROR: #4 SNESNEWTONLSCheckLocalMin_Private() line 25 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/snes/impls/ls/ls.c
> [0]PETSC ERROR: #5 SNESSolve_NEWTONLS() line 259 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/snes/impls/ls/ls.c
> [0]PETSC ERROR: #6 SNESSolve() line 4005 in /Users/manav/Documents/codes/
> numerical_lib/petsc/petsc-3.7.4/src/snes/interface/snes.c
>
>
>
> On Feb 9, 2017, at 11:29 AM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>
> On Feb 8, 2017, at 11:39 PM, Dave May <dave.mayhem23 at gmail.com> wrote:
>
> Any time you modify one of the submats, you need to call assembly
> begin/end on that sub matrix AND on the outer matnest object.
>
>
>   Weird, and prone to errors it seems to me. Perhaps this needs to be
> rethought
>
>
> Thanks,
>  Dave
>
>
> On Wed, 8 Feb 2017 at 22:51, Manav Bhatia <bhatiamanav at gmail.com> wrote:
> aha.. that might be it.
>
> Does that need to be called for the global matrix after each assembly of
> the Jacobian blocks, or just once for the whole matrix?
>
> -Manav
>
> On Feb 8, 2017, at 3:47 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>
> On Feb 8, 2017, at 3:40 PM, Manav Bhatia <bhatiamanav at gmail.com> wrote:
>
> Hi,
>
>  I have a nested matrix with 2x2 blocks. The blocks (1,1) and (2,2) are
> AIJ matrices and blocks (1,2) and (2,1) and shell matrices. I am calling
> the code with the following arguments: -pc_type fieldsplit , and get the
> error shown below.
>
>  I see that the error is complaining about the matrix being in unassembled
> state, but I think I am initializing and calling assembly end routines on
> both the diagonal blocks. Still, there is something obvious I am missing.
>
>
> It is complaining about the outer most matrix, not the blocks. Perhaps you
> haven't finished with setting up your nest matrix?
>
>
>  I would appreciate any guidance on this.
>
> Regards,
> Manav
>
>
>
> [1;31m[0]PETSC ERROR: --------------------- Error Message
> --------------------------------------------------------------
> [0;39m[0;49m[0]PETSC ERROR: Object is in wrong state
> [0]PETSC ERROR: Not for unassembled matrix
> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
> for trouble shooting.
> [0]PETSC ERROR: Petsc Release Version 3.7.4, Oct, 02, 2016
> [0]PETSC ERROR: /Users/manav/Library/Developer/Xcode/DerivedData/MAST-
> crggwcqrouiyeucduvscdahjauvx/Build/Products/Debug/examples on a
> arch-darwin-cxx-opt named Dhcp-90-250.HPC.MsState.Edu by manav Wed Feb  8
> 15:28:04 2017
> [0]PETSC ERROR: Configure options --prefix=/Users/manav/
> Documents/codes/numerical_lib/petsc/petsc-3.7.4/../
> --CC=mpicc-openmpi-clang38 --CXX=mpicxx-openmpi-clang38
> --FC=mpif90-openmpi-clang38 --with-clanguage=c++ --with-fortran=0
> --with-mpiexec=/opt/local/bin/mpiexec-openmpi-clang38
> --with-shared-libraries=1 --with-x=1 --with-x-dir=/opt/X11
> --with-debugging=0 --with-lapack-lib=/usr/lib/liblapack.dylib
> --with-blas-lib=/usr/lib/libblas.dylib --download-superlu=yes
> --download-superlu_dist=yes --download-suitesparse=yes --download-mumps=yes
> --download-scalapack=yes --download-parmetis=yes --download-metis=yes
> --download-hypre=yes --download-ml=yes
> [0]PETSC ERROR: #1 MatMult() line 2248 in /Users/manav/Documents/codes/
> numerical_lib/petsc/petsc-3.7.4/src/mat/interface/matrix.c
> [0]PETSC ERROR: #2 PCApplyBAorAB() line 717 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: #3 KSP_PCApplyBAorAB() line 274 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/include/petsc/private/kspimpl.h
> [0]PETSC ERROR: #4 KSPGMRESCycle() line 156 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/ksp/ksp/impls/gmres/gmres.c
> [0]PETSC ERROR: #5 KSPSolve_GMRES() line 240 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/ksp/ksp/impls/gmres/gmres.c
> [0]PETSC ERROR: #6 KSPSolve() line 656 in /Users/manav/Documents/codes/
> numerical_lib/petsc/petsc-3.7.4/src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: #7 SNESSolve_NEWTONLS() line 230 in
> /Users/manav/Documents/codes/numerical_lib/petsc/petsc-3.7.
> 4/src/snes/impls/ls/ls.c
> [0]PETSC ERROR: #8 SNESSolve() line 4005 in /Users/manav/Documents/codes/
> numerical_lib/petsc/petsc-3.7.4/src/snes/interface/snes.c
>
>
>
>
>
>


-- 
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/20170211/9f63c87d/attachment-0001.html>


More information about the petsc-users mailing list