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 > > >
