[petsc-dev] DMPlex and scattering

Adrian Croucher a.croucher at auckland.ac.nz
Sun May 4 19:19:20 CDT 2014


hi

I'm writing a finite volume test code, mostly based on the TS ex11 
tutorial example, but in Fortran. It works ok in serial but not in parallel.

I don't really understand how the global/local scattering is done in TS 
ex11. There don't seem to be any DMGlobalToLocalBegin() / 
DMGlobalToLocalEnd() calls in the main RHS function routine 
(RHSFunctionLocal_Upwind()), as there are in most of the other 
(non-DMPlex) examples.

Presumably the setting up of ghost cells is done by the call to 
DMPlexConstructGhostCells(). Does the ghost scattering happen in the 
call to DMPlexInsertBoundaryValuesFVM()?

Unfortunately it looks like neither of these routines has a Fortran 
interface as yet, so I can't really try them. In the meantime, I've 
tried to do it using DMGlobalToLocalBegin() / DMGlobalToLocalEnd() 
calls, like in the other examples, but this isn't working as yet. So I'm 
a bit stuck. Should this approach work with DMPLex, or not?

Cheers, Adrian

-- 
Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: a.croucher at auckland.ac.nz
tel: +64 (0)9 923 4611




More information about the petsc-dev mailing list