[petsc-dev] DMPlex and scattering

Jed Brown jed at jedbrown.org
Mon May 5 00:09:54 CDT 2014


Adrian Croucher <a.croucher at auckland.ac.nz> writes:

> 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.

DMTSSetRHSFunctionLocal registers a "local" function.  The
global-to-local scatters are done in TSComputeRHSFunction_DMLocal().

Matt, WTF is up with the "#if 0" crap strewn throughout this function?

We need Fortran interfaces for the TS functions.  SNES has Fortran
interfaces.

> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20140504/245cddd7/attachment.sig>


More information about the petsc-dev mailing list