Hi Joon, sorry, that was a pretty bad idea (wouldn't even work with square matrices in general)
I'm afraid you'll have to set up new matrices A, B with the respective entries. For performance reasons you better use a dense format since your matrices are so small. Best regards, Karli On 04/23/2013 06:05 PM, Choi240 wrote: > Hi, > > Thank you for your reply. But A1,A2 are not square(3x4). B1~B4 are 3x3 > matrices. So A1*B1 is not impossible. > > Best regards, > Joon > > > > > -------- Original message -------- > Subject: Re: [petsc-users] Transpose of Block Matrix with aij type > From: Karl Rupp <rupp at mcs.anl.gov> > To: Choi240 <choi240 at purdue.edu> > CC: petsc-users at mcs.anl.gov > > > Hi again, > > if you have control over the structure of B, what about computing > [A1 A2] * [B1 B3; B2 B4] > instead? > > Best regards, > Karli > > > On 04/23/2013 05:17 PM, Choi240 wrote: > > Hi, > > > > I have to compute multiplication between two block matrices. It should > > be as follows: > > > > B1 | B2 A1 B1A1+B2A2 > > ---------- * --- = --------------- > > B3 | B4 A2 B3A1+B4A2 > > > > However, I just have A = [A1 A2]. So, I need to get A^T. Is there a way > > I can get the transpose of this block matrix with the MatTranspose()? Or > > do I have to use another function such as MatGetSubMatrices()? > > > > Thank you, > > Joon > > > > > > > > -------- Original message -------- > > Subject: Re: [petsc-users] Transpose of Block Matrix with aij type > > From: Karl Rupp <rupp at mcs.anl.gov> > > To: petsc-users at mcs.anl.gov > > CC: choi240 at purdue.edu > > > > > > Hi, > > > > why would you expect that the transpose of a 3x8 matrix is not a > 8x3-matrix? > > > > Best regards, > > Karli > > > > > > On 04/23/2013 03:27 PM, Joon hee Choi wrote: > > > Hello, > > > > > > I tried to get transpose of block matrix(just with aij type), but the > > result was not a block matrix. For example, > > > > > > A = > > > 1 2 3 4 | 4 3 2 1 > > > 2 3 4 5 | 5 4 3 2 > > > 3 4 5 6 | 6 5 4 3 > > > > > > > > > AT(expected) = > > > 1 2 3 4 > > > 2 3 4 5 > > > 3 4 5 6 > > > ------- > > > 4 3 2 1 > > > 5 4 3 2 > > > 6 5 4 3 > > > > > > > > > AT(result) = > > > 1 2 3 > > > 2 3 4 > > > 3 4 5 > > > 4 5 6 > > > 4 5 6 > > > 3 4 5 > > > 2 3 4 > > > 1 2 3 > > > > > > If someone knows about this problem, please let me know it. > > > > > > Thank you > > > > > >
