hi Matt,

On 27/01/17 03:04, Matthew Knepley wrote:
On Wed, Jan 25, 2017 at 11:12 PM, Adrian Croucher <[email protected] <mailto:[email protected]>> wrote:

    hi Matt,

    A couple of years ago we discussed adding support for 6-node wedge
    cells in DMPlex- the hurdle being that at present DMPlex doesn't
    support cells with faces of different shapes (see below)- and you
    said it could be done, if and when I needed it.

    People are starting to want to use my code on real models now,
    many of which have 6-node wedge cells. So it would be very handy
    to have support for those in DMPlex fairly soon if possible.

    Any chance you would be able to take a look at it? In principle I
    would be happy to help if I can. I have started looking at
    plexinterpolate.c to try and see how it works, but at this stage
    I'm not at all confident that I understand the subtleties.

Okay. First I need to understand exactly what shape we want to handle. Can you draw it or explain precisely?

I've attached a picture, with a list of how the edges and faces are composed (not sure if the ordering is what you would prefer or not).


Second, we need to prescribe a total order on the vertices for a wedge, and then a set of faces as ordered arrays of vertices.
That information goes here:

https://bitbucket.org/petsc/petsc/src/e8e596daf24561903cea0839b7b68a432a6283e4/src/dm/impls/plex/plexinterpolate.c?at=master&fileviewer=file-view-default#plexinterpolate.c-37

I think that might be all we have to do, but until you try something, secret assumptions lurking in the code are not obvious.

Last time we talked about it, there was an issue around the fact that DMPlexInterpolateFaces_Internal() assumes all faces in each cell to be of the same shape, which isn't true for cell types like the 6-node wedge- some are triangles and some are quadrilaterals:

The problem here is that if I allow faces of different shapes, I have to keep track of the shape of each face when I make it. This is possible, and I have added it to the TODO list, but I think it will be a while
before I get to it.

That may be the tricky part, and I'm not sure how much I can help with it- I have looked at the code but am not confident I understand it fully. I am happy at least to help with the definition of the cell and testing etc.

Cheers, Adrian

--
Dr Adrian Croucher
Senior Research Fellow
Department of Engineering Science
University of Auckland, New Zealand
email: [email protected]
tel: +64 (0)9 923 4611

Attachment: 6_node_wedge_cell.pdf
Description: Adobe PDF document

Reply via email to