On Sun, Mar 7, 2021 at 4:13 PM Nicolas Barral < [email protected]> wrote:
> 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? > You just want area-weighted normals I think, which means that you just multiply by the area, which comes back in the same function. Thanks, Matt > 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/> > -- 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/>
