[petsc-users] MatMatMult involving MPIAIJ and MATNEST

Bikash Kanungo bikash at umich.edu
Mon May 11 09:18:44 CDT 2015


Thanks Patrick. I'll give it a shot and see if it works.

Regards,
Bikash

On Mon, May 11, 2015 at 9:52 AM, Patrick Sanan <patrick.sanan at gmail.com>
wrote:

> Ah, so I misunderstood the question - you want to *apply* AB, not assemble
> it. Perhaps you can then use MATCOMPOSITE to define a composite operator
> which applies AB.
>
> On Mon, May 11, 2015 at 3:47 PM, Bikash Kanungo <bikash at umich.edu> wrote:
>
>> Hi Patrick,
>>
>> Thanks for the clarification. I want it to be an efficient operation. The
>> idea is to convert a generalized eigenvalue problem (H*x = lamda*M*x) to a
>> standard one (M^{-1}*H*x = lambda*x). The M^{-1} is of type MATNEST whereas
>> H is MPIAIJ. In my problem M^{-1} is computed once whereas H changes every
>> iteration. So performing low-level matrix multiplication or creating H as
>> MATNEST and assembling it from its sub-matrices at every iteration sounds
>> inefficient.
>>
>> Regards,
>> Bikash
>>
>> On Mon, May 11, 2015 at 9:21 AM, Patrick Sanan <patrick.sanan at gmail.com>
>> wrote:
>>
>>> MatMatMult with MATNEST does not seem to be supported, based only on the
>>> fact that there are no functions of the form MatMatMult_*_MatNest defined
>>> with the MATNEST implementation :
>>> http://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/nest/matnest.c.html
>>>
>>> Does this operation need to be efficient? (That is, are you forming this
>>> matrix for debugging or experimental purposes, or with the intention of
>>> using it within an efficient, scalable piece of code?). If not, it should
>>> be possible to use lower-level matrix operations as defined by the API to
>>> extract the appropriately-sized submatrices from A and (assuming that
>>> MatMatMult is defined between MATMPIAIJ and the submatrices of your
>>> Matnest), perform the matrix multiplications and additions "by hand" .
>>>
>>> On Mon, May 11, 2015 at 2:44 PM, Bikash Kanungo <bikash at umich.edu>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I have two matrices: A of type MPIAIJ and B of type MATNEST. Is there
>>>> any way to perform A*B after B has been assembled from its sub-matrices?
>>>>
>>>> Thanks,
>>>> Bikash
>>>>
>>>> --
>>>> Bikash S. Kanungo
>>>> PhD Student
>>>> Computational Materials Physics Group
>>>> Mechanical Engineering
>>>> University of Michigan
>>>>
>>>>
>>>
>>
>>
>> --
>> Bikash S. Kanungo
>> PhD Student
>> Computational Materials Physics Group
>> Mechanical Engineering
>> University of Michigan
>>
>>
>


-- 
Bikash S. Kanungo
PhD Student
Computational Materials Physics Group
Mechanical Engineering
University of Michigan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150511/a555ba52/attachment.html>


More information about the petsc-users mailing list