[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