<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, May 5, 2014 at 12:09 AM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">Adrian Croucher <<a href="mailto:a.croucher@auckland.ac.nz">a.croucher@auckland.ac.nz</a>> writes:<br>
<br>
> hi<br>
><br>
> I'm writing a finite volume test code, mostly based on the TS ex11<br>
> tutorial example, but in Fortran. It works ok in serial but not in parallel.<br>
><br>
> I don't really understand how the global/local scattering is done in TS<br>
> ex11. There don't seem to be any DMGlobalToLocalBegin() /<br>
> DMGlobalToLocalEnd() calls in the main RHS function routine<br>
> (RHSFunctionLocal_Upwind()), as there are in most of the other<br>
> (non-DMPlex) examples.<br>
<br>
</div>DMTSSetRHSFunctionLocal registers a "local" function. The<br>
global-to-local scatters are done in TSComputeRHSFunction_DMLocal().<br>
<br>
Matt, WTF is up with the "#if 0" crap strewn throughout this function?<br></blockquote><div><br></div><div>That is to remind me where we will need things when we have both FV and FE</div><div>here. FE will have communication even in the RHS.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
We need Fortran interfaces for the TS functions. SNES has Fortran<br>
interfaces.</blockquote><div><br></div><div>Yes. I was getting to that, but first I was pulling in all the ex11 stuff to TS utils.</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">
> Presumably the setting up of ghost cells is done by the call to<br>
> DMPlexConstructGhostCells(). Does the ghost scattering happen in the<br>
> call to DMPlexInsertBoundaryValuesFVM()?<br>
><br>
> Unfortunately it looks like neither of these routines has a Fortran<br>
> interface as yet, so I can't really try them. In the meantime, I've<br>
> tried to do it using DMGlobalToLocalBegin() / DMGlobalToLocalEnd()<br>
> calls, like in the other examples, but this isn't working as yet. So I'm<br>
> a bit stuck. Should this approach work with DMPLex, or not?<br>
><br>
> Cheers, Adrian<br>
><br>
> --<br>
> Dr Adrian Croucher<br>
> Senior Research Fellow<br>
> Department of Engineering Science<br>
> University of Auckland, New Zealand<br>
> email: <a href="mailto:a.croucher@auckland.ac.nz">a.croucher@auckland.ac.nz</a><br>
> tel: <a href="tel:%2B64%20%280%299%20923%204611" value="+6499234611">+64 (0)9 923 4611</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>