On Wed, Aug 14, 2019 at 10:23 PM Swarnava Ghosh <swarnav...@gmail.com>
wrote:

> Hi Matthew,
>
> I added DMView(pCgdft->dmplex,PETSC_VIEWER_STDOUT_WORLD); before and after
> distribution, and I get the following:
>

It looks like you are running things with the wrong 'mpirun'

  Thanks,

    Matt


> dmplex before distribution
> DM Object: 3 MPI processes
>   type: plex
> DM_0x84000004_0 in 3 dimensions:
>   0-cells: 7 7 7
>   1-cells: 17 17 17
>   2-cells: 17 17 17
>   3-cells: 6 6 6
> Labels:
>   depth: 4 strata with value/size (0 (7), 1 (17), 2 (17), 3 (6))
> dmplex after distribution
> DM Object: Parallel Mesh 3 MPI processes
>   type: plex
> Parallel Mesh in 3 dimensions:
>   0-cells: 7 7 7
>   1-cells: 17 17 17
>   2-cells: 17 17 17
>   3-cells: 6 6 6
> Labels:
>   depth: 4 strata with value/size (0 (7), 1 (17), 2 (17), 3 (6))
>
> Thanks,
> SG
>
> On Wed, Aug 14, 2019 at 6:48 PM Matthew Knepley <knep...@gmail.com> wrote:
>
>> DMView() the mesh before and after distribution, so we can see what we
>> have.
>>
>>   Thanks,
>>
>>      Matt
>>
>> On Wed, Aug 14, 2019 at 5:30 PM Swarnava Ghosh via petsc-users <
>> petsc-users@mcs.anl.gov> wrote:
>>
>>> Hi PETSc team and users,
>>>
>>> I am trying to create a 3D dmplex mesh using DMPlexCreateFromCellList,
>>> then distribute it, and find out the coordinates of the vertices owned by
>>> each process.
>>> My cell list is as follows:
>>> numCells: 6
>>> numVertices: 7
>>> numCorners: 4
>>> cells:
>>> 0
>>> 3
>>> 2
>>> 1
>>> 4
>>> 0
>>> 2
>>> 1
>>> 6
>>> 4
>>> 2
>>> 1
>>> 3
>>> 6
>>> 2
>>> 1
>>> 5
>>> 4
>>> 6
>>> 1
>>> 3
>>> 5
>>> 6
>>> 1
>>> vertexCoords:
>>> -6.043000
>>> -5.233392
>>> -4.924000
>>> -3.021500
>>> 0.000000
>>> -4.924000
>>> -3.021500
>>> -3.488928
>>> 0.000000
>>> -6.043000
>>> 1.744464
>>> 0.000000
>>> 0.000000
>>> -5.233392
>>> -4.924000
>>> 3.021500
>>> 0.000000
>>> -4.924000
>>> 3.021500
>>> -3.488928
>>> 0.000000
>>>
>>> After reading this information, I do
>>>  ierr=
>>> DMPlexCreateFromCellList(PETSC_COMM_WORLD,3,pCgdft->numCellsESP,pCgdft->NESP,pCgdft->numCornersESP,interpolate,pCgdft->cellsESP,3,pCgdft->vertexCoordsESP,&pCgdft->dmplex);
>>>
>>> ierr = DMPlexDistribute(pCgdft->dmplex,0,&pCgdft->dmplexSF,
>>> &distributedMesh);CHKERRQ(ierr);
>>>
>>>    if (distributedMesh) {
>>>      printf("mesh is distributed \n");
>>>    ierr = DMDestroy(&pCgdft->dmplex);CHKERRQ(ierr);
>>>      pCgdft->dmplex  = distributedMesh;
>>>   }
>>>
>>>  DMGetCoordinates(pCgdft->dmplex,&VC);
>>>  VecView(VC,PETSC_VIEWER_STDOUT_WORLD);
>>>
>>> On running this with 3 mpi processes, From VecView, I see that all the
>>> processes own all the vertices.  Why is the dmplex not being distributed?
>>>
>>> The VecView is :
>>> Process [0]
>>> -6.043
>>> -5.23339
>>> -4.924
>>> -3.0215
>>> 0.
>>> -4.924
>>> -3.0215
>>> -3.48893
>>> 0.
>>> -6.043
>>> 1.74446
>>> 0.
>>> 0.
>>> -5.23339
>>> -4.924
>>> 3.0215
>>> 0.
>>> -4.924
>>> 3.0215
>>> -3.48893
>>> 0.
>>> Process [1]
>>> -6.043
>>> -5.23339
>>> -4.924
>>> -3.0215
>>> 0.
>>> -4.924
>>> -3.0215
>>> -3.48893
>>> 0.
>>> -6.043
>>> 1.74446
>>> 0.
>>> 0.
>>> -5.23339
>>> -4.924
>>> 3.0215
>>> 0.
>>> -4.924
>>> 3.0215
>>> -3.48893
>>> 0.
>>> Process [2]
>>> -6.043
>>> -5.23339
>>> -4.924
>>> -3.0215
>>> 0.
>>> -4.924
>>> -3.0215
>>> -3.48893
>>> 0.
>>> -6.043
>>> 1.74446
>>> 0.
>>> 0.
>>> -5.23339
>>> -4.924
>>> 3.0215
>>> 0.
>>> -4.924
>>> 3.0215
>>> -3.48893
>>> 0.
>>>
>>> Thanks,
>>> SG
>>>
>>>
>>
>> --
>> 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/>

Reply via email to