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

Reply via email to