On Fri, Feb 3, 2023 at 8:52 AM 김성익 <ksi2...@gmail.com> wrote: > I want to extract same row values of global matrix in all processes. > Then how can I do this?? >
Create the same IS on each process. THanks, Matt > The case of same problem of vector, I just use vecscattertoall. > However, I can't find same function for matrix. > > Hyung Kim > > 2023년 2월 3일 (금) 오후 10:47, Matthew Knepley <knep...@gmail.com>님이 작성: > >> On Fri, Feb 3, 2023 at 8:45 AM 김성익 <ksi2...@gmail.com> wrote: >> >>> Following your comments, >>> If I extract first row of below matrix. >>> [image: image.png] >>> IS isrow; >>> PetscInt *indices; >>> PetscMalloc1(1, *indices); >>> >> >> That should be &indices. >> >> >>> Indices[0] = 0; >>> ISCreateGenreral(PETSC_COMM_WORLD, 1, indices, PETSC_COPY_VALUES, >>> &isrow); >>> >> >> You should use PETSC_OWN_POINTER. >> >> >>> MatCreateSubMatrix(mat,isrow,NULL,MAT_INITIAL_MATRIX,&newmat); >>> >>> Then can I get the array about first row of global matrix in all >>> processes? >>> >> >> No, just on the process which gives 0. If you do that on every process, >> every rank with get row 0. >> >> Thanks, >> >> Matt >> >> >>> Hyung Kim >>> >>> 2023년 2월 3일 (금) 오후 10:26, Matthew Knepley <knep...@gmail.com>님이 작성: >>> >>>> On Fri, Feb 3, 2023 at 8:06 AM 김성익 <ksi2...@gmail.com> wrote: >>>> >>>>> Following your comments, >>>>> I want to check below things. >>>>> For example, the global dense matrix are as below. >>>>> [image: image.png] >>>>> If I want to get first row ('1 2 0 0 3 0 0 4') in Proc 1. >>>>> Then I should put 'MatCreateSubMatrix >>>>> <https://petsc.org/main/docs/manualpages/Mat/MatCreateSubMatrix/>(mat, >>>>> isrow, NULL, MAT_INITIAL_MATRIX, *&*newmat)' >>>>> and isrow will be [0 1 2 3 4 5 6 7]. >>>>> >>>>> In this case, How can I make isrow? >>>>> Actually I can't understand the procedure of handling isrow. >>>>> >>>> >>>> You create an IS object of type ISGENERAL and give it the array of >>>> global indices that you want to extract. >>>> >>>> Thanks, >>>> >>>> Matt >>>> >>>> >>>>> Hyung Kim >>>>> >>>>> 2023년 2월 3일 (금) 오후 9:03, Mark Adams <mfad...@lbl.gov>님이 작성: >>>>> >>>>>> https://petsc.org/main/docs/manualpages/Mat/MatCreateSubMatrix/ >>>>>> >>>>>> Note, PETSc lets you give NULL arguments if there is a reasonable >>>>>> default. >>>>>> In this case give NULL for the column IS and you will get the whole >>>>>> columns. >>>>>> >>>>>> Mark >>>>>> >>>>>> On Fri, Feb 3, 2023 at 4:05 AM 김성익 <ksi2...@gmail.com> wrote: >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> >>>>>>> By using MatGetRow, user can get vectors from local matrix (at each >>>>>>> process). >>>>>>> >>>>>>> However, I need other process's row values. >>>>>>> So I have 2 questions. >>>>>>> >>>>>>> 1. Is there any function for getting arrays from other process's?? >>>>>>> >>>>>>> 2. Or is there any function like matrix version of vecscattertoall?? >>>>>>> >>>>>>> Thanks, >>>>>>> Hyung Kim >>>>>>> >>>>>> >>>> >>>> -- >>>> 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 >>>> >>>> https://www.cse.buffalo.edu/~knepley/ >>>> <http://www.cse.buffalo.edu/~knepley/> >>>> >>> >> >> -- >> 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 >> >> https://www.cse.buffalo.edu/~knepley/ >> <http://www.cse.buffalo.edu/~knepley/> >> > -- 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 https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>