On Thu, Sep 19, 2013 at 12:01 PM, Reza Yaghmaie <reza.yaghma...@gmail.com>wrote:
> > Thanks Matthew for the reply. > It would be time consuming for me to implement an other way for creating a > matrix and doing matmult and I am not concerned with how much time this > will take. > So is there any way which you could possibly guide me through using > matmpibaij? > Whatever you want to do for the parallel outer product will take longer and be worse than using MatShell. I am not saying this lightly. Matt > Thanks alot, > -Reza > > > > > > > > > > > > On Thu, Sep 19, 2013 at 2:44 PM, Reza Yaghmaie > <reza.yaghma...@gmail.com>wrote: > >> >> Dear Sir/Madam, >> >> I am very new to PETSC and I have some issues running my code. >> I want to create a global M*1 matrix (not a vector since I want to >> multiply this matrix with an other 1*M matrix and get a M*M matrix and I >> know that transpose function on vectors does not work so this is why I need >> to have a M*1 matrix) >> >> I have used the below function and it works well for a M*M matrix >> call MatCreateMPIBAIJ (PETSC_COMM_WORLD,6,6*numpn,6*numpn, >> & PETSC_DETERMINE, PETSC_DETERMINE, >> & PETSC_NULL_INTEGER, mr(np(246)), >> & PETSC_NULL_INTEGER, mr(np(247)), >> & matdummy2, ierr) >> >> >> I am trying to change it accordingly for the M*1 matrix >> >> So I use the following function >> >> call MatCreateMPIBAIJ (PETSC_COMM_WORLD,alpha,m,n, >> & PETSC_DETERMINE, PETSC_DETERMINE, >> & PETSC_NULL_INTEGER, mr(np(246)), >> & PETSC_NULL_INTEGER, mr(np(247)), >> & mvecdummy1, ierr) >> >> defining the following parameters respectively: >> alpha=number of degrees of freedom per node=1 >> m=each processor number of rows=6*numpn >> n=local number of columns=1 >> I think PETSC_DETERMINE represents the global number of rows and columns >> respectively. >> I think PETSC_NULL_INTEGER represents the number of nonzero terms in rows >> in the diagonal matrix and off diagonal matrix respectively and mr(np(246), >> mr(np(247) show the nnz terms in columns of diagonal and off diagonal >> matrices. >> mvecdummy1=the name of the matrix >> ierr is just an error compliment in the subroutine. >> >> >> The errors that I am getting are >> d_nnz can not be less than 0 >> o_nnz can not be less than -1 >> >> Please guide me through this issue. >> >> Thanks alot, >> -Reza >> >> >> >> >> >> >> > -- 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