On Mon, May 5, 2014 at 12:09 AM, Jed Brown <j...@jedbrown.org> wrote:
> Adrian Croucher <a.crouc...@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? > That is to remind me where we will need things when we have both FV and FE here. FE will have communication even in the RHS. > We need Fortran interfaces for the TS functions. SNES has Fortran > interfaces. Yes. I was getting to that, but first I was pulling in all the ex11 stuff to TS utils. Matt > > 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.crouc...@auckland.ac.nz > > tel: +64 (0)9 923 4611 > -- 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