Hi, Barry --

I am working with MPIAIJ matrices.

-- Boyce

On 9/27/10 12:24 PM, Barry Smith wrote:
>
>    We need an efficient MatAXPY() that works well for any combination of 
> nonzero patterns. This is not terribly difficult to write.  Basically for 
> each row create a linked list of the nonzeros in it from the first matrix and 
> then merge in the nonzeros from the second matrix for that row, much like in 
> the LU symbolic factorizations. This will give you row counts, then 
> preallocate the correct nonzero matrix and do the MatSetValues() for the 
> first matrix first row then the second matrix first row etc. Finally swap in 
> the new matrix body into the current matrix.
>
> If this is done for SeqAIJ then MPIAIJ simply needs to call this for the two 
> submatrices. Similar beasty can be done for BAIJ. Do you need AIJ or BAIJ?
>
>    Shri,
>
>       Could you please start on this (drop the VI for a couple of days to get 
> this done)? Let me know if you have any questions.
>
>     Thanks
>
>      Barry
>
>
>
> On Sep 27, 2010, at 12:56 AM, Boyce Griffith wrote:
>
>> I am trying to compute a matrix A that is of the form:
>>
>>    A = B + P^t C P
>>
>> using MatPtAP and MatAXPY.  The call to MatAXPY is very slow --- presumably 
>> because I haven't allocated the correct nonzero structure.  I can easily 
>> determine the nonzero structures of B, C, and P, but I do not think that I 
>> can easily compute the nonzero structure of P^t C P (although I can compute 
>> its nonzero structure with some difficulty).
>>
>> Is it possible to add extra non-zero locations to an existing matrix? Or 
>> should I try to extract the nonzero structures of B and P^t C P to 
>> pre-allocate A correctly?  (Or am I overlooking some functionality in PETSc 
>> that will do most of this for me?)
>>
>> A tangentially related question is: is there any way to find out the actual 
>> fill (or fill ratio) following a call to MatPtAP?
>>
>> Thanks in advance for any suggestions!
>>
>> -- Boyce
>
>
>

Reply via email to