How to get information about the off-diagonal submatrix

Thomas Witkowski thomas.witkowski at tu-dresden.de
Mon Aug 10 10:46:09 CDT 2009


Thank you for all the hints, this will help me to debug my application!!!

Thomas

Satish Balay wrote:
> On Mon, 10 Aug 2009, Thomas Witkowski wrote:
>
>   
>> Satish Balay wrote:
>>     
>>> Its also possible that some values are set on other procs and
>>> commuincated..
>>>   
>>>       
>> That's the reason, I've forgotten to check it. Thanks for the hint! Is there
>> any way to get information from petsc to check how many matrix entries had to
>> be communicated during assembling?
>>     
>
> You can run the code with '-info' - and look for 'stash' - that gives
> the message lenghts that got commuicated for matrix assembly.
>
> Also - you can use MatSetOption(MAT_IGNORE_OFF_PROC_ENTRIES,PETSC_TRUE).
> This will cause MatSetValues() to ignore off-proc entries during
> assembly. After this - you can check if the assembled matrix is what
> you expect..
>
> Satish
>
>
>   
>> Thomas
>>
>>
>>
>>     
>>> Note: I should have mentioned earlier: mpiaij->B is an internal
>>> datastructure - so the column indices don't directly correspond to the
>>> original matrix. [there is a cmap in there that stores this map]
>>>
>>> Satish
>>>
>>> On Mon, 10 Aug 2009, Thomas Witkowski wrote:
>>>
>>>   
>>>       
>>>> Thanks, that works fine! In my test case (yes, just for debugging!) I've
>>>> expected to have an empty off-diagonal matrix. But the matrix is not
>>>> empty.
>>>> But how is it possible, when all entries, which are inserted to the matrix
>>>> via
>>>> MatSetValues, have indices for row and col within the ownership range of
>>>> the
>>>> processors matrix?
>>>>
>>>> Thomas
>>>>
>>>> Satish Balay wrote:
>>>>     
>>>>         
>>>>> alternatively - just access the private datastructe and print..
>>>>>
>>>>> #include "../src/mat/impls/aij/mpi/mpiaij.h"
>>>>> Mat_MPIAIJ     *mpiaij = (Mat_MPIAIJ*)mat->data;
>>>>> MatView(mpiaij->B,...);
>>>>>
>>>>>
>>>>> Satish
>>>>>
>>>>>
>>>>> On Mon, 10 Aug 2009, Matthew Knepley wrote:
>>>>>
>>>>>         
>>>>>           
>>>>>> If this is just for debugging, the easiest way I think is to call
>>>>>> MatGetSubmatrix() with
>>>>>> a column IS that omits the local columns.
>>>>>>
>>>>>>   Matt
>>>>>>
>>>>>> On Mon, Aug 10, 2009 at 8:28 AM, Thomas Witkowski <
>>>>>> thomas.witkowski at tu-dresden.de> wrote:
>>>>>>
>>>>>>             
>>>>>>             
>>>>>>> Hi,
>>>>>>>
>>>>>>> how is it possible to print just the off-diagonal submatrix of one
>>>>>>> process
>>>>>>> of a parallel mpiaij matrix?
>>>>>>>
>>>>>>> Thomas
>>>>>>>
>>>>>>>                 
>>>>>>>               
>>>>>>             
>>>>>>             
>>>>>         
>>>>>           
>>>>     
>>>>         
>>>
>>>   
>>>       
>>     
>
>
>
>   



More information about the petsc-users mailing list