[petsc-users] MatGetSubMatrix for a Nested matrix

Matthew Knepley knepley at gmail.com
Mon Aug 11 16:23:47 CDT 2014


On Mon, Aug 11, 2014 at 4:22 PM, Khai Hong Pham <khaipham at utexas.edu> wrote:

> Thank you for your information, Matt. I'm using both nested matrix and
> nested vector. Is the nested vector good to use ?
>

Again, these are implementation classes. Always test with the simple
version, and then switch dynamically
to these when you want better performance. The whole point of PETSc is that
you can do this, rather than
hardcoding a particular type.

  Thanks,

     Matt


> Khai.
>
>
> On Mon, Aug 11, 2014 at 4:16 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Mon, Aug 11, 2014 at 3:53 PM, Khai Hong Pham <khaipham at utexas.edu>
>> wrote:
>>
>>> Matt,
>>>
>>> I've the following error as I tried to get the sub block matrix. I check
>>> the isrow and iscol that are passed to MatGetSubMatrix and they look ok
>>> to me. The line 110 of  ISStrideGetInfo() calls
>>> to PetscValidHeaderSpecific.
>>>
>>
>> You have something corrupt in the MatNest. Quit using MatNest. This is
>> just an optimization that should
>> only be turned on by -mat_type nest. It is not a top level interface.
>> This causes so many problems that we
>> should remove it from the documentation.
>>
>>   Thanks,
>>
>>       Matt
>>
>>
>>>
>>> [0]PETSC ERROR: Null argument, when expecting valid pointer
>>> [0]PETSC ERROR: Null Object: Parameter # 1
>>> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
>>> for trouble shooting.
>>> [0]PETSC ERROR: Petsc Release Version 3.5.1, Jul, 24, 2014
>>> [0]PETSC ERROR: [1]PETSC ERROR: ./PFFEM2DSolver on a arch-linux2-c-debug
>>> named khp by khp Mon Aug 11 15:26:47 2014
>>> Null argument, when expecting valid pointer
>>> [0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++
>>> --with-fc=gfortran --download-fblaslapack --download-mpich --download-hdf5
>>> --download-metis --download-parmetis
>>> [1]PETSC ERROR: Null Object: Parameter # 1
>>> [1]PETSC ERROR: [0]PETSC ERROR: #1 ISStrideGetInfo() line 110 in
>>> /home/khp/bin/petsc-3.5.1/src/vec/is/is/impls/stride/stride.c
>>> See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble
>>> shooting.
>>> [1]PETSC ERROR: Petsc Release Version 3.5.1, Jul, 24, 2014
>>> [1]PETSC ERROR: ./PFFEM2DSolver on a arch-linux2-c-debug named khp by
>>> khp Mon Aug 11 15:26:47 2014
>>> [1]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++
>>> --with-fc=gfortran --download-fblaslapack --download-mpich --download-hdf5
>>> --download-metis --download-parmetis
>>> [1]PETSC ERROR: #1 ISStrideGetInfo() line 110 in
>>> /home/khp/bin/petsc-3.5.1/src/vec/is/is/impls/stride/stride.c
>>> [0]PETSC ERROR: #2 MatNestFindSubMat() line 357 in
>>> /home/khp/bin/petsc-3.5.1/src/mat/impls/nest/matnest.c
>>> [0]PETSC ERROR: #3 MatGetLocalSubMatrix_Nest() line 411 in
>>> /home/khp/bin/petsc-3.5.1/src/mat/impls/nest/matnest.c
>>> [0]PETSC ERROR: #4 MatGetLocalSubMatrix() line 9224 in
>>> /home/khp/bin/petsc-3.5.1/src/mat/interface/matrix.c
>>> [1]PETSC ERROR: #2 MatNestFindSubMat() line 357 in
>>> /home/khp/bin/petsc-3.5.1/src/mat/impls/nest/matnest.c
>>> [0]PETSC ERROR: #5 jacobian_comp() line 49 in src/assembly.cpp
>>> [1]PETSC ERROR: #3 MatGetLocalSubMatrix_Nest() line 411 in
>>> /home/khp/bin/petsc-3.5.1/src/mat/impls/nest/matnest.c
>>> [0]PETSC ERROR: [1]PETSC ERROR: #6 TaoComputeJacobian() line 153 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/interface/taosolver_hj.c
>>> #4 MatGetLocalSubMatrix() line 9224 in
>>> /home/khp/bin/petsc-3.5.1/src/mat/interface/matrix.c
>>> [0]PETSC ERROR: [1]PETSC ERROR: #7 Tao_SSLS_FunctionGradient() line 63
>>> in /home/khp/bin/petsc-3.5.1/src/tao/complementarity/impls/ssls/ssls.c
>>> #5 jacobian_comp() line 49 in src/assembly.cpp
>>> [0]PETSC ERROR: #8 TaoLineSearchComputeObjectiveAndGradient() line 941
>>> in /home/khp/bin/petsc-3.5.1/src/tao/linesearch/interface/taolinesearch.c
>>> [1]PETSC ERROR: #6 TaoComputeJacobian() line 153 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/interface/taosolver_hj.c
>>> [0]PETSC ERROR: #9 TaoSolve_SSILS() line 65 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/complementarity/impls/ssls/ssils.c
>>> [1]PETSC ERROR: #7 Tao_SSLS_FunctionGradient() line 63 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/complementarity/impls/ssls/ssls.c
>>> [0]PETSC ERROR: #10 TaoSolve() line 188 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/interface/taosolver.c
>>> [1]PETSC ERROR: #8 TaoLineSearchComputeObjectiveAndGradient() line 941
>>> in /home/khp/bin/petsc-3.5.1/src/tao/linesearch/interface/taolinesearch.c
>>> [0]PETSC ERROR: #11 main() line 286 in src/main.cpp
>>> [1]PETSC ERROR: #9 TaoSolve_SSILS() line 65 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/complementarity/impls/ssls/ssils.c
>>> [0]PETSC ERROR: ----------------End of Error Message -------send entire
>>> error message to petsc-maint at mcs.anl.gov----------
>>> [1]PETSC ERROR: #10 TaoSolve() line 188 in
>>> /home/khp/bin/petsc-3.5.1/src/tao/interface/taosolver.c
>>> [1]PETSC ERROR: #11 main() line 286 in src/main.cpp
>>> [1]PETSC ERROR: ----------------End of Error Message -------send entire
>>> error message to petsc-maint at mcs.anl.gov----------
>>>
>>>
>>>
>>> On Mon, Aug 11, 2014 at 12:34 PM, Matthew Knepley <knepley at gmail.com>
>>> wrote:
>>>
>>>> On Mon, Aug 11, 2014 at 12:05 PM, Khai Hong Pham <khaipham at utexas.edu>
>>>> wrote:
>>>>
>>>>> Hello Petsc-Users,
>>>>>
>>>>> In the MatGetSubMatrix, if the matrix mat is a nested matrix, for
>>>>> example [ A00 A01 | A10 A11], and I'd like to get submat  A10. Then the
>>>>> isrow and iscol will be the index of the subblock matrix which is (1,0) or
>>>>> it must be the index of all rows, columns of the submat in the mat (like in
>>>>> MatGetSubMatrix). Please help me to clarify this.
>>>>>
>>>>
>>>> It is the later (the list of rows/cols)
>>>>
>>>>   Thsnks,
>>>>
>>>>     Matt
>>>>
>>>>
>>>>> Thanks
>>>>>
>>>>> Khai
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 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/20140811/0e254038/attachment.html>


More information about the petsc-users mailing list