[petsc-users] Vec Ownership ranges with Global Section Offsets
Matthew Knepley
knepley at gmail.com
Fri Jan 6 08:20:18 CST 2023
On Fri, Jan 6, 2023 at 2:28 AM Nicholas Arnold-Medabalimi <
narnoldm at umich.edu> wrote:
> Hi Petsc Users,
>
> I'm working with a dmplex system with a subsampled mesh distributed with
> an overlap of 1.
>
> I'm encountering unusual situations when using VecGetOwnershipRange to
> adjust the offset received from a global section. The logic of the
> following code is first to get the offset needed to index a global vector
> while still being able to check if it is an overlapped cell and skip if
> needed while counting the owned cells.
>
>
> call DMGetGlobalSection(dmplex,section,ierr)
> call VecGetArrayF90(stateVec,stateVecV,ierr)
> call VecGetOwnershipRange(stateVec,oStart,oEnd,ierr)
> do i = c0, (c1-1)
>
> call PetscSectionGetOffset(section,i,offset,ierr)
> write(*,*) "cell",i,"offset",offset,'oStart',oStart, offset-oStart
>
> if(offset<0) then
> cycle
> endif
> offset=offset-oStart
> plexcells=plexcells+1
> stateVecV(offset)= <set to something> enddo
>
> I'm noticing some very weird results that I've appended below. The
> GetOffset documentation notes that a negative offset indicates an unowned
> point (which I use to cycle). However, the offset subtraction with oStart
> will yield an illegal index for the Vector access. I see that on the
> documentation for GetOwnershipRange, it notes that this may be
> "ill-defined" but I wanted to see if this is type of ill-defined I can
> expect or there is just something terribly wrong with my PetscSection.(both
> the Vec and Section were produced from DMPlexDistributeField so should by
> definition have synchronized section information) I was wondering if there
> is a possible output and/or the best way to index the vector. I'm thinking
> of subtracting the offset of cell 0 perhaps?
>
Can you show your vector sizes? Are you sure it is not the fact that F90
arrays use 1-based indices, but these are 0-based offsets?
Thanks,
Matt
> on rank 0
>
> cell 0 offset 0 oStart 0 0
> cell 1 offset 55 oStart 0 55
> cell 2 offset 110 oStart 0 110
> cell 3 offset 165 oStart 0 165
> cell 4 offset 220 oStart 0 220
> cell 5 offset 275 oStart 0 275
> cell 6 offset 330 oStart 0 330
> cell 7 offset 385 oStart 0 385
> cell 8 offset 440 oStart 0 440
> cell 9 offset 495 oStart 0 495
> cell 10 offset 550 oStart 0 550
> cell 11 offset 605 oStart 0 605
> cell 12 offset 660 oStart 0 660
> cell 13 offset 715 oStart 0 715
>
> and on rank one
> cell 0 offset 2475 oStart 2640 -165
> cell 1 offset 2530 oStart 2640 -110
> cell 2 offset 2585 oStart 2640 -55
> cell 3 offset 2640 oStart 2640 0
> cell 4 offset 2695 oStart 2640 55
> cell 5 offset 2750 oStart 2640 110
> cell 6 offset 2805 oStart 2640 165
> cell 7 offset 2860 oStart 2640 220
> cell 8 offset 2915 oStart 2640 275
> cell 9 offset 2970 oStart 2640 330
> cell 10 offset 3025 oStart 2640 385
> cell 11 offset 3080 oStart 2640 440
> cell 12 offset 3135 oStart 2640 495
> cell 13 offset 3190 oStart 2640 550
> cell 14 offset 3245 oStart 2640 605
> cell 15 offset -771 oStart 2640 -3411
>
>
> Sincerely
> Nicholas
>
> --
> Nicholas Arnold-Medabalimi
>
> Ph.D. Candidate
> Computational Aeroscience Lab
> University of Michigan
>
--
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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230106/60318d41/attachment.html>
More information about the petsc-users
mailing list