On Wed, Dec 14, 2022 at 9:20 AM Praveen C <prav...@gmx.net> wrote: > Hello > > I tried this with the attached code but I still get wrong normals. > > ./dmplex -dm_plex_filename ug_periodic.msh -dm_localize_height 1 > > > Code and grid file are attached >
I have fixed the code. The above options should now work for you. Thanks, Matt > Thank you > praveen > > > > On 14-Dec-2022, at 6:40 PM, Matthew Knepley <knep...@gmail.com> wrote: > > On Wed, Dec 14, 2022 at 2:38 AM Praveen C <prav...@gmx.net> wrote: > >> Thank you, this MR works if I generate the mesh within the code. >> >> But using a mesh made in gmsh, I see the same issue. >> > > Because the operations happen in a different order. If you read in your > mesh with > > -dm_plex_filename mymesh.gmsh -dm_localize_height 1 > > then it should work. > > Thanks, > > Matt > > >> Thanks >> praveen >> >> On 14-Dec-2022, at 12:51 AM, Matthew Knepley <knep...@gmail.com> wrote: >> >> On Tue, Dec 13, 2022 at 10:57 AM Matthew Knepley <knep...@gmail.com> >> wrote: >> >>> On Tue, Dec 13, 2022 at 6:11 AM Praveen C <prav...@gmx.net> wrote: >>> >>>> Hello >>>> >>>> In the attached test, I read a small grid made in gmsh with periodic bc. >>>> >>>> This is a 2d mesh. >>>> >>>> The cell numbers are shown in the figure. >>>> >>>> All faces have length = 2.5 >>>> >>>> But using PetscFVFaceGeom I am getting length of 7.5 for some faces. >>>> E.g., >>>> >>>> face: 59, centroid = 3.750000, 2.500000, normal = 0.000000, -7.500000 >>>> ===> Face length incorrect = 7.500000, should be 2.5 >>>> support[0] = 11, cent = 8.750000, 3.750000, area = 6.250000 >>>> support[1] = 15, cent = 8.750000, 1.250000, area = 6.250000 >>>> >>>> There are also errors in the orientation of normal. >>>> >>>> If we disable periodicity in geo file, this error goes away. >>>> >>> >>> Yes, by default we only localize coordinates for cells. I can put in >>> code to localize faces. >>> >> >> Okay, I now have a MR for this: >> https://gitlab.com/petsc/petsc/-/merge_requests/5917 >> >> I am attaching your code, slightly modified. You can run >> >> ./dmplex -malloc_debug 0 -dm_plex_box_upper 10,10 -dm_plex_box_faces >> 4,4 -dm_plex_simplex 0 -dm_view ::ascii_info_detail -draw_pause 3 >> -dm_plex_box_bd periodic,periodic -dm_localize_height 0 >> >> which shows incorrect edges and >> >> ./dmplex -malloc_debug 0 -dm_plex_box_upper 10,10 -dm_plex_box_faces 4,4 >> -dm_plex_simplex 0 -dm_view ::ascii_info_detail -draw_pause 3 >> -dm_plex_box_bd periodic,periodic -dm_localize_height 1 >> >> which is correct. If you want to control things yourself, instead of >> using the option you can call DMPlexSetMaxProjectionHeight() on the >> coordinate DM yourself. >> >> Thanks, >> >> Matt >> >> >>> Thanks, >>> >>> Matt >>> >>> >>>> Thanks >>>> praveen >>>> >>> -- >>> >>> >> > > -- > 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/>