[petsc-users] Doubt in MPIPreallocation

John Albequerque johncfdcfd at gmail.com
Fri Feb 19 05:09:04 CST 2016


Dear Matt,

Sorry, I am not able to get you, as if I do not provide i>=j then the
matrix mentioned in the earlier mail won't be generated. For the code I
mentioned earlier, the output obtained is as follows -








*Mat Object: 1 MPI processes  type: mpiaijrow 0: (0, 1)  (1, 1)  (2, 1)
(3, 1)  (4, 0)  (5, 0)  (6, 0)  (7, 0) row 1: (0, 0)  (1, 1)  (2, 1)  (3,
1)  (4, 1)  (5, 0)  (6, 0)  (7, 0) row 2: (0, 0)  (1, 0)  (2, 1)  (3, 1)
(4, 1)  (5, 1)  (6, 0)  (7, 0) row 3: (0, 0)  (1, 0)  (2, 0)  (3, 1)  (4,
1)  (5, 1)  (6, 1)  (7, 0) row 4: (0, 0)  (1, 0)  (2, 0)  (3, 0)  (4, 1)
(5, 1)  (6, 1)  (7, 1)*
which is satisfactory, but once I use
*MatMPIAIJSetPreallocation(A,0,d_nnz,0,o_nnz);
*the code encounters a runtime error. And throws a malloc error as -



*[0]PETSC ERROR: New nonzero at (0,4) caused a mallocUse MatSetOption(A,
MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE) to turn off this check*
Thanks

----
John Albequerque.


On Fri, Feb 19, 2016 at 4:17 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Fri, Feb 19, 2016 at 4:34 AM, John Albequerque <johncfdcfd at gmail.com>
> wrote:
>
>> Currently I have used single processor. And without the Preallocation it
>> works fine. And gives me the correct output as well. I have posted the full
>> code for reference.
>> *Here:* http://pastebin.com/kWUGHqSM
>>
>
> Look at the last row. Your condition 'j >= i' will produce no off-diagonal
> rows here, but
> clearly you have them, and this is the error you are getting.
>
>    Matt
>
>
>> On Fri, Feb 19, 2016 at 3:01 PM, Matthew Knepley <knepley at gmail.com>
>> wrote:
>>
>>> On Fri, Feb 19, 2016 at 3:27 AM, John Albequerque <johncfdcfd at gmail.com>
>>> wrote:
>>>
>>>> I came up with this could you please have a look at it as I am not
>>>> getting it. I am getting an error
>>>>
>>>>
>>>>
>>>> *New nonzero at (0,4) caused a malloc*http://pastebin.com/ZxT7SWtc
>>>>
>>>> Could you please have a look at it.
>>>>
>>>
>>> It looks like you are only allocating the upper triangle:
>>>
>>> if((j-i<=3) && (j>=i))
>>>             values[(i-low)*nc+j]=1;
>>> else
>>> values[(i-low)*nc+j]=0;
>>>
>>>    Matt
>>>
>>>
>>>> ---------------
>>>> Thanks,
>>>> John Albequerque
>>>>
>>>>
>>>> On Fri, Feb 19, 2016 at 1:25 PM, Matthew Knepley <knepley at gmail.com>
>>>> wrote:
>>>>
>>>>> On Fri, Feb 19, 2016 at 1:50 AM, John Albequerque <
>>>>> johncfdcfd at gmail.com> wrote:
>>>>>
>>>>>> Could someone help me setting up this matrix i.e from preallocation
>>>>>> to Set Values for an MPIAIJ matrix which has its entries.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *1  1  1  1  0  0  0  00  1  1  1  1  0  0  00  0  1  1  1  1  0  00
>>>>>> 0  0  1  1  1  1  00  0  0  0  1  1  1  1*
>>>>>>
>>>>>> I am trying to do it from 3 days now but not able to figure it out.
>>>>>> Could someone please help me do this.
>>>>>>
>>>>>
>>>>> It will be enough to say that each row has 3 off-diagonal values, so
>>>>> you can use the simplified preallocation rather
>>>>> than giving a value for each row individually.
>>>>>
>>>>>    Matt
>>>>>
>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> ----
>>>>>> John Albequerque.
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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/20160219/9e0bc74f/attachment.html>


More information about the petsc-users mailing list