On 07/03/2021 16:54, Matthew Knepley wrote:
On Sun, Mar 7, 2021 at 8:52 AM Nicolas Barral <[email protected] <mailto:[email protected]>> wrote:

    Matt,

    Thanks for your answer.

    However, DMPlexComputeCellGeometryFVM does not compute what I need
    (normals of height 1 entities). I can't find any function doing
    that, is
    there one ?


The normal[] in DMPlexComputeCellGeometryFVM() is exactly what you want. What does not look right to you?


So it turns out it's not what I want because I need non-normalized normals. It doesn't seem like I can easily retrieve the norm, can I?

If not, I'll fallback to computing them by hand for now. Is the following assumption safe or do I have to use DMPlexGetOrientedFace?
>  if I call P0P1P2P3 a tet and note x the cross product,
>  P3P2xP3P1 is the outward normal to face P1P2P3
>  P0P2xP0P3              "                P0P2P3
>  P3P1xP3P0              "                P0P1P3
>  P0P1xP0P2              "                P0P1P2

Thanks

--
Nicolas

   Thanks,

     Matt

    So far I've been doing it by hand, and after a lot of experimenting the
    past weeks, it seems that if I call P0P1P2P3 a tetrahedron and note x
    the cross product,
    P3P2xP3P1 is the outward normal to face P1P2P3
    P0P2xP0P3              "                P0P2P3
    P3P1xP3P0              "                P0P1P3
    P0P1xP0P2              "                P0P1P2
    Have I been lucky but can't expect it to be true ?

    (Alternatively, there is a link between the normals and the element
    Jacobian, but I don't know the formula and can  find them)


    Thanks,

-- Nicolas

    On 08/02/2021 15:19, Matthew Knepley wrote:
     > On Mon, Feb 8, 2021 at 6:01 AM Nicolas Barral
     > <[email protected]
    <mailto:[email protected]>
     > <mailto:[email protected]
    <mailto:[email protected]>>> wrote:
     >
     >     Hi all,
     >
     >     Can I make any assumption on the orientation of triangular
    facets in a
     >     tetrahedral plex ? I need the inward facet normals. Do I need
    to use
     >     DMPlexGetOrientedFace or can I rely on either the tet vertices
     >     ordering,
     >     or the faces ordering ? Could DMPlexGetRawFaces_Internal be
    enough ?
     >
     >
     > You can do it by hand, but you have to account for the face
    orientation
     > relative to the cell. That is what
     > DMPlexGetOrientedFace() does. I think it would be easier to use the
     > function below.
     >
     >     Alternatively, is there a function that computes the normals
    - without
     >     bringing out the big guns ?
     >
     >
     > This will compute the normals
     >
     >
    
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexComputeCellGeometryFVM.html
     > Should not be too heavy weight.
     >
     >    THanks,
     >
     >      Matt
     >
     >     Thanks
     >
     >     --
     >     Nicolas
     >
     >
     >
     > --
     > 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
     >
     > https://www.cse.buffalo.edu/~knepley/
    <http://www.cse.buffalo.edu/~knepley/>



--
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>

Reply via email to