[petsc-users] ghost nodes with a DMPlex

Yann Jobic yann.jobic at univ-amu.fr
Wed Jan 16 12:12:03 CST 2019


Hi, sorry if this is an obvious question, but i don't know how to use 
the ghost nodes with a DMPlex.

The procedure i do is as follow :

1) create the DMPlex

2) distribute it

3) Create the Matrix and associated vectors with DMCreateMatrix, 
DMCreateGlobalVector and DMCreateLocalVector

4) In each cells, compute the different integrals (FEM code)

I know the location of the ghost points, as the global index is negative 
(and the global index is -(i+1) using the global PetscSection).

(I didn't use DMPlexConstructGhostCells, as i understood that is should 
be used for flux calculations on faces for FV methods).

I would like to update the contributions of those ghost nodes, where the 
vertex actually is (in a different processor).

So far, i used VecSetValues with the local indexes of the local vector. 
Then i used DMLocalToGlobalBegin in order to update them. It's working fine.

I tried  MatSetValues on the global Matrix with the global indexes. It 
seems to work.

However, maybe i'm doing it the wrong way, with a lot of communications. 
Is it a scalable way the handle them ? How should i do it ?

If i can have a starting point, it would be great !

Any help would be greatly appreciated!

Regards,

Yann



More information about the petsc-users mailing list