[petsc-users] flux vector

Adrian Croucher a.croucher at auckland.ac.nz
Mon Jun 14 22:34:07 CDT 2021


hi

On 15/06/21 12:21 pm, Matthew Knepley wrote:
>
> I admit that it is becoming complicated, but this can also be handled.
>
> The corner case only shows up when we distribute with overlap. Thus we 
> could,
>
> 1) Distribute the mesh without overlap
>
> 2) Mark the global boundary using the former algorithm
>
> 3) Distribute overlap = 1 using DMPlexDistributeOverlap(). 
> DMPlexDistribute() just does these two steps at once if you ask for 
> overlap.
>
> 4) Use the former algorithm, with the boundary label we just made, to 
> mark flux faces.

That sounds like it might work. Do you think this perhaps slightly 
simpler version might also work?

1) distribute mesh without overlap

2) label boundary faces using DMPlexMarkBoundaryFaces()

3) DMPlexDistributeOverlap()

4) Un-label boundary faces with support size > 1 (i.e. the shared faces 
on the non-overlapped mesh- I think) - so the boundary label is now just 
the global boundary

5) loop over faces as in my original algorithm, labelling flux faces if 
they are either on the open boundary, or are not on the global boundary

Unfortunately I can't test this at the moment - it looks like the 
Fortran interface for DMPlexDistributeOverlap() is missing?

- 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 --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210615/960b64e8/attachment.html>


More information about the petsc-users mailing list