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