[petsc-users] How to have a local copy (sequential) of a parallel matrix
ehsan sadrfaridpour
it.sadr at gmail.com
Wed Jun 29 14:54:04 CDT 2016
I faced the below error during compiling my code for using
MatGetSubMatrices.
error: cannot convert ‘IS {aka _p_IS*}’ to ‘_p_IS* const*’ for argument ‘3’
> to ‘PetscErrorCode MatGetSubMatrices(Mat, PetscInt, _p_IS* const*, _p_IS*
> const*, MatReuse, _p_Mat***)’
> MatGetSubMatrices(m_WA_norm_T, 1, set, set, MAT_INITIAL_MATRIX,
> &m_local_W);
>
My code :
> PetscMPIInt rank;
> MPI_Comm_rank(PETSC_COMM_WORLD, &rank);
>
> if(rank ==0){
> Mat m_local_W;
> MatCreateSeqAIJ(PETSC_COMM_SELF,num_points,num_points, num_nz,
> NULL,&m_local_W);// try to reserve space for only number of final non zero
> entries for each fine node (e.g. 4)
> IS set;
> ISCreateStride(PETSC_COMM_SELF, num_points, 0, 1, &set_row);
> MatGetSubMatrices(m_WA_norm_T, 1, set_row, set_col,
> MAT_INITIAL_MATRIX, &m_local_W);
>
> }
>
I followed below example:
http://www.mcs.anl.gov/petsc/petsc-current/src/vec/is/is/examples/tutorials/ex2.c.html
On Wed, Jun 29, 2016 at 3:19 PM, ehsan sadrfaridpour <it.sadr at gmail.com>
wrote:
> Thanks a lot for great support.
>
> On Wed, Jun 29, 2016 at 3:11 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>>
>> MatGetSubmatrices() just have the first process request all the rows
>> and columns and the others request none. You can use ISCreateStride() to
>> create the ISs without having to make an array of all the indices.
>>
>>
>> > On Jun 29, 2016, at 1:43 PM, ehsan sadrfaridpour <it.sadr at gmail.com>
>> wrote:
>> >
>> > Hi,
>> >
>> > I need to have access to most of elements of a parallel MPIAIJ matrix
>> only from 1 process (rank 0).
>> > I tried to copy or duplicate it to SEQAIJ, but I faced problems.
>> >
>> > How can I have a local copy of a matrix which is distributed on
>> multiple process? I don't want to update the matrix, and the read-only
>> version of it would be enough.
>> >
>> > Best,
>> > Ehsan
>> >
>> >
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160629/8ade4805/attachment.html>
More information about the petsc-users
mailing list